Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Современные языки программирования (История возникновения языков программирования)

Содержание:

ВВЕДЕНИЕ

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащенный набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм. Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать.

Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом.

Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. Связь между языком, на котором мы программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть, по крайней мере, двуязычным.

Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Конкретный компьютер способен работать с программами, написанными на его родном машинном языке. Существует почти столько же разных машинных языков, сколько и компьютеров, но все они суть разновидности одной идей простые операции производятся со скоростью молнии на двоичных числах.

Персональные компьютеры IBM используют машинный язык микропроцессоров семейства 8086, т.к. их аппаратная часть основывается именно на данных микропроцессорах. Можно писать программы непосредственно на машинном языке, хотя это и сложно. В начале 1950-х г.г., машинный язык был единственным языком, большего человек к тому времени не придумал.

Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня, которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.

На данный момент общество использует все больше современных технологий, большинство предприятий оснащены по последнему техники, для увеличения скорости управления, для обработки и хранения данных. В современном мире основываясь на развитие этой ситуации идет направление на широкое развитие IT-сферы. Благодаря данному прогрессу происходит увеличение людей вовлеченных в эту сферу, помогающих развить ее и решить прикладные задачи разнонаправленного типа.

IT-технологии уже внедрены во все сферы жизни, начиная от умных домов заканчивая космическими разработками изучающих нашу вселенную. Как уже было сказано ранее человек стремится упростить возможность обращения к машине, создавая дополнительные приемы программирования и разрабатывая собственные версии языков. В связи с этим повышается количество языков программирования решающих поставленные задачи в соответствии с поставленными требованиями. Разделение языков программирование позволяет решать задачи с минимальными техническими затратами и увеличивает скорость вычисления процессов при исполнения задач.

Объектом изучения курсовой работы послужили современные языки программирования, смысл их появления, история и условие развития и появления.

Цели исследования: Рассмотреть общее сведения и уровни используемых языков программирования, просмотреть историю развития языков программирования, сделать обзор современных языков программирования.

Глава 1. История возникновения языков программирования.

Развитие языков программирования произошло еще во времена создания первых компьютерах на электронных лампах, некоторые ученые создавали языки программирования до появления рабочих моделей ориентируясь на математические вычисления. Но как и многие проблемы в жизни человека до этого, так и во времена создания первых компьютеров существовала огромная проблема, а именно наличие денег для приобретения компьютеров для различных ученых и первых программистов, эти устройства стоили огромных сумм и занимали достататочно огромное помещение, были мало подъемны и медленны в вычислениях. Развитие первых языков было очень медленно. А приобретения средства для программирования стоило в десятки раз, а то и в сотни раз дешевле чем программы разрабатываемые для этих компьютеров. Машина понимала только язык двоичных импульсов, машинный код. На рисунке 1 представлена одна из таких первых машин вычисления, являющегося предком современных компьютеров.

Рисунок 1. Первый в мире компьютера под названием «Марк 1».

Первым в мире компьютером был американский программируемый компьютер, который разработал и построил в 1941 году гарвардский математик Говард Эйксон при сотрудничестве четырёх инженеров компании IBM, по заказу которой компьютер и разрабатывался. Компьютер был создан на основе идей Чарльза Бэббиджа.

Рисунок 2. Общий план компьютера «Марк 1»

Стоимость этого компьютера составила 500 тысяч долларов. Компьютер собран в корпусе из нержавеющей стали и стекла, имел длину около 17 метров, высоту более 2,5 метров, вес около 4,5 тонны, площадь занимал несколько десятков метров. Компьютер Марк 1 содержал в себе электромеханические переключатели, реле и прочие детали в количестве 765 тысяч штук.

Рисунок 3. Внутренние переключатели на компьютере «Марк 1».

Для ввода в компьютер, который являлся ничем иным, как усовершенствованным арифмометром, использовалась перфорированная бумажная лента. До появления первого языка программирования, при общении с компьютером использовалось изобретения девятнадцатого века, под названием перфокарта. На них изображали машинные команды с помощью предоставления наличия или отсутствия отверстий в определённой позиции карты из тонкого картона.

Рисунок 4. Пример более современной советской перфокарты.

Машинный язык программирования состоял из парадигмы «Одна инструкция – одна строка». Благодаря этому языку происходило упрощение взаимодействия программиста и компьютера, более понятное человеческому восприятие машинного кода, так сказать - упорядоченного.  Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей. Но более частое использование показало, что язык неудобен и очень громоздок в использовании. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программы на данном языке — очень длинные последовательности единиц и нулей являются машинно зависимыми, то есть для каждой ЭВМ необходимо было составлять свою программу, а так же программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.

Математики использующие такие устройства считали, что такая система использования компьютеров ненадежна, в связи с этим стали появятся первые разработки более понятного для человека языка программирования ассемблер, так программисты прошлого вошли в историю второго поколения языков программирования.

Язык второго поколения ассемблер - является низкоуровневым языком, который ориентирован на конкретный тип процессора и учитывает его особенности. В данном случае «низкий уровень» не значит «плохой». Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Появление языка ассемблера значительно облегчило жизнь программистов, так как теперь вместо рябящих в глазах нулей и единиц, они могли писать программу командами, состоящими из символов приближенных к обычному языку. Для того времени этот язык был новшеством и пользовался популярностью так как позволял писать программы небольшого размера, что при тех машинах критерий значительный.

Но сложность разработки в нём больших программных комплексов привела к появлению языков третьего поколения — языков высокого уровня. Но на этом жизнь ассемблера не закончилась, он жив и по сей день и не только жив, но и пользуется популярностью в узких кругах. Сейчас его используют в написании отдельных фрагментов программ или иногда в написании самих программ. Примеров может быть много, но самые яркие это использование ассемблера в написании драйверов, игр и загрузчиков ОС.

Рисунок 5. Пример программы на ассемблере, сложение двух чисел.

Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программировании нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования.

С середины 50-х гг. XX в. начали создавать первые языки программирования высокого уровня. Эти языки не были привязаны к определенному типу ЭВМ. Для каждого из них были разработаны собственные компиляторы. Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда язык ассемблера). Одним из таких первых языков третьего поколения был язык программирования – «Fortran». В период с 1954 по 1957 годы программистами компании IBM, под руководством Джона Бэкуса, «Fortran» был создан. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). В то время сообщество относилось скептически к новому способу программирования и не верили в то, что Fortran позволит программировать быстрее и эффективнее. По словам самого Джона Бэкуса, большая часть его работы была направлена на то, чтобы «быть ленивым». Ему жутко не нравилось писать программы под IBM 701 на ассемблере. Язык был широко принят учеными для написания программ с интенсивными вычислениями. Включение комплексного типа данных сделало его особенно подходящим для технических приложений.

К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно по этому Fortran считают первым широко используемым языком программирования.

Рисунок 6. Пример программы на Fortran, возведение числа в степень.

На фоне жесткой конкуренции европейские ученые стали бить в тревогу, все европейские компании боялись, что предприятие IBM захватит мировой рынок. Благодаря этому событию, ученые с помощью Международной федерации по обработки информации создали и доработали следующий веток программирования, язык программирования Алгол, год появления 1958. В ходе работы возникали большие трудности непринципиального характера. Так, например, один из членов комитета вспоминал «десятичную бурю» — крайне резкую дискуссию между американскими и европейскими участниками по поводу того, какой именно символ должен быть использован в качестве разделителя целой и дробной частей числа. Американцы настаивали на точке, европейцы же требовали применять традиционную для Европы запятую. Чтобы избежать конфликтов по мелким вопросам, было решено, что описание Алгола будет трёхуровневым, включающим уровень описаний, публикаций и реализации. Мелкие вопросы, типа выбора между точкой и запятой или используемого алфавита, были вынесены на второй-третий уровень, что позволило относительно быстро решить принципиальные вопросы. На уровне публикаций, согласованном позже, допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки), уровень реализации определял язык совершенно строго — согласно ему должны были строиться трансляторы. нового языка нашлись как приверженцы, так и критики. В США Алгол приняли холодно, он был популярен только в академической среде, и то не повсеместно. Те, кто попытался реализовать Алгол, столкнулись с целым рядом сложностей. Так, например, обнаружилось, что ни один из существовавших тогда компьютеров не поддерживал ввод-вывод всех 116 литер, из которых состоял алфавит Алгола. А вот в Европе Алгол приняли с энтузиазмом. Он быстро завоевал популярность в академической среде, повсеместно шла разработка компиляторов, многие из которых, несмотря на сложности реализации, оказались весьма успешными. Алгол распространился от Великобритании до Дальнего востока СССР, став как универсальным языком описания алгоритмов в научных публикациях, так и средством реального программирования.

Далее были разработаны такие языки программирования как LIST и Cobol. Но сложные математические задания на этих языках не смотря на их своевременную популярность нельзя было реализовать, поэтому они быстро канули в лету.

Рисунок 7. Пример программы на языке Cobol.

На заре компьютеризации, машинный язык был единственным языком, большего человек к тому времени не придумал. Языки низкого уровня мало похожи на привычный человеку язык. Большие, громоздкие программы на таких языках пишутся редко. Зато если программа будет написана на таком языке, то она будет работать быстро, занимая маленький объем и допуская минимальное количество ошибок. Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой.

Для улучшения работы были созданы языки высокого уровня которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят «исходный код», и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке.

Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.

Язык был разработан в лабораториях Bell Labs в период с 1969 по 1973 годы. Согласно Ритчи, самый активный период творчества пришёлся на 1972 год. Язык назвали «Си» (C — третья буква английского алфавита), потому что многие его особенности берут начало от старого языка «Би» (B — вторая буква английского алфавита). Си имеет следующие основные особенности:

  1. простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;
  2. ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;
  3. систему типов, предохраняющую от бессмысленных операций;
  4. использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;
  5. непосредственный доступ к памяти компьютера через использование указателей;
  6. минимальное число ключевых слов;
  7. передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке эмулируется с помощью указателей);указатели на функции и статические переменные;
  8. области действия имён; структуры и объединения — определяемые пользователем собирательные типы данных, которыми можно манипулировать как одним целым.

В то же время в Си отсутствуют:

  1. вложенные функции;
  2. сопрограммы;
  3. средства автоматического управления памятью;
  4. средства объектно-ориентированного программирования;
  5. средства функционального программирования.

После появления язык был хорошо принят, потому что он позволял быстро создавать компиляторы для новых платформ, а также позволял программистам довольно точно представлять, как выполняются их программы. Благодаря близости к языкам низкого уровня программы на Си работали эффективнее написанных на многих других языках высокого уровня, и лишь оптимизированный вручную код на ассемблере мог работать ещё быстрее, потому что давал полный контроль над машиной. На сегодняшний день развитие компиляторов и усложнение процессоров привело к тому, что вручную написанный ассемблерный код (кроме разве что очень коротких программ) практически не выигрывает по сравнению с кодом, генерируемым компиляторами, при этом Си продолжает оставаться одним из наиболее эффективных языков высокого уровня.

Рисунок 8. Пример кода на языке С.

С появлением языков высокого уровня программисты получили возможность больше времени уделять решению конкретной проблемы, не отвлекаясь особенно на весьма тонкие вопросы организации самого процесса выполнения задания на машине.

Подводя итог данному периоду развития языков программирования, можно сделать вывод, что языки программирования высокого уровня (FORTRAN, ALGOL, LISP, COBOL и более поздний С) не похожи на язык ассемблера. Языки высокого уровня разработаны специально для того, чтобы можно было иметь дело непосредственно с задачей, решаемой программой. В этом качестве они иногда называются процедурными языками, поскольку описывают процедуру, используемую для решения задачи. Языки высокого уровня машинонезависимы, программы на языке ассемблера непосредственно относятся к той машине, на которой они должны выполняться. Достоинства языков программирования высокого уровня:

  1. Алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
  2. Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
  3. Конструкции операторов задаются в удобном для человека виде;
  4. Поддерживается широкий набор типов данных.

Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти.

Глава 2. Современные языки программирования.

Рассматривая тему современных языков программирования, возникает самый главный вопрос, как выбрать «современные» языки. На сегодняшний момент существует более 600 языков программирования, каждый из которых ориентирован на конкретные задачи. Выбирая языки для изучения данной курсовой работы были выбраны самые востребованные на рынке.

Самый старый из выбранных языков, является язык программирования С++. Разработанный в далеком 1983, этот язык программирования остается популярным и на сегодняшний день. В момент создания С++ пришел на смену классического языка С, и сразу же завоевал огромнейшую популярность у программистов всего мира. Microsoft Windows и Google Chrome являются самыми известными примерами проектов, созданных на С++. Этот список могут пополнить проекты Adobe и Amazon’a. Данный язык программирования остаётся востребованным и по сей день, поскольку имеет мощный инструментарий, который может быть адаптированы в различных сферах, таких как финансы, банки, игры, связь, электронные платежные системы, розничная торговля и многое другое. Знание С++ позволяет с легкостью писать игры и сложные коммерческие системы наряду с простыми приложениями. Он является одним из самых мощных языков программирования, который предоставляет немало полезных функций. Остается вопрос, почему это происходит?  C++ успешен, т.к., вместо попытки предложить машинную модель, Бьярн начал с C и попытался развивать C далее, предоставляя больше техник обобщённого программирования, но в контексте рамок этой машинной модели. Машинная модель C очень проста. У вас есть память, где находятся сущности. У вас есть указатели на последовательные элементы памяти. Это очень просто для понимания. C++ сохраняет данную модель, но делает сущности, располагающиеся в памяти, более исчерпывающими, чем в машине C, т.к. C имеет ограниченный набор типов данных. А именно, C имеет структуры, предоставляющие разновидность расширяемой системы типов, но он не позволяет вам определять операции над структурами. Это ограничивает расширяемость системы типов. C++ существенно продвинул машинную модель C к действительно расширяемой системе типов.

Рисунок 9. Пример программы на языке С++.

Следующим к рассмотрению, был выбран язык С#. Разработанный программистом давшим нашему миру язык программирования Delphi, Андресом Хейлсбергом в соавторстве со Скоттом Вильтаумотом, он был разработан для платформы Microsoft .NET Framework, в период с 1999 по 2001 года. Разработанный Microsoft, этот мультипарадигмальный язык программирования общего назначения использовался для разработки приложений на платформе Microsoft. C# — лучший язык для создания нативных приложений для платформы Microsoft. Кроме того, он является рекомендуемым языком для разработки игр с использованием движка Unity Game.

Рисунок 10. Принцип устройства языка C#.

Приоритетом разработчиков этого языка была его простота, и так как это язык высокого уровня, он больше похож на английский, чем другие. C# позволяет разработчику сосредоточиться на алгоритме, а не на деталях реализации, так как сложные конструкции в нём заключены в абстракции На C# можно написать что угодно: веб-сервисы, мобильные ПО, серверные приложения и так далее.

И в то время как эксперты утверждают, что спрос на C# падает, Xamarin опровергает эти утверждения, поскольку оказывается, что эта платформа упрощает создание приложений для Android и iOS. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML.

Переняв многое от своих предшественников С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (в отличие от Haskell). Благодаря такому языку программирования, множество решений существующих на более ранних языках, переживают повторное использование, но уже с более высокой скоростью вычисления и одной из самых актуальных на сегодняшний день вещью – более понятным для современного пользователя внешним видом.

Успех данного языка обуславливается несколькими причинами:

  1. Отвечающий современным требованиям внешний вид даже простых приложений.
  2. Большое количество сопроводительной документации и обновлений.
  3. Возможность создания веб-приложений.

Рисунок 11. Пример программы на языке С#.

Еще один пример современного языка программирования, созданного в 2014 году это язык Swift. Он открытый мультипарадигмальны компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и macOS. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C. Программы на Swift компилируются при помощи LLVM, входящей в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также С) в рамках одной программы. За последние годы Swift стал более популярен, чем Objective-C. Это язык программирования для разработки нативных приложений для iOS или Mac OS.

Также можно сказать, что это язык программирования с наибольшим потенциалом для изменения будущего. Было обнаружено, что нативные приложения превосходят кросс-платформенные гибридные приложения, а движок SpriteKit при этом упрощает создание 2D-игр. На деле Swift опирается на успехи C и Objective-C, но при этом без ограничений совместимости.

Большую роль в становлении Swift оказало влияние на него таких языков программирования, как Ruby и Python. Он считается удобным для пользователя и интересным в использовании. Swift — это высокоуровневый мультипарадигмальный язык, разработанный Apple для iOS. Если работа с продуктами Apple, но так же идет разработка поддержи и Android приложений. Swift — статически типизированный язык. Это означает, что Xcode проверяет ваши ошибки за вас, поэтому их легче отслеживать.

Рисунок 12. Пример приложений на языке Swift.

У Swift есть преимущество перед конкурентами, так как в нем также имеется автоматический счетчик ссылок (ARC), известная функция, которая управляет использованием памяти приложения в реальном времени, etc. Использование этого языка может дать вам преимущество, поскольку приложения iOS зачастую более выгодны, чем приложения Android на экономическом рынке.

Рисунок 13. Пример кода на языке Swift.

Многие компании создают собственные языки программирования, ориентируясь на статистике своих задач, одной из таких компаний стала Google, как лидер на рынке поисковых систем, компания выполняет различные задачи для улучшения собственных нейронных сетей поиска информации. И является лидером на рынке как в системе её поиска, так и обработки. Созданный компанией язык называется Go – язык 2009 года – эпохи многоядерных процессоров, тогда как языки вроде Python и Java появились в годы однопоточной среды разработки. Именно поэтому язык Go учитывает многозадачность и работает в соответствии с ней. Вместо всем известных потоков (Thread), которые у большинства языков занимают уйму памяти (например, в Java это 1 Мб на каждый поток), в Go предусмотрены горутины, «съедающие» всего 2 Кб памяти.

Язык Go разрабатывался как язык программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языкам C иC++. «Go был разработан для решения реальных проблем, возникающих при разработке программного обеспечения в Google». В качестве основных таких проблем:

  1. медленную сборку программ;
  2. неконтролируемые зависимости;
  3. использование разными программистами разных подмножеств языка;
  4. затруднения с пониманием программ, вызванные неудобочитаемостью кода, плохим документированием и так далее;
  5. дублирование разработок;
  6. высокую стоимость обновлений;
  7. несинхронные обновления при дублировании кода;
  8. сложность разработки инструментария;
  9. проблемы межъязыкового взаимодействия.

В результате получился язык, «который не стал прорывом, но тем не менее явился отличным инструментом для разработки крупных программных проектов».

Go — компилируемый язык. Предполагается, что программы на Go будут транслироваться компилятором в объектный код целевой аппаратной платформы и в дальнейшем исполняться непосредственно, не требуя виртуальной машины. Архитектура языка изначально проектировалась так, чтобы обеспечить быструю компиляцию в эффективный объектный код. Хотя для Go доступен и интерпретатор, практически в нём нет большой потребности, так как скорость компиляции достаточно высока для обеспечения интерактивной разработки. Можно создать хоть тысячу или миллион горутин, и это практически не отразится на работе приложения. Быстрое время запуска, использование памяти, только если это необходимо (сегментированные, но расширяемые стеки горутин), и другие преимущества делают Go чрезвычайно востребованным в решении многопоточных задач.

Рисунок 14. Пример функции на языке Go.

Самым часто используемым современным языком программирования является PHP. Появившейся в 1990-е этот язык до сих пор набирает популярность. PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL. 1994 году датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl — интерпретатора скриптов — перестало хватать, и Лердорф разработал с использованием языка C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter — «персональная домашняя страница / интерпретатор форм».

Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Большое количество разработчиков привело к быстрому развитию языка и стремительному росту его популярности. С этой версии акроним php расшифровывается как «PHP: hypertext Preprocessor», вместо устаревшего «Personal Home Page».

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зеев Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Новый движок, названный Zend Engine, успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

PHP используется повсеместно благодаря WordPress. 80% сайтов с посещаемостью свыше 10 млн. пользователей используют PHP. Примерами таких сайтов могут стать Facebook и Wikipedia. В PHP не существует каких-либо строгих правил в написании кода, а также он гибок в решении различных проблем.  PHP — это отличный выбор для веб-разработчиков, поскольку он является серверным скриптовым языком и для Worldpress, и для Facebook.

Рисунок 15. Производные продукты от языка PHP.

В большинстве случаев изучение PHP для веб-разработчика является залогом успеха, так как его знание позволяет создавать динамические веб-сайты. Это довольно простой язык с открытым исходным кодом, хорошей поддержкой многих баз данных, а также многочисленными инструментами и различными направлениями для использования.

Рисунок 16. Пример синтаксиса на языке PHP.

По статистике, собранной сайтом Stackoverflow (Stack Overflow Developer Survey), который охватил аудиторию составом больше, чем 64000 разработчиков из 173 стран, JavaScript стал самым используемым языком программирования в мире. Он предоставляет возможность создавать интерактивные сайты и является одной из основных веб-технологий наряду с HTML и CSS, поскольку большинство браузеров в том или ином виде могут использовать JS.

Рисунок 17. Карта использования приложений на языке JavaScript.

JavaScript отличный язык, чтобы начать свой путь в веб-разработке. Этот ЯП подойдёт для создания интерактивных сайтов в интернете. В последнее время JavaScript расширился, и теперь на нём можно писать мобильные приложения, игры, а также десктопные приложения. Это определённо повлияло на популярность языка.

Рисунок 18. Пример синтаксиса на языке JavaScript.

Java — один из самых практичных языков программирования для изучения. Его популярность нельзя переоценить, так как большинство (90%) компаний из списка Fortune используют Java для разработки бэкэнд-систем и десктопных приложений. Кроссплатформенность достигнута благодаря JVM.

В Java, как и во многих современных языках, включая C++, Python, etc, используется принцип объектно-ориентированного программирования (ООП). Java в основном используется для создания серверных приложений и мобильных ПО. Также это основа нативных приложений под Android.

Рисунок 19. Пример синтаксиса на языке Java

Рассматривая все выше сказанное, хотелось бы отметить, что все современные языки кроме С++ использованные в курсовом проекте, ориентированы на веб-платформы. То есть, учитывая современное развитие технологий, большая часть приложений, что нас окружает представляет собой «облегченные» программы, доступ к которым возможен в любой точке мира, при наличии интернета.

На основе все изложенного можно отметить тенденцию, что большая часть нынешних программистов и используемых языков ориентированы на веб-аудиторию и своей классификацией принадлежат такого объекту современной информации как интернет-вещей. С каждым годом при эволюции современной техники, увеличивается портативная возможность использования программ и снижается количество приложений созданных для операционных систем.

ЗАКЛЮЧЕНИЕ

Любой современный язык программирования направлен на выполнение прикладных действий и этим они не отличаются от языков прошлого. Выбрать верный язык программирования — это очень важно, поэтому, что необходимо знать для чего собираетесь его использовать. При анализе современных языков программирования можно отметить несколько тенденций:

  1. Большое английское комюнити.
  2. Огромное количество вакансии на разный уровень знаний.
  3. Преобладание языков для веб-приложений.
  4. Возможность интеграции и взаимодействия для языков.
  5. Переход на более современные технологии, на основе старых решений.

Условием возникновения каждого из современных языков программирования обуславливается техническим прогрессом и появление все более требовательных пользователей на рынке предложений, каждая компания выпускающая любые продукты или услуги сталкивается с рекламной системой. Для увеличения собственных пользователей программистам, работающих с этими компаниями, приходится использовать все возможные ухищрения, позволяющие развивать данную область в IT-технологиях с помощью «ленивого» прогресса. Что является толчком для развития среды появления и усовершенствования языков программирования.

Анализ рынка использования языков для «вольных» программистов указан в приложении.

Список используемой литературы

  1. http://progopedia.ru/language/cobol/
  2. http://www.accel.ru/abitur/inform/programming/fortran-r2013/index.php?fname=_4_2_express_trans.php
  3. Мироненко И.А. Современные теории в психологии личности. СПб.: Михайлов В.А., 2003.
  4. В.Э. Карпов. Классическая теория компиляторов. — Учебное пособие. 2-е изд..— Москва, 2011
  5. Бартеньев О.В. Фортран для профессионалов. Математическая библиотека ISML
  6. Горелик А.М. 3. Введение в параллельное программирование на Фортране // Программирование на современном Фортране. — Москва: Финансы и статистика, 2006.— 352 с.
  7. Алгазин С.Д, В. В. Кондратьев. Программирование на Visual Fortran. — М.: «Диалог МИФИ», 2008. — 448 с. 
  8. http://dev-lab.info/2014/01/%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-%D0%BF%D1%80%D0%BE/
  9. http://life-prog.ru/view_programs.php?id=4&language=assembler&page=1
  10. Р.Богатырев. Природа и эволюция сценарных языков. — Мир ПК, 2001.
  11. Е.К. Хеннера. Информатика под редакцией Е.К. Хеннера. — Академия, 2004.
  12. Йодан Э. Структурное проектирование и конструирование программ. — Пер. с англ. — М.: Мир, 1979.
  13. Роберт У. Себеста. Основные концепции языков программирования. — 5-е изд.. — М.: Вильямс, 2001.
  14. https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%84%D0%BE%D0%BA%D0%B0%D1%80%D1%82%D0%B0
  15. https://www.osp.ru/os/2010/01/13000691/
  16. https://antonkozlov.ru/istoriya/samyj-pervyj-v-mire-kompyuter.html
  17. https://proglib.io/p/10-languages-2018/
  18. https://code-live.ru/post/cpp-dynamic-arrays/
  19. http://informat444.narod.ru/museum/lanr/evol.htm
  20. http://www.programm-school.ru/raznoe/kratkaya-istoriya-yazykov-programmirovaniya.html
  21. Дмитрий Котеров, Алексей Костарев. PHP. — СПб.: «БХВ-Петербург», 2005. — С. 1120. 
  22. Костарев А. Ф. PHP 5. — СПб.: «БХВ-Петербург», 2008. — С. 1104. 
  23. Мэтт Зандстра. PHP: объекты, шаблоны и методики программирования = PHP Objects, Patterns and Practice, Third Edition. — 3-е издание. — М.: «Вильямс», 2010. — С. 560.
  24. Кристиан Дари, Эмилиан Баланеску. PHP и MySQL: создание интернет-магазина = Beginning PHP and MySQL E-Commerce: From Novice to Professional. — М.: «Вильямс», 2010.  Джейсон Ленгсторф. PHP и jQuery для профессионалов = Pro PHP and jQuery. — М.: «Вильямс», 2010. — С. 352.  Стив Суэринг, Тим Конверс, Джойс Парк. PHP и MySQL = PHP 6 and MySQL 6 Bible. — 2-е издание. — М.: «Диалектика», 2010. — С. 912. — (Библия программиста).  Квентин Зервас. Web 2.0: создание приложений на PHP = Practical Web 2.0 Applications with PHP. — М.: «Вильямс», 2009. — С. 544. 
  25.  JavaScript. Библия пользователя = JavaScript. Bible / Денни Гудман (Danny Goodman), Майкл Моррисон (Michael Morrison); пер. с англ. И. В. Василенко. — 5-е изд. — Москва, Санкт-Петербург, Киев: Дилектика, 2006. — С. 3, 26. — 1184 с. — 3000 экз. 
  26.  JavaScript. Карманный справочник. Необходимый код и команды = JavaScript. Phrasebook. Essential code and commands / Кристиан Уэнц (Cristian Wenz); пер. с англ. И. В. Берштейн. — Москва, Санкт-Петербург, Киев: ООО "И. Д. Вильямс", 2008. — С. 18. — 272 с. — 2000 экз. 
  27. https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

ПРИЛОЖЕНИЕ

Рисунок 1. Популярность языков по данным GitHub.

Рисунок 2.Процентное соотношение офферов по популярным языкам программирования по уровню заработной платы.

Список языков программирования по индексированию поиска гугл.

  1. Java
  2. Python
  3. Javascript
  4. C++
  5. C#
  6. SQL
  7. PHP
  8. Swift
  9. Ruby

Рисунок 3.Ожидание работодателей к уровню специалистов.

Рисунок 4.Зарплата для представителей языков.