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

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

На первый взгляд это может показаться абсурдным. Зачем придумывать совершенно новый язык? Ответ на этот вопрос довольно простой: программисты люди творческие и нуждаются в том, чтобы что-то создавать, расширять горизонты и исследовать — и один из таких языков может быть как раз тем, что «доктор прописал».

Азбука Морзе: больше не только для киберпреступников

Этот язык программирования разработали не из лучших побуждений. Тот, кто создал его, почти наверняка хотел украсть вашу личную информацию и, возможно, даже взломать ваш банковский счет, чтобы забрать все, что вы заработали. Но в системе, которая кодирует инструкции в точках и тире, есть нечто от стимпанка. В конце концов точки и тире превращаются в обычные символы для компиляции. То же самое сделал бы любой обычный подстановочный шифр, к тому же Азбука Морзе — это не совсем новый язык, в лучшем случае это новый набор символов. Но может ли любой другой язык наполнить ваш разум ностальгией по фильмам о подводных лодках Второй мировой войны и по временам, которые произошли задолго до североамериканской Гражданской войны, когда Сэмюэль Морзе придумывал правильное сообщение, чтобы показать, что можно сделать с проводом, который он натянул между Балтимором и Вашингтоном? И Морзе придумал: «Вот что творит Бог».

Пуститесь в путешествие со ScummVM

Многие классические приключенческие игры были написаны на специфическом, оптимизированном для игрового процесса языке, который включает в себя переход через последовательность узлов с описаниями и случайными объектами. На протяжении многих лет было создано несколько языков для поддержки адвенчур, и LucasFilms назвала свою версию Script Creation Utility for Maniac Mansion, или сокращенно Scumm.

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

Scumm — не единственный доступный язык создания сценариев для адвенчур. Есть фреймворк Gamefic, основанный на Ruby, и находящийся в активной разработке, а Adventure Game Studio — это основанный на Windows инструмент с редактором перетаскивания для добавления графики и анимированных спрайтов. Поклонники BBC Basic могут обратиться к Adventure Language и JSBeeb для написания и запуска игр в браузере.

База данных Shsql: для любителей командной строки

Многие пользователи предпочитают, чтобы их базы данных работали с красивыми графическими интерфейсами, что позволяет просматривать данные с наибольшим комфортом. Но людям, создавшим Shsql, не нужны красивые картинки, симпатичные кликабельные иконки или трансформирующиеся макеты. Им нравится командная строка, и они хотят иметь возможность создавать, обновлять или удалять данные из оболочки. Shsql — это структурированный язык запросов (SQL), но он интегрирован c операционной системой и может сохранять данные из командной строки.

«F» — это не только Fortran

В 1960-х язык Fortran был доминирующим, и в нем все время появлялись новые возможности. Люди шутили, что неизвестно, каким будет программирование в будущем, но оно точно будет называться фортраном. В чем-то они были правы. Язык F дает любителям Fortran возможность использовать их любимые структуры данных, научный подход и стили кодирования. Он обратно совместим с Fortran 77, так что вы можете ссылаться на свой старый код, даже если он хранится в виде пыльной колоды перфокарт. Примечание: не путайте F с F#, функциональным языком, разработанным для мира .NET, где также популярен C#.

MUMPS — это нечто большее, чем просто медицинские записи

Язык MUMPS родился в 1960-х, когда в медицинских кругах впервые заговорили об электронных медицинских записях. Под термином MUMPS понималась Massachusetts General Hospital Utility Multi-Programming System (Массачусетская универсальная система мультипрограммирования больничных комплексов). Этот термин просуществовал до 1992 г., когда кое-кто попытался конкурировать с новоиспеченным Cи, дав новшеству однобуквенное имя «M».

Разработчики опережали время, потому что понимали ценность создания надежного ACID-средства (атомного, последовательного, независимого и долговечного) поддержки транзакций для отслеживания медицинских записей. Сегодня группа пользователей М отмечает, что М одним из первых предложил «нереляционную» (или «NoSQL») СУБД, концептуально похожую на Amazon SimpleDB и Google BigTable, но обладающую преимуществом гораздо более длинного, проверенного временем пути к успеху. Это пример старого, но все еще опережающего свое время.

Sweave: когда вам нужны два языка в одном

Sweave — это не просто один язык, а смесь из двух — подобно собачьим породам-метисам лабрадудль или кокапу. Sweave-файл содержит смесь кода R для анализа данных и кода LaTeX для их представления. Вы можете набрать читаемый человеком текст, а затем с помощью всего лишь нескольких escape-символов переключиться на написание софта. Сигнал «<>>=» запускает блок машиночитаемого R-кода, а конечный символ — простой знак «at» (@).

Задумка Sweave заключается в метапрограммировании, когда код R выдает макросы LaTeX, которые затем выполняются для создания нового кода R. Чтобы получить дополнительные возможности, включая смешивание в Rmarkdown, искушенные пользователи изучают механизм для создания динамических отчетов knitr. Rmarkdown — это способ использовать классический формат разметки вместо LaTeX-кода для набора текста. Его стартовый тег — тройная обратная кавычка. Каким-то образом в конце получается PDF-файл, который часто довольно просто прочитать.

Coq: когда вам нужно играть по правилам

Теоретики разработки ПО любят говорить, что программа — это математическое доказательство, а хорошее математическое доказательство — это все та же программа. Coq — это язык, на котором математики пишут строгие логические доказательства, но это также не сильно отличается от разработки ПО. Язык позволяет задавать определения и затем объединять их в алгоритмы и теоремы. Работа компилятора заключается не в том, чтобы превратить доказательство в исполняемый код, а в том, чтобы убедиться, что оно подчиняется всем правилам. Математики прибегают к Coq, чтобы убедиться в надежности доказательств. Программистам, которым необходимо реализовать математически сложные алгоритмы, он позволяет удостовериться в надежности подхода.

Создайте новый язык с помощью Racket

Когда финансовых директоров просят оплатить счета, выставленные их CIO, они могут бормотать себе под нос, что «разработка ПО похожа на вымогательство (racket)». Вероятно, происхождение названия языка метапрограммирования Racket не имеет с этим ничего общего, но, несомненно, вызовет усмешку циников. Это более новая версия сверхгибкого языка LISP, и одной из его основных целей является создание новых языков. Язык оптимизирован для создания парсеров, токенов и генераторов вывода, необходимых для создания специализированных языков.

Некоторые люди для обозначения языков, созданных для решения конкретных, узких задач, используют термин «предметно-ориентированные языки». К ним, в частности, относятся brag — язык для создания определенного типа синтаксического анализатора; Anatomy помогает воссоздать анатомическую картину костной структуры; bookcover — язык для любого, кто публикует книгу и нуждается в логически структурированной обложке. А Мэтью Баттерик, автор пособия «Beautiful Racket: An introduction to language-oriented programming using Racket», создал текстовый язык Pollen, который предназначен для сбора макросов и команд набора текста для структурирования книг.