Crystal er et objektorientert programmeringsspråk designet og utviklet av Ary Borenszweig og Juan Wajnerman, samt over hundre oppførte bidragsytere. Crystal er utviklet med åpen kildekode under Apache 2.0-lisensen, og syntaksen er inspirert av Ruby . Type variabler og argumenter blir sjekket statisk uten at det er nødvendig å spesifisere det i koden.
Arbeidet med språket begynte i juni 2011, med målet å skape et språk med Ruby's eleganse og produktivitet og hastigheten, effektiviteten og sikkerheten til statisk skriving av et kompilert språk. Opprinnelig kalt Joy , og prosjektet ble raskt omdøpt til Crystal .
Den kompilatoren Crystal ble først skrevet i Ruby, men ble omskrevet senere i Crystal bli et språk egen vert i 2013. Den første offisielle versjonen ble lansert i juni 2014. Og i juli 2016, Crystal tiltrer TIOBE indeksen .
Selv om det ser ut som Ruby-språket i sin syntaks, samler Crystal seg til mye mer effektiv innfødt kode ved hjelp av en LLVM- backend . Prisen å betale for dette er forbudet mot å bruke de dynamiske aspektene ved Ruby. Nylige ytelsestester har vist at Crystal presterer stort sett likt C for et bredt spekter av beregningsoppgaver. Språket har automatisert søppelinnsamling og tilbyr for øyeblikket en Boehm-samler . Crystal har et makro-system, støtter generisitet og overbelastning av operatører.
Her er den enkleste måten å skrive en "Hello World" i Crystal:
puts "Hello World!"Eller ved å bruke en objektorientert programmeringsstil :
class Greeter def initialize(name) @name = name.capitalize end def salute puts "Hello #{@name}!" end end g = Greeter.new("world") g.salute