Редкие языки программирования: зачем они нужны и что на них пишут
Современные разработчики все чаще обращаются к редким языкам программирования, чтобы решить специфические задачи проекта. Разбираемся, как и когда их нужно использовать.
13К открытий58К показов
Сейчас самые популярные языки программирования — JavaScript (с ним работают 25,2 млн разработчиков), Python (18,2 млн) и Java (17,7 млн). Но иногда проект требует специфичного кода, который невозможно написать с помощью топа популярных технологий. Ниже — подборка редких языков программирования, о которых многие девелоперы даже не слышали, но которые могут дать большой буст разработке.
COBOL
COBOL (Common Business Oriented Language) появился в 1959 году благодаря Грейс Хоппер (ее еще называют «бабушкой Кобола»). Изначально он был императивным и процедурным, а с 2002 года стал объектно-ориентированным. Распространился он по инициативе Минобороны США, а затем стал широко использоваться в финансовых вычислениях.
«Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление» — Эдсгер Дейкстра
В какой-то степени Дейкстра прав — у Кобола действительно сложный и громоздкий синтаксис в отличие от менее «многословных» языков. Тем не менее он крут в задачах, с которыми не справляются другие технологии. Дело в том, что Кобол проводит десятичные вычисления не с плавающей, а с фиксированной точкой — не нужны сложные правила округления, как, например, на Java, и операции производятся быстрее. К тому же код будет одинаково работать на 8-битной и 64-битной архитектурах, поскольку COBOL может хранить переменные разных типов вне зависимости от компилятора и архитектуры системы.
Именно поэтому Кобол незаменим в денежных операциях. В США язык используют банки и система здравоохранения — транзакции через терминалы, торговля на бирже и зарплаты врачам проходят именно через него.
Вот пример «простенького» кода:
Не спорим, выглядит не так элегантно, как Python, но зато все деньги и суммы будут подсчитаны верно, поскольку округлением чисел занимается не процессор и арифметико-логическое устройство, а человек.
Lua
Lua — это скриптовый язык программирования с исходным кодом на C. Ближе всего он к JavaScript с такой же прототипной моделью ООП, но LUA более мощный и гибкий. Массивы, структуры, множества и остальные составные пользовательские типы данных реализуются с помощью таблиц, а механизмы ООП — через метатаблицы.
Изначально язык разрабатывался для промышленности, скорее, для конкретной нефтяной компании Petrobras. Сейчас же его используют для разработки массового ПО, например, для графического интерфейса Adobe Lightroom, и игр. Так, с помощью Луа можно легко закодить поведение NPC (Non-playable characters) и других персонажей, под которых не придётся переписывать движок. Среди таких игр — Garry’s Mod, Roblox, Stalker и даже World of Warcraft.
Вот пример кода из «Сталкера»:
Кстати, потренировать свои навыки Lua можно в игре Retro Gadgets. Рассказывали о ней в нашей статье.
F#
F Sharp — мультипарадигмальный язык, который поддерживает не только процедурное и объектно-ориентированное программирование, но еще и функциональное. Его разработали в Microsoft Research, а затем компания интегрировала среду разработки F# в Visual Studio 2010 и последующие версии.
У F Sharp лаконичный код с выводом типов. Он ориентирован на данные, параллельный ввод-вывод, параллельные вычисление и часто используется в научных исследованиях, анализе данных, машинном обучении и веб-разработке. К тому же он интегрируется с .NET платформами.
Язык действительно редкий и непопулярный, а специалистов, знающих его, в 100 раз меньше, чем С#-разработчиков. Однако в некоторых специфических задачах, связанных с Big Data и ML, «фаршик» может быть крайне полезен.
Вот пример кода:
R
Еще один язык для подсчета цифр и чисел — R был создан специально для статистического анализа данных. В общем, очередное машинное обучение и Big Data. Он появился в Оклендском университете взамен платному и недоступному большинству разработчиков языку S.
Сейчас популярность R начинает расти, и им пользуются многие крупные компании, например, Amazon, Deloitte, Accenture, Google и другие. Тем не менее синтаксис не похож на другие языки — это в первую очередь статистическая технология, поэтому начинающим разработчикам разобраться в нем будет непросто. Среди функций — объединение данных из таблиц, создание интерактивных графиков, статистическое тестирование. Кстати, на R можно написать и веб-приложение с помощью библиотеки Shiny.
Вот пример кода, который делает из двоичного кода десятичный:
Clojure
Clojure — это современный, динамичный и функциональный «диалект» языка Lisp на платформе Java. Появился в 2007 году благодаря Ричу Хики. Разработан как язык общего назначения — он сочетает доступность и интерактивную разработку языка сценариев с надежной инфраструктурой для многопоточного программирования. Clojure известен своей интерактивной средой REPL и мощной поддержкой параллельного программирования.
Одна из ключевых характеристик языка — функциональность, а это значит, что в нем особое внимание уделяется применению функций и неизменности данных. Он также предоставляет доступ к Java-фреймворкам и может компилироваться как с байт-кодом Java, так и с JavaScript — это полезно и для серверной, и для клиентской разработки.
Clojure используют в крупных банках, например, в Raiffeisen, а также в Netflix, Amazon, Apple и других гигантах. Так, в Apple с помощью него собирают данные и статистику.
Вот, например, код Hello, world на Conjure:
Haskell
Еще один чистый функциональный язык программирования. Среди особенностей — строгая типизация, почему он и назван в честь Хаскелла Карри, исследователя теории типов и создателя комбинаторной логики. Также язык поддерживает отложенные вычисления.
Haskell отличается не только простым и элегантным синтаксисом, но и быстротой и производительностью. Он применяется в инвестиционном банкинге, а также для создания системных продуктов и ПО. Разумеется, его тоже используют в крупных компаниях: в Meta*, IBM, Twitter, Bank of America и других. Например, Facebook* борется с помощью Haskell со спамом.
Очередной Hello World, только на Haskell:
Да, это все. putStrLn можно заменить на print.
Elixir
Тоже язык программирования общего назначения, который использует динамическую типизацию данных и функциональную парадигму. Elixir использует виртуальную машину Erlang, известную своей способностью запускать распределенные и отказоустойчивые системы с низкой задержкой.
Среди особенностей — возможность метапрограммирования, которые позволяют разработчикам писать код, который сам пишет код, и поддержка параллельного программирования. Elixir также предоставляет мощные встроенные инструменты для тестирования и отладки программного обеспечения.
Язык широко используется в веб-разработке, особенно в среде Phoenix Framework, а также при создании распределенных и отказоустойчивых систем, благодаря базовой платформе Erlang/OTP. Для разработчиков, не знакомых с парадигмами функционального программирования, освоить будет не так просто, зато какие преимущества — эффективность, масштабируемость и надежность приложений.
Вот код, который продублирует строки множество раз:
На самом деле, нишевых и редких языков программирования очень много. И даже опытные разработчики могли никогда о них не слышать. Зато такие языки помогают решать специфические задачи, когда популярные решения бессильны.
Делитесь в комментариях, на каких редких языках ходили и как вам это помогло в разработке проекта.
*Компания Meta признана экстремистской и запрещена на территории РФ
13К открытий58К показов