Programmeringsspråket Crystal 1.0 er tilgængeligt

Der blev udgivet version 1.0 af programmeringssproget Crystal. Udgivelsen markerede den første væsentlige version, der afsluttede 8 års arbejde og markerede stabiliseringen af sproget og dets beredskab til brug i erhvervsprojekter. I 1.x-grenen vil bagudkompatibilitet blive opretholdt, og der garanteres, at der ikke vil være ændringer i sproget og standardbiblioteket, der negativt påvirker kompileringen og driften af eksisterende kode.

Versionerne 1.0.y vil kun inkludere fejlrettelser, mens versionerne 1.x.0 vil tilbyde ny funktionalitet og væsentlige ændringer, samtidig med at de opretholder kompatibiliteten med koden. Nye ideer og potentielt inkompatible ændringer vil blive udviklet i en separat gren, som senere vil danne basis for udgivelsen af Crystal 2.0. Nogle funktioner i Crystal 1.0 er erklæret som præliminære, og på trods af deres tilstedeværelse i 1.0-grenen, er de ikke dækket af officiel support. Blandt disse funktioner er monothreading, kørslen på Windows-platformen og brugen på systemer med ARM-processorer.

Vi mindes, at udviklerne af Crystal forsøger at kombinere bekvemmeligheden ved udvikling på Ruby-sproget med den høje applikationsydelse, der kendetegner C-sproget. Synтакsisen i Crystal er tæt på Ruby, men der er ikke fuld kompatibilitet, selvom nogle ruby-programmer kan køre uden omarbejdning. Kompileringskoden er skrevet i Crystal og distribueres under Apache 2.0-licensen.

Sproget bruger statisk typekontrol, der er implementeret uden behov for eksplicit angivelse af variabeltyper og metodeargumenter i koden. Programmer skrevet i Crystal kompileres til eksekverbare filer med beregning af makroer og kodegenerering under kompileringen. I Crystal-programmer er det muligt at inkludere bindinger skrevet i C. Parallellen af koden opnås ved hjælp af nøgleordet „spawn“, som gør det muligt at starte en baggrundsopgave asynkront uden at blokere hovedtråden i form af letvægts-tråde, kaldet fibre (Fiber).

Standardbiblioteket tilbyder et omfattende sæt af standardfunktioner, herunder værktøjer til behandling af CSV, YAML og JSON, komponenter til oprettelse af HTTP-servere og support for WebSocket. Under udviklingen er det praktisk at bruge kommandoen "crystal play", som opretter et webinterface (som standard localhost:8080) til interaktiv kodeeksekvering i Crystal-sproget.

Vigtige ændringer:

  • I tupler er indexeret adgang til elementer af forskellige typer tilladt, da compileren har information om, hvilken type hvert element er. For eksempel: tuple = {1, "hello", 'x'} v = tuple[0..1] # vil give {1, "hello"} typeof(v) # => Tuple(Int32, String)
  • I streng- og tegnliteraler er brugen af surrogate-kortlægninger i Unicode escape-sekvenser, såsom "\uD834", forbudt. Til kodning af vilkårlige værdier bør notationen "\x" anvendes.
  • I standardbiblioteket er en stor mængde definitioner, makroer og metoder, der tidligere blev markeret som forældede, fjernet. Dette inkluderer metoder som Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill osv.
  • I getter- og property-makroer kræves det nu obligatorisk at angive returtypen.
  • Standardrundingsmetoden er ændret til TIES_EVEN ("bankørring", til den nærmeste heltal, og for grænsetilfælde til det nærmeste lige tal). Number#round har fået en parameter RoundingMode, som gør det muligt at vælge rundingsmetode. Blandt de tilgængelige metoder er: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • I samlinger er funktionaliteten for Enumerable#flat_map og Iterator#flat_map med elementer af blandede typer sikret.
  • Ved serialisering af sekvenser bruger Enum nu repræsentation i form af strenge med understregninger.
  • Typer defineret i XML-modulet er oversat fra brugen af struct til class.
  • Af sikkerhedsmæssige årsager er dekodningen af cookie-navne stoppet, ligesom kodningen og dekodningen af cookie-værdier (rekodning er overladt til frameworks og applikationer). Metoden HTTP::Cookies.from_headers er delt op i to varianter for servere og kunder.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster