Crystal (programming language)

This is an old revision of this page, as edited by 70.50.41.126 (talk) at 17:09, 2 February 2016. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Crystal is a general-purpose, object-oriented programming language designed and developed by Ary Borenszweig and Juan Wajnerman and with over one hundred listed contributors.[1] Crystal is developed as open source and its syntax is inspired by Ruby. Crystal is statically type-checked but without having to specify the type of variables or method arguments. Its first official release was released in June 2014.[2][3] While the original Crystal compiler was written in Ruby, in 2013 a new compiler written using the Crystal programming language itself was released.[4] The current release version is 0.11.1 and the language is in an active development phase.

Description

Although resembling the Ruby programming language in syntax, Crystal compiles to native code and tries to be much more efficient, at the cost of disallowing certain dynamic aspects of Ruby. The language has automated garbage collection and currently offers a Boehm collector. Crystal possesses a macro system and supports generics.

Examples

This is the simplest way to write the Hello World program in Crystal:

puts "Hello World!"

Or using an object-oriented programming style:

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

References