Состоялся выпуск версии 0.6.0 языка программирования Crystal.
Язык программирования Crystal разрабатывается с такими целями:
- идентичный Ruby синтаксис, либо же максимально схожий с ним
- отсутствие необходимости указания типов переменных и аргументов методов
- вызов кода на Си с помощью биндингов, написанных на Crystal
- проверка и генерация кода во время компиляции
- компиляция в эффективный нативный код
Ответы авторов Crystal на вопрос «для чего это всё?»:
- нам нравится производительность при написании кода на Ruby
- нам нравится производительность при выполнении кода на Си
- мы хотим объединить лучшее из этих двух миров
- мы хотим, чтобы компилятор понимал, что мы имеем в виду без указания типов
- мы хотим полный ООП
- и да, мы не хотим писать код на Си только для того, чтобы он работал быстрее
Внешний вид:
# Compute prime numbers up to 100 with the Sieve of Eratosthenes
max = 100
sieve = Array.new(max + 1, true)
sieve[0] = false
sieve[1] = false
(2...max).each do |i|
if sieve[i]
(2 * i).step(max, i) do |j|
sieve[j] = false
end
end
end
sieve.each_with_index do |prime, number|
puts number if prime
end
Текущее состояние:
- язык в стадии pre-alpha, архитектура языка в активной разработке
- компилятор языка Crystal написан на языке Crystal
- используется традиционный Boehm-Demers-Weiser's сборщик мусора, что будет изменено в будущем
В версии 0.6.0, кроме исправления ошибок, следующие изменения:
- Function переименован в Proc
- Pointer и Tuple теперь подразумеваются компилятором как struct
- потоко-безопасные магические переменные
Для установки на GNU/Linux доступны пакеты для Debian, Ubuntu, RedHat и CentOS.
Для системы OS X доступна установка через homebrew.
Так же доступен универсальный бинарник, который можно просто скачать, запустить и пользоваться.
>>> Подробности