Programmeringsspråket Crystal 1.0 er tilgjengelig

Utgivelsen av programmeringsspråket Crystal 1.0 har funnet sted. Utgivelsen markeres som den første betydningsfulle versjonen som oppsummerer åtte års arbeid og markerer språket stabilisert og klart for bruk i arbeidsprosjekter. I versjon 1.x vil bakoverkompatibilitet bli opprettholdt, og det garanteres at det ikke vil være endringer i språket og standardbiblioteket som negativt påvirker kompilering og funksjon av eksisterende kode.

Utgivelser av 1.0.y vil kun inkludere korrigerende feilrettinger, mens versjoner 1.x.0 vil tilby ny funksjonalitet og betydelige endringer, samtidig som de opprettholder kompatibilitet med koden. Nye ideer og potensielt inkompatible endringer vil bli utviklet i en egen gren, hvorfra Crystal 2.0 senere vil bli dannet. Noen funksjoner i Crystal 1.0 er erklært som pre-release, og til tross for å være til stede i gren 1.0, er de ikke under offisiell støtte. Blant disse funksjonene er enkelttråding, drift på Windows-plattformen, og bruk på systemer med ARM-prosessorer.

Vi minner om at utviklerne av Crystal prøver å kombinere utviklingsbekvemmeligheten av Ruby-språket med den høye ytelsen til C-språket. Crystal-syntaksen ligner Ruby-språket, men er ikke helt kompatibel med det, til tross for at enkelte Ruby-programmer kjører uten endringer. Kompilatorens kode er skrevet i Crystal-språket og distribueres under Apache 2.0-lisensen.

Språket bruker statisk typekontroll, implementert uten behov for eksplisitt angivelse av typene på variablene og metodens argumenter i koden. Programmer skrevet i Crystal kompileres til kjørbare filer, med beregning av makroer og generering av kode under kompileringen. I Crystal-programmer er det tillatt å koble til bindinger skrevet i C-språket. Parallell utførelse av koden utføres med nøkkelordet «spawn», som gjør det mulig å starte en bakgrunnsoppgave asynkront uten å blokkere hovedtråden, som lettvekts tråder kalt fibre (Fiber).

Standardbiblioteket tilbyr et stort sett med standardfunksjoner, inkludert verktøy for behandling av CSV, YAML og JSON, komponenter for å opprette HTTP-servere og støtte for WebSocket. Det er praktisk å bruke kommandoen «crystal play» under utviklingen, som genererer et webgrensesnitt (som standard localhost:8080) for interaktiv kodekjøring på Crystal.

Hovedendringer:

  • I tupler er indeksert tilgang til elementer av forskjellige typer tillatt, ettersom kompilatoren har informasjon om hvilken type hvert element har. For eksempel: tuple = {1, «hello», ‘x’} v = tuple[0..1] # vil returnere {1, «hello»} typeof(v) # => Tuple(Int32, String)
  • I streng- og tegnliteraler er bruk av surrogatkonvensjoner i Unicode escape-sekvenser, som «\uD834», forbudt. For å kode vilkårlige verdier bør notasjonen «\x» brukes.
  • I standardbiblioteket er en betydelig mengde definisjoner, makroer og metoder som tidligere var merket som foreldet fjernet. Dette inkluderer metoder som Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill, osv.
  • I makroer for getter og property må returtypen nå spesifiseres.
  • Standard avrundingsmetode har blitt endret til TIES_EVEN (»bankør rounding«, til nærmeste heltall, og for grenseverdier til nærmeste jevne tall). I Number#round er parameteren RoundingMode lagt til, som lar deg velge avrundingsmetode. Tilgjengelige metoder inkluderer: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • I samlinger er det sikret støtte for Enumerable#flat_map og Iterator#flat_map med elementer av blandede typer.
  • Ved serialisering av Enum-sekvenser brukes nå representasjoner i form av strenger med understreking.
  • Typer definert i XML-modulen er konvertert fra bruk av struct til class.
  • Av sikkerhetsmessige årsaker er dekoding av Cookie-navn, samt koding og dekoding av Cookie-verdier, stoppet (re-kodingen er overlatt til rammeverk og applikasjoner). Metoden HTTP::Cookies.from_headers er delt opp i to varianter for servere og klienter.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster