Лилипонд, Меркурий и др.

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

Некоторые языки выдержали испытание временем. Java, C++, Python, JavaScript и несколько других прошли через поколения обновлений и улучшений, чтобы стать монолитными языками с огромными сообществами поддержки.

А как насчет тех, кто упустил всю эту популярность?

Как насчет небольших языков с преданными участниками, создающими что-то уникальное?

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

1. Меркурий

Mercury – ​​это функциональный, статический и строго типизированный язык, зародившийся в 1995 году в Австралии. Этот язык похож на Prolog и Haskell, но кажется более строгим в отношении таких элементов, как побочные эффекты.

Mercury также утверждает, что он невероятно быстр и эффективен:

«Mercury — это язык программирования чистой логики, предназначенный для создания больших, быстрых и надежных программ».

Официальный сайт Меркурия

Документация Mercury перечисляет несколько преимуществ этого интересного языка:

  • "Mercury является чисто декларативным: предикаты и функции в Mercury не имеют нелогических побочных эффектов".
  • «Меркурий — строго типизированный язык».
  • «Меркурий — язык строгого модерирования».
  • "У Mercury сильная система детерминизма".
  • «Меркурий имеет модульную систему».
  • «Mercury поддерживает программирование более высокого порядка с замыканиями, каррированием и лямбда-выражениями».
  • «Mercury очень эффективен».

Mercury — очень самоуверенный язык (как и Haskell) и довольно строгий. Однако эта жесткость является платой за скорость, эффективность и точность. Если вы создаете большое приложение и вам требуется высокая скорость и точность, то Mercury может быть хорошим вариантом.

Посетите официальный Mercury GitHub для более подробной информации.

2. Белка

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

Язык Squirrel черпает вдохновение из C, C++, Java, Python и Lua. Довольно мощное сочетание языков. Как только вы посмотрите на код, вы поймете, как это вдохновение объединяется: http://squirrel-lang.org/#look.

Синтаксис напоминает C, но с гибкостью Python.

Некоторые из этих популярных видеоигр Valve использовали Squirrel в основном из-за реализации VScript:

  • Left 4 Dead 2
  • Апекс Легенды
  • Портал 2

3. Вала

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

Синтаксис Vala (который в конечном итоге компилируется в C) удивительно прост и не содержит многих шаблонных требований, присущих традиционному языку, такому как C:

void main () {
	print ("hello\n");
}

Vala также является отличным вариантом, если вы создаете приложения GTK. На официальном веб-сайте GTK есть отличный пример проекта для начала работы, который показывает, насколько просто использовать Vala с GTK.

Vala, кажется, имеет сильный уровень поддержки сообщества и по-прежнему выпускает регулярные релизы. Ознакомьтесь с официальной документацией Vala для получения подробной информации об использовании и посетите субреддит Vala, чтобы принять участие в сообществе.

4. Балерина

Это чрезвычайно интересный язык, ориентированный на облачные приложения. Хотя он не очень старый (первоначально разработанный в 2015 году и анонсированный в 2017 году), он настолько актуален и важен сейчас, что его шокирует то, что раньше этого не существовало. Язык стремится сделать создание и обслуживание облачных приложений простым и быстрым.

В традиционных языках, таких как Java или Python, сетевые компоненты и компоненты службы приложений должны быть извлечены и созданы практически с нуля (за исключением использования других сторонних библиотек). В Ballerina эти внешние компоненты стали частью самого языка.

Создание HTTP-серверов и параллельных приложений теперь является неотъемлемой частью дизайна.

В приведенном ниже примере (указан на официальном веб-сайте Ballerina) показано, насколько удивительно лаконичным является создание простого REST API:

import ballerina/http;

listener http:Listener httpListener = new (8080);

service / on httpListener {
    resource function get greeting() returns string { 
        return "Hello, World!"; 
    }

    resource function get greeting/[string name]() returns string { 
        return "Hello " + name; 
    }
}

Из-за молодости этого нового языка программирования неудивительно, что он регулярно выпускается и в конечном итоге получит еще более широкое распространение.

Зайдите на официальный GitHub Ballerina, чтобы начать.

5. Пруд с лилиями

Хотя это и не совсем самостоятельный язык программирования, язык конфигурации, подаваемый в приложение LilyPond, довольно забавен. Этот язык был создан для облегчения музыкального озвучивания самого высокого качества. Используя LilyPond, вы можете создавать музыкальные партитуры с помощью прилагаемого языка, похожего на TeX, который гораздо более эстетичен, чем другие стерильные приложения.

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

Официальный сайт LilyPond

На сам язык LilyPond немного сложно смотреть, но тот факт, что вы можете создать музыкальную партитуру, используя этот код, действительно здорово. Существует множество интеграций с LilyPond, и вы даже можете вставлять звуковые клипы созданной партитуры на страницы MediaWiki.

Ознакомьтесь с разбивкой по синтаксису языка доступно здесь.

Спасибо за чтение! Если вы хотите узнать о еще более интересных языках программирования, ознакомьтесь с: