Без языков программирования мир в нынешнем виде просто не существовал бы. Представьте, что мы живём без компьютеров, цифровых технологий, всех этих интернетов с Instagram и TikTok. Вообразить такое очень сложно, если вообще возможно.
Но сколько языков программирования существует вообще? Чтобы ответить на этот вопрос, нужно провести серьёзное исследование. Причём стоит сразу отделить зёрна от плевел, то есть определить, что является языком программирования (ЯП), а что нет. В зависимости от этого разные источники дают самые разнообразные ответы. Если коротко, то от 1000 до 10 тысяч. Всё зависит от того, что признавать языком программирования и определять ли разновидности (если угодно, форки) одного ЯП как разные языки. Но даже если так не делать, то насчитать можно около 700 языков: от самых старых до современных, от практичных и используемых до эзотерических, создаваемых просто для фана.
Более того, новые ЯП появляются с завидной регулярностью — многие компании разрабатывают собственные языки. Экспериментируют с этим и отдельные разработчики.
У всех языков своё назначение. Какие-то применяются для написания мобильных приложений, другие — для работы с микроконтроллерами, третьи — для создания десктопных программ или аналитики. Но есть и случаи, когда одну задачу можно решить при помощи разных языков.
Какие бывают языки программирования
Языки программирования классифицируют по разным признакам: функциональности, способу описания сущностей, способу реализации и некоторым другим.
Статическая и динамическая типизации
Здесь речь идёт о процессе проверки соответствия типов. Система типов — это набор правил, присваивающих свойство («тип») ряду сущностей: переменным, выражениям, функциям, модулям. В статической типизации переменным типы присваиваются в момент объявления — так работают Go, С++, C#, Java и ряд других языков. При динамической типизации это происходит в момент присваивания значения, как в PHP, Python, JavaScript, Ruby и подобных ЯП.
Высокоуровневые и низкоуровневые языки
Здесь всё проще. Как правило, к низкоуровневым языкам относятся ЯП первых поколений. Это машинный код и ассемблеры, которые появились на заре цифровой эры. Тогда горы были высокими, деревья зелёными, а ЭВМ занимали целые здания.
Но по мере технического прогресса задачи усложнялись. Чтобы их решать, люди совершенствовали вычислительные устройства. Тогда и были разработаны высокоуровневые языки, позволившие ускорить создание ПО и увеличить эффективность работы ЭВМ. Одним из первых был Fortran.
Сейчас выделяют ещё и сверхвысокоуровневые языки с очень высоким уровнем абстракции. К ним относят, например, Python и Perl.
Интерпретируемые и компилируемые языки
Это разделение весьма условно. Главное различие — компилируемым языкам для исполнения программы нужен машинный код, а интерпретируемым нет. Вместо этого программу построчно исполняют интерпретаторы. Раньше компилируемые языки работали быстрее интерпретируемых, но сейчас этот разрыв постепенно сокращается благодаря таким технологиям, как JIT-компиляция.
Примеры компилируемых языков: Pascal, Basic, Visual Basic, Cobol, Swift, Go, Haskell, C#, Kotlin. Интерпретируемые: PHP, JavaScript, Python, Lava, Perl.
Визуальные и текстовые языки
В визуальных языках специалист не пишет текст программы, а использует графические объекты. Визуальное программирование становится всё более востребованным из-за популярности смартфонов и планшетов. Кроме того, именно визуальные ЯП используются для обучения детей программированию.
Примеры таких языков: Sketchware, App Inventor, Блокли, HiAsm и другие. К текстовым относится множество других языков, к которым мы привыкли больше.
Эзотерика и just for fun
А сколько языков программирования было создано просто так — для развлечения или обучения в игровой форме! Их вряд ли можно использовать для решения практических, «взрослых» задач, но при этом они вполне полноценны.
Lolcode
Этот язык в 2007 году создал научный сотрудник Ланкастерского университета Адам Линдсей. Lolcode использует словарь интернет-мема «лол кот».
HAI CAN HAS STDIO? I HAS A VAR IM IN YR LOOP UP VAR!!1 VISIBLE VAR IZ VAR BIGGER THAN 10? KTHX IM OUTTA YR LOOP KTHXBYE
У большинства языков, созданных для фана, нет библиотек. А это значит, что использовать их можно лишь для чтения файла или записи текста на консоль.
Glass
Создан в 2005 году. Его разработчики заявляют, что ни один другой язык не может быть реализован подобно этому. Почему? Да просто потому что его реализация смерти подобна.
{F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*(_a)(le).?=/(_isle)^\(_n)*(_a) s.?(_t)f.?(_n)*(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)=(_nlm) =/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*(_a)a.?=(_nlm)(_n)* (_a)(le).?=\]}
Участок кода выше выводит последовательность чисел Фибоначчи.
Brainfuck
Культовый язык для гиков, который содержит восемь простых команд и их указатель. Его создавали как развлечение для программистов, а не практический инструмент. Несмотря на всё это, язык стал чрезвычайно популярным.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++. <<+++++++++++++++.>.+++.------.--------.>+.>.
Выше — участок кода, отвечающий за вывод «Hello, World».
Chicken
А в этом языке всего одно ключевое слово — угадаете какое? И количество повторений с новыми линиями определяет код используемой операции.
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
Это был пример работающего кода.
Какие языки программирования самые востребованные
По версии сервиса TIOBE, первую тройку рейтинга востребованности занимают Java, C и Python. А вот топ-20:
Каждый год топ изменяется — иногда очень заметно, а порой незначительно. Рейтинги 2020 и 2019 годов почти не отличаются.
Какие разработчики больше всего зарабатывают
Сервис «Хабр.Карьера» регулярно выкладывает статистику зарплат программистов, работающих с разными языками. Самая высокая медианная зарплата у разработчиков Elixir: 165 тысяч рублей. Затем идут разработчики Objective-C — 151 тысяч рублей в месяц. Далее — Scala с Go: специалисты по ним получают 150 тысяч рублей. Распределение самых «доходных» ЯП выглядит так:
А вот разбивка по основным специализациям разработки:
Большое влияние на эти цифры оказывает и локация работодателя. Если взять среднее значение зарплат программистов, то медиана по Москве — 140 тысяч рублей, в Санкт-Петербурге — 116 тысяч, в других регионах — 80 тысяч рублей.
Так сколько языков программирования существует?
Как мы убедились, ответа на этот вопрос нет. Чтобы попытаться его найти, нужно определить множество условий, а также вести наблюдение за всеми энтузиастами, которые могут взять и сделать свой язык. А программировать лучше всего на том языке, который просто вам нравится. Конечно, стоит ориентироваться на востребованность ЯП — но если вы работаете с языком из топ-20, то беспокоиться не о чем.
Лучше всего знать не один язык, а два-три — такие специалисты всегда нарасхват. Получить необходимый опыт и знания можно у профессионалов на одном из факультетов GeekUniversity. А если вы ещё не определились — загляните на бесплатный вебинар.
Комментарии