Crystal (linguaggio di programmazione)

Crystal è un linguaggio di programmazione orientato agli oggetti progettato e sviluppato da Ary Borenszweig e Juan Wajnerman, nonché da oltre cento collaboratori elencati. Crystal è sviluppato open-source con licenza Apache 2.0 e la sua sintassi è ispirata a Ruby . Il tipo di variabili e argomenti viene verificato staticamente senza che sia necessario specificarlo nel codice.

Storico

Il lavoro sul linguaggio è iniziato nel giugno 2011, con l'obiettivo di creare un linguaggio con l'eleganza e la produttività di Ruby e la velocità, l'efficienza e la sicurezza della digitazione statica di un linguaggio compilato. Originariamente chiamato Joy , il progetto è stato rapidamente ribattezzato Crystal .

Il compilatore Crystal è stato scritto per la prima volta in Ruby, ma è stato riscritto in seguito in Crystal diventando un linguaggio self-hosted nel 2013. La prima versione ufficiale è stata rilasciata nel giugno 2014. E nel luglio 2016, Crystal si unisce all'indice TIOBE .

Descrizione

Sebbene assomigli al linguaggio Ruby nella sua sintassi, Crystal compila un codice nativo molto più efficiente utilizzando un backend LLVM . Il prezzo da pagare per questo è il divieto di utilizzare gli aspetti dinamici di Ruby. Recenti test sulle prestazioni hanno dimostrato che Crystal ha prestazioni sostanzialmente simili a quelle di C per un'ampia gamma di attività di calcolo. Il linguaggio ha automatizzato la raccolta dei rifiuti e attualmente offre un raccoglitore Boehm . Crystal ha un sistema macro, supporta la genericità e il sovraccarico degli operatori.

Esempi

Bonjour Monde

Ecco il modo più semplice per scrivere un "Hello World" in Crystal:

puts "Hello World!"

O utilizzando uno stile di programmazione orientato agli oggetti :

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

Server HTTP

# A very basic HTTP server require "http/server" server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world, got #{context.request.path}!" end puts "Listening on http://127.0.0.1:8080" server.listen(8080)

Riferimenti

  1. Codice sorgente Crystal
  2. (en-US) María Inti David , “  La storia dietro #CrystalLang  ” , Manas Technology Solutions ,1 ° aprile 2016( leggi online , consultato l' 11 ottobre 2018 )
  3. “  Perché il linguaggio di programmazione Crystal? | Motion Express | Ruby, Rails, Golang & DevOps  " , su motion-express.com (accesso 11 ottobre 2018 )
  4. Arrivederci Ruby giovedì
  5. Perché il linguaggio di programmazione Crystal?
  6. Rilasciato Crystal 0.1.0!
  7. (in) Ramon Wartala, "  Crystal - A Ruby programing language-esque  " , Linux Magazine,2016(visitato il 16 marzo 2016 )
  8. Alcuni benchmark di diverse lingue
  9. Implementazioni Crystal per The Computer Language Benchmarks Game
  10. Siamo ancora veloci?

link esterno