Их больше, чем вы думаете: X, Y, Z и ещё 34 языка программирования с названием из одной буквы
Спойлер: все буквы заняты, букв больше нет.
Анастасия Телесницкая для Skillbox Media
На каждую букву английского алфавита уже придумали язык программирования. О скольких из них знаете вы?
A
Язык A придумал Артур Уитни — канадский учёный-компьютерщик, но в массы ушла версия языка, доработанная специалистами Morgan Stanley. Она получила название A+.
Этот язык — один из многих потомков языка APL, названного в честь книги «A Programming Language» (англ. «Язык программирования»). A+ — специализированный интерпретируемый язык. Он был разработан для создания высоконагруженных бизнес-приложений в сфере финансов.
А вот A# (произносится «эй-шарп») с этой парочкой никак не связан — это просто версия языка Ada для платформы Microsoft.NET.
B
Один из самых старых языков программирования. Над ним работали Кен Томпсон и Денис Ритчи в шестидесятые-семидесятые годы. Сейчас на B уже никто не пишет, потому что на базе этого языка создали C, и вот тот стал по-настоящему популярным.
C
Пожалуй, самый известный язык из нашей подборки. Родился в недрах компании Bell Labs при участии всё того же Дениса Ритчи и стал первым среди языков высокого уровня, потеснившим ассемблер в разработке системного программного обеспечения: именно на C была написана операционная система Unix.
Позднее появился C++, который унаследовал синтаксис C, но в него добавили поддержку концепций объектно-ориентированного программирования и другие расширения.
C# — самый молодой в семействе языков C, его начали разрабатывать в девяностые годы XX века. Взял многое у своих старших братьев, но избавился от части концепций, которые многие критиковали, — например, от множественного наследования.
C позволяет легко выстрелить себе в ногу; С++ усложняет задачу, но когда вы это делаете, он отрывает вам ногу целиком.
D
Забавно, но и это тоже потомок C. Точнее, он ближе к C++ по возрасту и концепциям, но круче по скорости и проще в освоении. Слоган D на официальном сайте — «Fast code, fast» (англ. «Быстрый код, быстро»).
E
Несмотря на столь короткое название, это очень серьёзный язык, придуманный серьёзными людьми из Electric Communities. Эта компания была основана сотрудниками Стэнфордского университета и в девяностые годы прошлого века занималась разработкой веб-сервисов и приложений.
Миссия E — безопасные распределённые вычисления. Все значения в нём — объекты, которые живут в разных потоках исполнения и взаимодействуют между собой с помощью сообщений. Суть технологии в том, что вычислительные задачи решаются параллельно на нескольких компьютерах, — так быстрее, если всё правильно настроить.
F
F — это подмножество старого и почти забытого языка программирования — Fortran, известное даже меньше своего «родителя». Если вы попробуете найти информацию о нём в поисковике, то в топе выдачи окажутся ресурсы о F#, у которого с F мало общего.
F# — версия языка OCaml для платформы Microsoft.NET. Это универсальный язык, подходит для кросс-платформенной разработки, похож на C# хотя бы тем, что тоже создан при участии Microsoft. А вот про отличия подробнее рассказано в этой статье.
F* (произносится «эф-стар») — ещё один продукт Microsoft. Этот язык очень любит проверки — он ориентирован на так называемую формальную верификацию (соответствие формальным требованиям) программ, которые на нём пишутся. На F* написаны протоколы безопасности, веб-серверы, расширения веб-браузера. В рамках проекта «Эверест» на нём хотят переписать вообще всё, что имеет отношение к HTTPS.
«Всякий раз, когда два программиста встречаются для критического анализа своих программ, они оба молчат» (Алан Перлис).
G
Написать компилятор на G у вас не выйдет, как и вообще использовать этот язык вне его среды обитания — LabVIEW. Это графический язык, то есть вместо того, чтобы писать текст программы, нужно мышкой перетаскивать блоки на диаграмму.
LabVIEW — расшифровывается как Laboratory Virtual Instrumentation Engineering Workbench. Если переводить дословно, то это «лабораторный виртуальный верстак для приборостроения», и язык G действительно ориентирован в основном на лабораторные исследования, измерения и сбор данных.
H
Формально язык с таким названием существует, у него даже есть свой сайт. Вот только там написано, что язык начали делать аж в 2012 году, но так и не доделали. Всё, что пока с его помощью можно запрограммировать, — объединение строк.
Собака на сене какая-то — букву застолбили, а язык так и не создали: -)
I
В случае с I с сайтом не заморачивались, зато у него есть репозиторий на GitHub и понятная цель — создатели хотят расширить возможности языка J (он тоже попал в нашу подборку) так, чтобы в программах можно было использовать не только массивы, но и другие структуры данных.
J
И снова родственник языка APL. Точнее, J — это смесь из APL, FP и FL. В этом языке совсем нет переменных — только функции. А ещё этот язык очень хочет быть похожим на человеческий. При описании сущностей программы оперирует терминами грамматики: например, данные в нём называются существительными, а функции — глаголами.
Используется J в основном для математического и статистического анализа данных.
K
Следующая буква — опять наследие APL. Более того, язык K придумал тот же Артур Уитни, которого мы упоминали в рассказе про A. Для продвижения он даже создал компанию — Kx Systems, которая работает и сейчас. На языке K создаются финансовые приложения для банков.
Есть только два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется.
M
До наших дней дожили сразу несколько M-языков:
- Так называется язык формул в Microsoft Power Query, приложении для работы с данными.
- Так сокращённо называют язык MUMPS (Massachusetts General Hospital Utility Multi-Programming System — Мультипрограммная система Общеклинической больницы Массачусетса), созданный специально для разработки медицинских программ.
- M — это ещё и простой предметно-ориентированный язык, который придумали во Французском управлении государственных финансов (DGFiP) для расчёта налогов.
N
А это, похоже, секретный язык будущего. Поисковики выдают только ссылку на краткое описание статьи, которая так и называется — «Язык программирования N». Доступ к ней можно получить только по подписке, так что придётся поверить анонсу:
«Мы думаем, что в будущем нейронные сети будут развиваться, и хотим спроектировать полноценную среду разработки для создания и тестирования программ нового поколения. Язык для описания нейронных сетей будет частью этой среды».
Ниже написано, что разработка ведётся в рамках проекта Pygmalion ESPRIT II 2059. Так что, возможно, придётся ждать ещё лет тридцать, чтобы узнать подробности.
O
Мой самый любимый язык из этой подборки, потому что когда-то в универе мы, студенты, вместе писали компилятор языка O — подмножества языка Оберон. Только не говорите, что вы не слышали про Оберон, — его же создал тот самый Никлаус Вирт, который и Паскаль когда-то придумал. И, да, Паскаль — тоже язык программирования :)
Существует и более известная версия O — это эзотерический язык программирования. Эзотерические языки зачастую создаются только шутки ради или как произведения искусства, но у O есть цель — прокачивать программистские скилзы. Он используется для код-гольфинга, решения задачек по программированию.
Ещё у этого языка не только название из одной буквы, но и все команды тоже.
Например, программа io сначала читает то, что вводит пользователь в консоли (input), а потом выводит то же самое на экран (output).
Подробнее о том, что такое эзотерические языки, и про другие их примеры мы писали в этой статье.
P
P — язык для моделирования сложных распределённых систем. Сейчас он используется в Amazon и, судя по репозиторию, активно развивается. По словам создателей, на нём писали USB-драйверы для Windows, программы на P применяли в робототехнике. А ещё этот язык подходит для разработки в области Интернета вещей (IoT).
P# никак не связан с предыдущим, это версия языка Prolog для Microsoft.NET.
Есть ещё P′′ (произносится «пи-дабл-прайм»), который известен в узких кругах тем, что стал первым Тьюринг-полным языком программирования без команды GOTO (переход на строку с меткой). В широких же кругах чаще упоминают эзотерический язык Brainfuck — вариацию языка P′′.
Q
Q — это обёртка над языком K, который создал Артур Уитни, который создал A в доме, который построил Джек. Основное предназначение Q — работа с массивами данных, это язык запросов системы управления базами данных kdb+.
Q (с тем же названием — смотрите не перепутайте :)) — это эквациональный (от англ. equation — уравнение) язык программирования, созданный сотрудником немецкого Университета Майнца Альфредом Графом. Программа на этом языке — это набор уравнений, которые используются для вычисления выражений. На смену Q позднее пришёл язык Pure.
Q# — самый современный язык на эту букву. Это свободно распространяемый компанией Microsoft язык для создания квантовых алгоритмов.
R
R — стильно, модно, современно. Это популярный язык для анализа данных, главный конкурент Python в этой сфере. Начинал свою карьеру как проект Оклендского университета для внутреннего использования, но выскочил в большой мир и многим понравился. Вот здесь можно прочитать о нём подробнее.
S
S — статистический (созданный для применения в статистике) язык программирования, разработанный сотрудниками Bell Labs. Девиз S, по словам его авторов, — «Быстро и добросовестно превращать идеи в программы».
Язык больше не развивается и не используется, зато жива и отлично себя чувствует его новая продвинутая реализация — тот самый уже знакомый нам R.
T
T — это диалект языка Scheme, а Scheme — диалект Lisp. T был создан в качестве эксперимента — сотрудники Йельского университета хотели убедиться, что Scheme можно использовать как основу для разработки языка программирования, который будет работать эффективнее своего родственника Lisp.
Возможно, у них даже получилось, и для своего времени (восьмидесятые годы прошлого века) T был хорош. Но современным языкам он уже не конкурент — последний релиз языка вышел почти 40 лет назад.
U
Язык U создал американский программист Роб Апкрафт. Как пишет Роб, он когда-то стал настолько одержим операционными системами, что решил написать собственную. Он где-то прочитал, что для такой задачи нужно изучать ассемблер, и даже попытался это сделать, но язык показался ему очень трудным, а сам Роб называет себя очень ленивым.
В итоге он написал собственный низкоуровневый язык программирования, чтобы разрабатывать на нём операционную систему. При желании вы можете помочь Апкрафту в улучшении U, он не против.
V
V — ещё один персональный, но крайне амбициозный проект нидерландского разработчика русского происхождения Александра Медведникова.
Автор называет V улучшенной версией языка Go и утверждает, что язык такой же быстрый, как C, и разумно использует память. При этом он безопасный, а выучить синтаксис можно меньше чем за час. Это универсальный язык, который подходит для создания игр, веб-разработки и даже системного программирования.
W
Этот язык появился на свет благодаря двум стареньким карманным компьютерам HP. Они так понравились Виктору Тоту, программисту и архитектору, что он захотел написать для них программы.
По разным причинам существующие языки не подходили или были неудобны, тогда Виктор решил поступить «как настоящий программист» и написать свой язык. Так и появился W.
W — очень простой язык, код его компилятора умещается на одном листе бумаги. А ещё он похож на C, только без ключевых слов и типов.
X
Должна признаться, во вступлении я вас обманула — не все буквы заняты, X свободна. Найти язык, который называется просто X, мне не удалось, но если добавить один-два символа, то будет о чём рассказать.
X# — самый молодой в семействе языков для платформы .NET. Авторы позиционируют его как C# с синтаксисом xBase.
X++ — это часть платформы разработки Microsoft MorphX, которая используется для построения систем бухгалтерского учёта и управления бизнесом. Это объектно-ориентированный язык, похожий на C#. Его особенности — сборщик мусора и поддержка SQL-запросов.
Y
На эту букву есть один старый и один новый, один серьёзный и один эзотерический язык, но оба никем не используются.
Y — создан в восьмидесятых Департаментом компьютерных наук Университета Аризоны. Остался в истории как простой язык общего назначения, что-то среднее между языками Ratfor и C, по синтаксису близок к C.
Y — эзотерический язык, один из многих придуманный заядлым разработчиком языков Конором О’Брайеном.
Z
Последний язык в нашей подборке, Z, пользователи Reddit охарактеризовали так:
«Основная идея кажется умной, но не слишком умной».
По словам автора, Криса Дона, это простой язык со своеобразным синтаксисом, вдохновлённым языком разметки Markdown и языком программирования Lisp.
Основа языка — так называемые Z-выражения вида «название аргументы». Скобки и другие разделители не используются, а если нужно передать несколько аргументов, они просто переносятся каждый на свою строку и пишутся друг под другом.
Не все «однобуквенные» языки такие игрушечные, как Z или Y. Например, на наших курсах можно выучить легендарный C++ или C# и создавать сложные приложения, сервисы, игры. А если вам больше интересен анализ данных, пригодится курс по языку R.
Хотя знаете — не ограничивайтесь только языками с короткими названиями. В разделе курсов по программированию ещё много языков, освоив которые вы точно станете востребованным разработчиком. Кстати, и с поиском работы тоже поможем.