Язык программирования Crystal

Язык программирования Crystal: описание, возможности и история

Crystal – это достаточно новый объектно-ориентированный язык программирования, который был разработан в 2014 году. В 2021 вышло его первое обновление до версии 1.1.1. Он относится к категории языков общего назначения. По своему синтаксису похож на Ruby, но при этом является статически типизированным, компилируемым и работающим с выводом типов. Разработчики утверждают, что по скорости работы он ничем не уступает C. Над усовершенствованием и оптимизацией языка работают около трех сотен программистов. Распространяется Кристалл бесплатно по лицензии Apache 2.0.

Содержание:

  1. О языке Crystal
  2. История создания
  3. Примеры и синтаксис языка

О языке Crystal

Главная особенность заключается в том, что он имеет статическую типизацию. Это значительно расширяет его возможности и упрощает работу. То есть если при написании программы вы допустите ошибки, связанные с несоответствием типов переменных, то компилятор обнаружит их на стадии обработки кода, а не при последующем выполнении интерпретатором.

Хорошим бонусом станет то, что программисту не нужно указывать аргументы для методов или типы переменных. Компилятор умеет определять и выводить их самостоятельно, при помощи разработанного алгоритма. Также в Crystal решена проблема с управлением памятью. Для этого был внедрен Boehm GC – популярный сборщик мусора. Кристалл поддерживает дженерики и макросы, умеет работать с перегрузкой операторов и методов, что делает его достаточно универсальным.

Обратите внимание: данный язык реализует многопоточность, не привязываясь к средствам операционной системы. В нем реализована система fibers (волокна), которая может работать друг с другом через каналы и использовать доступ к общей памяти.

О языке Crystal

Также язык имеет специальный интерфейс, через который можно вызывать функции из С-библиотек. Можно даже создавать специальные библиотеки-обертки, чтобы не создавать программный код заново. По умолчанию в Crystal имеется полный набор типичных функций. К примеру, JSON, YAML, CSV и пр. В нем присутствует поддержка WebSocket, а также все необходимое для создание полноценного HTTP-сервера.

Интересный факт: Для того, чтобы запустить веб-интерфейс, достаточно ввести команду crystal play. После этого вы сможете запускать интерактивный код и смотреть, что он выдает.

История создания

Разработка данного языка была начата в 2011 году. Ею занималась свежесозданная компания Manas. Программисты, работающие в этой команде, решили создать продуктивный, элегантный язык, похожий на Ruby, который бы быстро работал и обеспечивал эффективность типов. На данный момент Crystal не входит в рейтинги топ-языков, но он достаточно перспективный, прост в освоении и показывает хорошие результаты.

Изначально он носил название Joy, однако позже компания решила выполнить переименование. Релиз состоялся в 2014 году. В 2016 его внесли в индекс TIOBE, а в 2021 вышла стабильная версия, которая используется и сегодня. Спонсором Crystal является известная американская компания Nikola, разрабатывающая электроавтомобили, а также 84 codes, которая занимается облачными сервисами.

История создания языка Crystal

Примеры и синтаксис языка

Популярная фраза "hello world", написанная на Кристалле, выглядит следующим образом:

puts "Hello world!"

То есть вам не нужно прописывать главную функцию или определять ее. Достаточно просто ввести данный код, и вы получите результат. Для создания сервера следует ввести:

require "new server"

server = HTTP::Server.new(8080) do |context|

context.response.content_type = "text/plain"

context.response.print "Hello world! The time is #{Time.now}"

end

puts "Listening on http://0.0.0.0:8080"

server.listen

Писать код нужно в кодировке UTF-8. Локальные переменные начинаются с букв в нижнем регистре и объявляются при присваивании им значений. Например:

name = "Alex"

age = 30

Глобальные начинаются со значка $, например, $year = 2021. Детальнее с семантикой и синтаксисом можно познакомиться на официальном сайте crystal-lang.org.

Внимание: Для комментирования нужно поставить значок #. Комментарии в Crystal однострочные, поэтому постарайтесь сформулировать все нужное покороче.