Crystal

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: crystal-lang.org

Crystal — объектно-ориентированный язык программирования общего назначения, спроектированный и разработанный Арье Боренцвейгом, Хуаном Вайнерманом и Брайаном Кардиффом. Язык сочетает в себе элегантность и продуктивность Ruby с высокой производительностью компилируемых языков, таких как C. Crystal компилируется в машинный код с использованием LLVM и обладает статической типизацией с выводом типов, что позволяет избегать явного указания типов переменных и аргументов методов.

Работа над Crystal началась в июне 2011 года в компании Manas, и первоначально язык назывался Joy. Вскоре он был переименован в Crystal. Первый официальный выпуск состоялся в июне 2014 года. Компилятор языка был сначала написан на Ruby, а затем переписан на Crystal, став таким образом самоподдерживающимся с ноября 2013 года. Язык активно развивается и распространяется как свободное и открытое программное обеспечение под лицензией Apache 2.0.

  • Синтаксис, вдохновлённый Ruby: Crystal предлагает чистый и лаконичный синтаксис, схожий с Ruby, что облегчает освоение языка для разработчиков, знакомых с Ruby.
  • Статическая типизация с выводом типов: Типы переменных и аргументов методов определяются автоматически, что позволяет избежать явного указания типов и повышает безопасность кода.
  • Компиляция в машинный код: Crystal компилируется в эффективный нативный код с использованием LLVM, что обеспечивает высокую производительность.
  • Поддержка макросистемы: Язык обладает мощной системой макросов, позволяющей генерировать код на этапе компиляции и уменьшать количество повторяющегося кода.
  • Обобщённое программирование: Crystal поддерживает обобщённые типы, перегрузку методов и операторов, что позволяет создавать гибкие и переиспользуемые компоненты.
  • Интерфейс с C и C++: Язык предоставляет удобный механизм для вызова функций из двоичных библиотек на C и C++, что облегчает интеграцию с существующими библиотеками и системами.
  • Поддержка многозадачности: Crystal реализует модель конкуренции, вдохновлённую Go, с использованием лёгких нитей (fibers) и каналов для коммуникации между ними.
  • Автоматическая сборка мусора: Язык включает автоматическую сборку мусора с использованием сборщика Boehm, что упрощает управление памятью.
Подробнее