Файл: Современные языки программирования (Проблематика современных языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 12.03.2024

Просмотров: 22

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Интерпретируемые, компилируемые и встраиваемые языки. Это значит разный способ перевода исходного кода в машинный код. Интерпретируемые языки используют для этого интерпретатор, который переводит исходный код в машинный, команда за командой, в основном это языки с динамической типизацией, связывание элементов программы с их характеристиками происходит на этапе выполнения программы, в произвольной точке. Компилируемые языки используют компилятор, он компилирует исходный код в исполняемую программу целиком, как правило являются языками со статической типизацией, так как программные элементы связываются со своими характеристиками на этапе компиляции. Компилируемые языки в основном быстрее интерпретируемых, но при этом для каждой платформы и операционной системы требуют перекомпиляции, также перекомпиляция требуется при внесении изменений в программу. Интерпретируемые языки напротив, более медленные, но не зависят от платформы и операционной системы, главное, чтобы на ЭВМ, на которой запускается программа был установлен интерпретатор, при внесении изменений в программу сразу интерпретируется. Встраиваемый язык является подмножеством другого языка программирования и не может существовать без него. Такие языки как C# и Java, находятся между компилируемыми и интерпретируемыми. Программа, написанная на них, сначала компилируется в платформа-независимый байт-код, после чего интерпретируется виртуальной машиной, а некоторые части, для оптимизации могут транслироваться на лету.

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

По подходу к реализации. Можно выделить императивный и декларативный подход. Императивный подход, отвечает на вопрос – как? Программисту необходимо шаг за шаг описать как должен выполнятся алгоритм, какими методами. В декларативном подходе ставиться вопрос – что? Что необходимо получить на выходе, после обработки вводных данных. Программисту не надо думать о самой реализации процесса обработки данных. Декларативный подход позволяет писать более лаконичный код, но при этом возможны потери в быстродействии программы.

2.2 Предметные области языков программирования


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

- Задачи искусственного интеллекта – Пролог, Лисп, Рефал;

- Параллельные вычисления – параллельный Кобол, Fun, Apl;

- Задачи вычислительной математики – параллельный Кобол, РА, Occam;

- Разработка интерфейса – Ассемблер, Макроассемблер, Ява;

- Задачи вычислительного характера – Алгол, Фортран, Кобол, Ада;

- Разработка программ оболочек – Ассемблер, Макроассемблер, Ява;

- Оформление документов, обработка больших текстовых данных – Natural, Perl;

- Разработка веб-приложений – PHP, Phyton, Ruby;

- Разработка интерфейсов веб-приложений – JavaScript;

- Разработка игр – C, C++, C#, Java;

- Разработка мобильных приложений – Java, Swift.

2.3 Рейтинги популярности языков программирования

Определить какой язык программирования наиболее популярен, достаточно сложная задача. Так как нет согласованных и формализованных критериев оценки популярности. На одном языке может быть написано наибольшее количество строк кода, на другом может быть написано больше книг, третий требует больших затрат человеко-часов и тому подобное, четвертый наиболее часто используется для исследований. Некоторые языки пользуются наибольшей популярностью для решения определенных задач. Например, Кобол до сих пор является самым используемым в корпоративных дата-центра, Фортран в научно-инженерных приложениях, C и его вариации в системном программировании.

Например, профильный ресурс DOU.UA, в 2021 провел ежегодный опрос о языках программирования, в рамках которого было 7211 анкет. Итоговый рейтинг показан на Рисунке 3.

Рисунок 3. Рейтинг языков программирования по версии ресурса dou.ua.

Динамика изменения популярности языков программирования, согласно собранным данным этого же ресурса показана на Рисунке 4.

Рисунок 4. Динамика изменения популярности языков программирования по версии dou.ua.

Также в процессе анкетирования был задан интересный вопрос – каковы личные предпочтения при выборе языка программирования. Конечно, такие данные нельзя взять за основу определения популярности языка, но эти данные будут влиять на итоги рейтингов в целом. Графики с изменением личного предпочтения в период с 2012-2021 представлен на Рисунке 5.


Рисунок 5. Личные предпочтения при выборе языка программирования.

На основе проведенного опроса был составлен «Индекс предпочтения», показывающий количество разработчиков, которые для следующего проекта в этой же предметной области выберут этот же язык программирования. Индекс предпочтений на Рисунке 6.

Рисунок 6. Индекс предпочтений.

На Рисунке 7. представлены графики изменения в период с 2012-2021 ответа на вопрос – какие языки программирования планируете изучить в будущем?

Рисунок 7. Какие языки программирования планируете изучать в будущем.

Был задан вопрос - в какой области вы работаете? Результаты ответа на рисунке 8.

Рисунок 8. Области работы.

На Рисунке 9. Финальная таблица рейтинга ресурса dou.ua

Рисунок 9. Финальная таблица.

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

Ресурс ProgNote представляет свой рейтинг на основе количества вакансий в Москве, размещенных на одной из самых крупных площадок по поиску работы:

- Первое место в этом рейтинге занимает Python c количеством вакансий 3 300;

- Второе место JavaScript около 2 900 вакансий;

- Третье место Java и 2 800 вакансий;

- Четвертое место PHP 1 300 вакансий;

- Пятое место C# 1 200 вакансий;

- Шестое место Kotlin 600 вакансий;

- Седьмое место Swift 450 вакансий/

В этом рейтинге аналогичная ситуация с первым рейтингом, первые места заняли языки, применяемые в веб-разработке.

Рейтинг ресурса TIOBE.COM. Рейтинг основан на количестве квалифицированных инженеров во всем мире, курсов и сторонних поставщиков. Также для составления рейтинга используются популярные поисковые системы: Google, Yahoo, YouTube, Amazon, Wikipedia, Baidu, Bing. Важно отметить, что индекс Tiobe не определяет лучший язык программирования и не считает на каком языке написано больше строк кода. Индекс Tiobe представлен в таблице 1.

Таблица 1.

Рейтинг самых популярных языков программирования по версии ресурса TIOBE

Февраль 2021 г.

Язык программирования

Рейтинги

1

C

16.34%

2

Java

11.29%

3

Python

10.86%

4

C++

6.88%

5

C#

4.44%

6

Visual Basic

4.33%

7

JavaScript

2.27%

8

PHP

1.75%

9

SQL

1.72%

10

Assembly Language

1.65%

11

R

1.56%

12

Groovy

1.50%

13

Go

1.28%

14

Ruby

1.23%

15

Swift

1.13%

16

MATLAB

1.06%

17

Delphi/Object Pascal

1.02%

18

Classic Visual Basic

1.01%

19

Perl

0.93%

20

Objective-C

0.89%

21

Scratch

0.82%

22

SAS

0.66%

23

Fortran

0.63%

24

D

0.59%

25

Cobol

0.58%

26

Transact – SQL

0.55%

27

Prolog

0.54%

28

PL/SQL

0.52%

29

Julia

0.52%

30

Rust

0.49%

31

Ada

0.47%

32

Dart

0.42%

33

(Visual) FoxPro

0.42%

34

ABAP

0.38%

35

Lisp

0.34%

36

Scala

0.34%

37

Lua

0.34%

38

Logo

0.33%

39

Kotlin

0.32%

40

TypeScript

0.29%

41

VHDL

0.26%

42

Bash

0.25%

43

LabVIEW

0.24%

44

Haskell

0.24%

45

VBScript

0.24%

46

Ladder Logic

0.23%

47

Apex

0.23%

48

Elixir

0.22%

49

Alice

0.22%

50

PowerShell

0.21%


StackOverflow – международный ресурс для программистов, также опубликовал в 2020 свой рейтинг самых популярных языков программирования, на основе опроса 47 184 профессиональных программистов, таблица 2.

Таблица 2.

Рейтинг самых популярных языков программирования по версии ресурса StackOverflow

2020 г.

Язык программирования

Рейтинги

1

JavaScript

69.7%

2

HTML/CSS

62.4%

3

SQL

56,9%

4

Python

41.6%

5

Java

38.4%

6

Bash/Shell/PowerShell

34.8%

7

C#

32.3%

8

TypeScript

28.3%

9

PHP

25.8%

10

C++

20.5%

11

C

18.2%

12

Go

9.4%

13

Kotlin

8.0%

14

Ruby

7.5%

15

VBA

6.2%

16

Swift

6.1%

17

R

5.5%

18

Assembly

4.9%

19

Rust

4.8%

20

Objective-C

4.4%

21

Scala

3.9%

22

Dart

3.7%

23

Perl

3.3%

24

Haskell

1.8%

25

Julia

0.9 %

Несмотря на то, каким методом составлялся рейтинг, можно увидеть, что везде встречаются одни и те же языки программирования, с небольшой разницей в позициях, хотя как говорилось в первой главе, на данный момент в мире насчитывается более 8 000 языков программирования. Это обусловлено тем, что языки программирования, попавшие в топ, наиболее удобно применимы в популярных сейчас областях разработки программ, в которых задействовано наибольшее количество профессиональных разработчиков. Также языки занимающие первые строчки рейтингов имеют широкий спектр применения, например Python, достаточно широко используется для решения задач искусственного интеллекта, веб-разработки, работа с базами данных. C# используют для разработки веб, десктопных и мобильных приложений. Эти языки хорошо документированы, имеют большие сообщества, также языки достаточно часто обновляются под современные требования.


2.4 Современные языки программирования и Последовательность Фибоначчи

Рассмотрим решение задачи вывода последовательности Фибоначчи на современных языках программирования.

В начале приведем пример решения задачи на ассемблере Рисунок 10:

Рисунок 10. Вывод последовательности Фибоначчи на ассемблере.

Теперь сравним решение этой задачи на современных языках программирования.

Решение на Python Рисунок 11.

Рисунок 11. Вывод последовательности Фибоначчи на Python.

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

Чаще всего Python используется в веб-разработке и анализе больших данных. Чтобы дополнить функциональность языка, используются разные фреймворки: Django, Pyramid, Flask и другие. Но Python подходит и для создания прикладных приложений или игр. Например, графический редактор GIMP написан именно на Python. Торрент-клиент BitTorrent вплоть до 6 версии тоже разработан на этом языке. Python применялся и в ходе разработки игровых проектов класса ААА: EVE Online, Battlefield 2, World of Tanks и других. Чаще всего в таких случаях на Python пишут один из компонентов проекта. То есть не всю игру или приложение, а какой-то модуль, например серверную часть. А ещё язык Python используется в системном администрировании, для автоматизации задач. Он задействован практически во всех серверах с ОС Linux. «Питон» очень хорош и для работы с данными в научных исследованиях — в набирающей обороты Data Science. На этом языке пишут алгоритмы машинного обучения и анализа данных. Как видим, Python используется повсеместно — с ним дружат мобильные и десктопные приложения, игры, наука, ИИ-отрасль. Проще перечислить, где Python ещё не пригодился. Такая пластичность очень способствует его популярности. Неудивительно, что при такой универсальности Python применяют многие крупные IT-компании. В Amazon и Spotify используют Python для анализа пользовательских данных, информации о продажах и разработки персонализированных рекомендаций. В Walt Disney применяют этот язык в качестве скриптового для анимации. YouTube и Instagram… Эти проекты полностью написаны на Python. Кроме того, холдинг Alphabet использует «питон» для скрейпинга в Google — извлечения данных со страниц веб-ресурсов. Netflix создала свой рекомендательный сервис с нуля на Python. Autodesk в своём редакторе 3D-анимации Maya с помощью Python создаёт мультипликацию. Так же язык использует студия Pixar. JPMorgan Chase, крупный американский финансовый холдинг, применяет Python для прогнозирования рынка. NASA работает с проектами на этом языке программирования, чтобы проводить научные вычисления. В этом списке собрана лишь незначительная часть компаний и сервисов, которые работают с Python. В их числе также Mail.ru, Яндекс, Yahoo, Facebook, Dropbox, Quora и многие другие.