Crystal — об'єктно-орієнтована мова програмування загального призначення. Crystal вимагає наперед визначення типу змінних ще на стадії опису програми. Має схожий з мовою Ruby синтаксис.
Історія Робота над новою мовою програмування була розпочата в червні 2011 року в компанії Manas.
Перші версії компілятора були написані на Ruby. Проте в 2013 році компілятор був цілком написаний на самому Crystal.
В липні 2014 року презентовано перший офіційний реліз мови програмування.
Мета розробників — створити мову таку ж ефективну на стадії проєктування, як і Ruby, але більш ефективну на стадії виконання. Станом на 2016 рік деякі тести показували прискорення у порівнянні з Ruby до 40 разів, а деякі, навпаки, гальмування.
На поточний час мова активно еволюціює.
Приклади Hello World Класична програма Hello World на Crystal: puts "Hello World!"
Або із застосування об'єктно-орієнтованого стилю:
class Greeter def initialize(@name : String) end
def salute puts "Hello #{@name}!" end end
g = Greeter.new("world") g.salute
HTTP сервер Приклад опису простого Вебсервера: require "http/server"
server = HTTP::Server.new 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(8080)
TCP echo сервер Простий сервер відголосу — сервіс, що повторює те що отримав. Як звіичайний відголос.
require "socket"
def handle_client(client) message = client.gets client.puts message end
server = TCPServer.new("localhost", 1234) while client = server.accept? spawn handle_client(client) end
Примітки