Ruby-agtigt Crystal-sprog debuterer i version 1.0

4 kommentarer.  Hop til debatten
Ruby-agtigt Crystal-sprog debuterer i version 1.0
Illustration: Bigstock/Wladimir.B.
Hurtig afvikling med statiske typer er blandt sprogets mål.
26. marts 2021 kl. 09:55
errorÆldre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Sproget Crystal har debuteret i version 1.0. Ifølge projektet bag er Crystals syntaks stærkt inspireret af Ruby, så det føles naturligt at læse og let at skrive, og har en lav indlæringskurve for erfarne Ruby-udviklere.

Et eksempel kan se sådan ud:

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

Crystal har som mål at have en syntaks, som minder om Rubys, dog uden decideret kompatibilitet. Dertil byder sproget på statiske typer med typeinferens, samt mulighed for at kalde C-kode fra sproget, og med evnen til at genere effektiv maskinkode.

I en meddelelse angående version 1.0 skriver udviklerne bag sproget:

Artiklen fortsætter efter annoncen

»Sprog-stabilitet er sandsynligvis en af de mest fremtrædende og forventede grunde til endeligt at have Crystal 1.0. Vi modtog adskillige kommentarer fra folk, der var villige til at bruge sproget i produktion i alle disse år, men først efter at vi kunne give et løfte om ikke at knække det fra den ene dag til den næste.«

De forsætter:

»Efter denne udgivelse kan alle forvente, at din kode - i det mindste for enhver fremtidig 1.x-version - stadig kan kompilere og fungere uden nogen væsentlig inkompatibilitet. Sprog og faciliteter i standardbiblioteker fjernes eller ændres ikke på nogen måde, der kan forhindre eksisterende kode i at kompilere og virke. Det indbyggede standardbibliotek vil fortsat blive udvidet, men altid med bagudkompatibilitet i tankerne.«

4 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
4
29. marts 2021 kl. 14:53

F.eks. bliver en funktion først type-chekket hvis den bliver kaldt.

Ja, det kan jeg ved Gud heller ikke se det smarte i...!

2
29. marts 2021 kl. 00:36

Hvorfor er det nødvendigt at opfinde overhovedet? Hvorfor lever vi ikke i junglen som aber?

Crystal har nogle interessante egenskaber, og det kan være nyttigt at se hvor godt de virker i praksis. F.eks. bliver en funktion først type-chekket hvis den bliver kaldt. Dette er ikke kutymen i statisk typiserede sprog.

1
28. marts 2021 kl. 17:07

Hvorfor er det nødvendigt at blive ved med at opfinde / udvikle nye sprog ? Alle de problemer som kommer med f. eks sikkerhed, mulige vulnerabilities som bliver fundet hen af vejen. En løsning på de mange sikkerhedsbrister som bliver fundet var måske at have færre, godkendte sprog på samme måde som man i HW verdenen ikke bruger alle mulige tilfældige Kina-stumper, men kun komponenter som er UL eller UR mærket, hvis man er seriøs og laver et produkt som skal kunne godkendes sikkerhedsmæssigt.