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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Crystal
220x80px
Класс языка

язык программирования и объектно-ориентированный язык программирования

Появился в

2014

Автор

Ary Borenszweig

Расширение файлов

.cr

Испытал влияние

Ruby

Лицензия

лицензия Apache

ОС

macOS, Linux и FreeBSD

Сайт

crystal-lang.org

Crystal — это объектно-ориентированный язык общего назначения, спроектированный и созданный Ary Borenszweig и Juan Wajnerman.[1] Crystal статически типизирован и имеет Ruby-подобный синтаксис. Первый официальный релиз языка произошел в июне 2014 года.[2][3] Изначально компилятор языка был написан на Ruby, пока в 2013 году не был переписан на Crystal.[4] Язык находится в активной разработке.

Описание[править | править вики-текст]

Несмотря на схожесть синтаксиса, Crystal намного эффективнее, чем Ruby, компилируется в машинный код, используя LLVM, жертвуя при этом динамическими аспектами языка. По результатам тестов Crystal показывает схожую с языком С производительность.[5][6][7] Язык использует Boehm garbage collector, обладает системой макросов, поддерживает дженерики, а также перегрузку методов и операторов.

Примеры[править | править вики-текст]

Hello, world![править | править вики-текст]

Простейший вариант написания:

puts "Hello World!"

В объектно-ориентированном стиле:

class Greeter
  def initialize(name)
    @name = name.capitalize
  end
  def salute
    puts "Hello #{@name}!"
  end
end
g = Greeter.new("world")
g.salute

HTTP Server[править | править вики-текст]

require "http/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

Ссылки[править | править вики-текст]

  1. crystal-lang/crystal. GitHub. Проверено 18 февраля 2016.
  2. Crystal. crystal-lang.org. Проверено 18 февраля 2016.
  3. Why Crystal programming language? | Motion Express | Ruby, Rails, Crystal & developers' techniques. motion-express.com. Проверено 18 февраля 2016.
  4. Crystal. crystal-lang.org. Проверено 18 февраля 2016.
  5. kostya/benchmarks. GitHub. Проверено 18 февраля 2016.
  6. kostya/crystal-benchmarks-game. GitHub. Проверено 18 февраля 2016.
  7. smarr/are-we-fast-yet. GitHub. Проверено 18 февраля 2016.