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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Crystal
Crystal language logo.svg
Класс языка мультипарадигмальный: объектно-ориентированный
Появился в 2012
Автор Ary Borenszweig
Расширение файлов .cr
Выпуск
Система типов Статическая
Испытал влияние Ruby, Go
Лицензия Apache License 2.0
Платформа IA-32 (i386), x86-64
ОС Linux, macOS (Homebrew) [2]
Сайт crystal-lang.org

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

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

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

Примеры[править | править код]

Hello, world![править | править код]

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

puts "Hello World!"

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

class Greeter
  def initialize(@name)
  end

  def salute
    "Hello #{@name}!"
  end
end
g = Greeter.new("world")
puts 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. Release 0.24.1 — 2017.
  2. [1]
  3. crystal-lang/crystal. GitHub. Проверено 18 февраля 2016.
  4. Crystal. crystal-lang.org. Проверено 18 февраля 2016.
  5. Why Crystal programming language? | Motion Express | Ruby, Rails, Crystal & developers' techniques. motion-express.com. Проверено 18 февраля 2016.
  6. Crystal. crystal-lang.org. Проверено 18 февраля 2016.
  7. kostya/benchmarks. GitHub. Проверено 18 февраля 2016.
  8. kostya/crystal-benchmarks-game. GitHub. Проверено 18 февраля 2016.
  9. smarr/are-we-fast-yet. GitHub. Проверено 18 февраля 2016.

[1]

  1. Релиз 0.25 (англ.). GitHub. Проверено 16 июня 2018.