Добавлен: 24.04.2023
Просмотров: 196
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Теоретические аспекты языков программирования высокого уровня
1.1 Краткая история языков программирования
1.2 Краткая характеристика основных языков высокого уровня
1.3 Сравнение языков программирования разных уровней
Глава 2. Анализ языков программирования высокого уровня
2.1 Анализ языков программирования на основе рейтингов
1) Скорость.
Поскольку программы, написанные на языке низкого уровня, взаимодействуют напрямую с памятью и регистрами, то сточки зрения скорости выполнения программы, они будут быстрее, чем программы, написанные на языках среднего и высокого уровня, так как компьютеру не нужно компилировать или интерпретировать. А программы, написанные на высокоуровневом языке, компьютеру необходимо интерпретировать и переводить, прежде чем он начнет их выполнение. Главная причина этого –они написаны не на машинном коде, а на «человеческом» языке. Скорость среднеуровневого языка находится между языками высокого и низкого уровней.
2) Понятность.
Низкоуровневые языки дружелюбны к вычислительным машинам, но не к программистам. Разработчикам очень сложно справляться с бинарными файлами и символикой. Ведь каждая команда, каждая строка кода работает под определенной компьютерной архитектурой. Это делает язык еще более техническим. В общем, эти языки тяжелы в усвоении. И напротив, высокоуровневые языки довольно понятны программистам. Их можно быстро запомнить и легко понять, потому что они состоят из английских фраз и слов. Это один из факторов, почему в настоящее время высокоуровневые языки наиболее популярны в IT-сообществах.
3) Переносимость.
Переносимость, она же – портативность, это способность языка работать на разных компьютерах, архитектуре. Из всех видов лишь низкоуровневые языки являются менее переносимыми. Обуславливается такое тем, что их команды, как уже упоминалось ранее, зависят от компьютера и используемой архитектуры, так как весь код пишется под конкретную машину. Он попросту не будет работать на другом компьютере. Высокоуровневые языки портативны, они не зависят ни от компьютера, ни от архитектуры. Один и тот же код без каких-либо трудностей может использоваться на другой машине и даже на другой архитектуре.
4) Требование к памяти.
Эффективность низкоуровневого языка по отношению к памяти очень высока, так как потребление памяти у них небольшое. Это намного разнится от высокоуровневых языков, которые, как известно, интенсивно используют ее. У среднего уровня языков потребление памяти чуть меньше чем у высокого уровня.
5) Абстракция.
В данном случае под абстракцией понимается взаимосвязь между языком и оборудованием компьютера. Практически нулевую абстракцию имеют языки низкого уровня, потому что их взаимодействие с памятью компьютера и регистрами не вызывает никаких сложностей. Взаимосвязь между языками среднего уровня и техническим обеспечением весьма значительна, по сравнению с низкоуровневыми. Но наибольший уровень абстракции имеют, конечно же, языки высокого уровня.
У них самое маленькое взаимодействие с компьютерным оборудованием, потому что языки высокого уровня работают с верхнего уровня компьютера.
Таким образом, существуют явные различия между языками программирования высокого, среднего и низкого уровней. Но при этом «фаворита» выделять не стоит, поскольку каждый вид языка программирования предназначен для определенных целей.
Глава 2. Анализ языков программирования высокого уровня
2.1 Анализ языков программирования на основе рейтингов
1) Рейтинг TIOBE.
Индекс TIOBE (TIOBE programming community index) – это один из известных индексов, показывающий степень востребованности языка программирования, анализируя данные запросов в поисковых системах. Обновляется данный индекс каждый в месяц. Рейтинг учитывает как количество квалифицированных инженеров во всем мире, так и количество образовательных курсов по различным языкам. Для расчета индекса TIOBE используются данные результатов поиска в популярных поисковых системах, полученных в Google, YouTube, Wikipedia, Bing, Yahoo!, Baidu, и Amazon. Важно отметить, что индекс TIOBE не называет победителя рейтинга – лучшим языком программирования или языком, на котором написано большинство строк кода.
Рисунок 1 – Рейтинг TIOBE
На первом месте продолжает оставаться Java. Второе место занимает язык C, имея 14.282% в рейтинге. Третье место получил Python с 8.376%, сместив в этом рейтинге популярности С++. Позиция Python выросла по сравнению с декабрем 2017 и продолжает расти. Язык С++, в свою очередь, уступив третье место, занимает сейчас четвертое. Его популярность, как видно из графика, колеблется относительно 8%, имея на декабрь 2018 – 7.56%.
Интересной особенностью этого индекса оказывается то, что Visual Basic.NET в настоящее время находится на пятой позиции с рекордно высоким для данного языка уровнем. Это очень неожиданно, ведь профессиональные разработчики программного обеспечения крайне мало используют Visual Basic.
Стоит отметить, что язык SQL снова добавлен в индекс TIOBE с февраля 2018 года. Вследствие этого, для языка SQL нет недавней истории, и может показаться, что значимость SQL растет очень быстро.
2) Статистика GitHub.
Статистика использования языков программирования на площадке GitHub показывает, что лидером по применению продолжает быть язык JavaScript. Он остается бессменным лидером и в частных репозиториях, и в публичных, а также лидирует в репозиториях организаций всех размеров вне зависимости от региона расположения во всем мире.
Рисунок 2 – Статистика GitHub
На втором месте, также без изменений значимости, находится Java. Третье место занимает Python, чья популярность, благодаря применению его в системах машинного обучения, выросла в 1.5 раза. Четвертое и пятое место соответственно занимают, PHP и C++.
По сравнению с предыдущим годом можно отметить стремительный рост применения языка TypeScript – благодаря частоте его применения, в рейтинге он поднялся с 10 места на 7.
Заметным оказалось падение популярности языка С. В этом году он «провалился» сразу на два пункта, занимая сейчас 9 место.
Популярность Ruby падает. Начиная с 2015 года этот язык на GitHub последовательно «сползает» с 5 места на 10 в 2018 году.
Стоит также отметить существенный рост частоты применения языка Kotlin. Несмотря на то, что он пока не входит в десятку - за 2018 год частота его использования в проектах выросла в 2.6 раза.
3) Рейтинг Stackoverflow.
Согласно данным опроса Stack Overflow’s 2018 Developer Survey, проводимого уже восьмой год среди более чем 100 000 разработчиков, есть несколько тенденций, которые отмечают редакторы самого StackOverflow:
– DevOps и машинное обучение являются сегодня важными тенденциями индустрии программного обеспечения. Языки и структуры, связанные с этими видами работ, находятся на подъеме, и разработчики, работающие в этих областях, получают самые высокие зарплаты;
– Python поднялся в рейтинге языков программирования, превзойдя C# по популярности в этом году, так же как он превзошел PHP в прошлом году.
Рисунок 3 – Рейтинг Stackoverflow
JavaScript, согласно данным StackOverflow, остается лидирующим языком среди использованых разработчиками. Следующим после JavaScript является SQL, занимающий второе место. Затем идут Java, Bash, Python, занимающие соответственно третье, четверное и пятое места.
4) Рейтинг Black Duck.
Самым крупным сайтом, посвященным программам с открытым исходным кодом является сайт Black Duck (Черная утка) blackducksoftware.com
Одним из проектов Черной утки является каталог open source. В этом каталоге представлено около 500 000 проектов. Так как у всех проектов код открыт, то легко определить, на каком языке эти проекты написаны. На январь 2019 года рейтинг выглядит следующим образом.
Рисунок 4 – Рейтинг Black Duck
Как видно, здесь практически половина программ (46%) написано на C. Это понятно, потому что С – это язык общения программистов. Это единственный язык, компилятор которого есть на всех платформах: от встроенных систем до суперкомпьютеров.
Легко заметить, что одни данные мировых рейтингов языков программирования несколько противоречат данным других рейтингов о тенденциях изменения популярности языков. Однако есть ряд трендов, которые можно четко выделить из всех предоставленных данных.
Таким образом, на основе рейтингов, можно сформулировать следующие выводы:
- Все они отмечают заметный рост запросов на разработчиков, применяющих Python – как в уже относительно устоявшихся сферах статистической обработки, BigData и машинного обучения, так и в WEB, и в embedded разработке. Python – однозначно стоит рассмотреть в качестве языка для изучения на 2019 год.
- JavaScript остается бессменным лидером фронтенда и постепенно набирает очки в бэкенде и мобильной разработке под Android и iOs.
- Java продолжает лидировать как в разработке под Android, так и в сфере Enterprise разработки. Постепенно проникает Java и в WEB-backend.
- C# несколько растерял свои позиции, однако он однозначно будет находиться среди первых мест, оставаясь главным языком экосистемы Microsoft с широчайшей поддержкой этой корпорации. Также не стоит забывать достаточно глубокое проникновение С# в WEB, относительную простоту изучения, а также активное применение этого языка в разработке игр (Unity, XBOX 360) и мобильных приложений (Xamarin).
- Неоднозначна позиция у C++. Несмотря на то, что этот язык все еще полноценно присутствует в ТОП 10 языков и активно применяется для разработки игр, приложений для мобильных платформ, десктопных приложений и в embedded разработке – все больше заметно вытеснение его с занимаемых позиций другими языками. Кроме того, стоит учитывать, что большинство разработчиков не рекомендуют его как первый язык для изучения, из-за его сложности.
- В разработке под iOs Swift уже обогнал Objective-C и разрыв все еще увеличивается.
- Значительная часть разработчиков не считает PHP – языком «будущих разработок», при этом признавая его однозначным лидером «сегодняшних разработок» в сфере бэкенда. Падение же популярности его будет явно достаточно длительным.
- Ряд языков, такие как Go, Kotlin, Ruby и др. имеет смысл рассмотреть в качестве второго или третьего языка для развития человека как разработчика программного обеспечения.
2.2 Сравнение языков программирования высокого уровня
Рассмотрим наиболее популярные языки программирования высокого уровня: PHP, Ruby и Python и проведём их сравнение.
1) PHP: самый популярный язык сценариев для Интернета PHP (Hypertext PreProcessor) – это язык серверных сценариев, разработанный Расмусом Лердорфом. PHP является мощным инструментом для создания динамических и интерактивных веб-сайтов. Это быстрый, гибкий, широко используемый язык сценариев для всего: от простого блога до самых популярных и динамичных веб-сайтов в мире.
Преимущества PHP:
бесплатное программное обеспечение, выпущенное под лицензией PHP;
лёгок в изучении (Короткая кривая обучения);
большое сообщество пользователей и разработчиков;
обеспечивает обширную поддержку базы данных;
предлагает большое количество доступных расширений и исходных кодов;
позволяет выполнять код в ограниченных средах;
предлагает нативный API управления сессиями и расширения;
отличная альтернатива для конкурентов, таких как Microsoft ASP (Active Server Pages);
может быть развернут на большинстве веб-серверов;
работает практически на каждой операционной системе и платформе].
Недостатки PHP:
не подходит для создания настольных приложений;
обработка ошибок традиционно плохая;
глобальные параметры конфигурации могут изменить семантику языка, усложняя развертывание и переносимость;
по умолчанию это объекты CallByValue, что противоположно большинству языков и застает многих программистов врасплох;
обычно считается менее защищенным, чем другие языки программирования PHP используют такие компании, как: Zend, Yahoo, Facebook, Google, NASA, W3C.
По состоянию на январь 2013 года PHP был установлен на более чем 240 миллионов веб-сайтов (39% из них) и 2,1 миллиона веб-серверов. На июнь 2019 занимает 9 место по популярности. PHP-скрипт начинается с <?php и заканчивается ?>. Расширением по умолчанию для файлов PHP является «.php». Файл PHP обычно содержит теги HTML и некоторый код сценария PHP.
2) Python: язык программирования общего назначения Python является широко используемым высокоуровневым языком программирования (но он также используется в широком диапазоне non-scripting языка) среди программистов, которые хотят выразить свои идеи с меньшим количеством строк кода. Он был придуман в конце 1980-х годов Гвидо ван Россумом.