Crystal 1.0 programmeerimiskeel on saadaval

Crystal 1.0 programmeerimiskeele väljaanne on toimunud. Väljalaskmine on tähistatud kui esimene märkimisväärne versioon, mis on kokku võtnud 8 aastat tööd ning näidanud keele stabiliseerumist ja valmidust kasutamiseks töös projektides. Versioonis 1.x tagatakse tagasivaatav ühilduvus ning keeles ja standardraamatukogus ei toimu muudatusi, mis mõjutaksid olemasoleva koodi compilatsiooni ja töö väga negatiivselt.

Versioonid 1.0.y sisaldavad ainult parandusi, samal ajal kui versioonid 1.x.0 pakuvad uusi funktsioone ja olulisi muudatusi, säilitades samas ühilduvuse koodiga. Uued ideed ja potentsiaalselt mitteühilduvad muudatused arenevad eraldi harus, mille põhjal koostatakse hiljem Crystal 2.0 väljaanne. Mõned Crystal 1.0 omadused on kuulutatud esialgseteks ja hoolimata nende olemasolust versioonis 1.0, ei kuulu need ametliku toe alla. Selliste omaduste hulka kuuluvad ühemõttelisus, töö Windows platvormil ja kasutamine ARM protsessoritega seadmetes.

Tuletame meelde, et Crystal'i arendajad püüavad ühendada Ruby programmeerimise mugavuse ja C keele rakenduste kõrge jõudluse. Crystal’i süntaks on sarnane Ruby-le, kuid ei ole täielikult ühilduv, kuigi mõned Ruby programmid töötavad ilma ümberehitamiseta. Kompileeri kood on kirjutatud Crystal keeles ja levitatakse Apache 2.0 litsentsi all.

Keen kasutab staatilist tüüpide kontrolli, mis on rakendatud ilma, et oleks vajalik muutujate ja meetodite argumentide tüübi selge määramine koodis. Crystal programmide compilatsioon toimub täidesaatvate failide loomiseks, makrode arvutamise ja koodi genereerimisega compileerimise ajal. Crystal programmides on lubatud C keeles kirjutatud sidemete kasutamine. Koodi täitmise paralleelset töötlemist tehakse „spawn“ võtmesõna abil, mis võimaldab käivitada taustatöö asünkroonses režiimis, blokeerimata peamist lõime, kasutades kergekaalulisi lõime, mida nimetatakse fibriteks (Fiber).

Standardsedelika pakub suurt hulka tüüpfunktsioone, sealhulgas tööriistu CSV, YAML ja JSON töötlemiseks, komponente HTTP-serverite loomiseks ja WebSocketi toe osas. Arendamise käigus on mugav kasutada käsku «crystal play», mis loob veebiliidese (vaikimisi localhost:8080) Crystal keeles koodi interaktiivseks täitmiseks.

Peamised muudatused:

  • Tuplites on lubatud indekseeritud juurdepääs erinevat tüüpi elementidele, kuna kompilaatoril on teave iga elementi tüübi kohta. Näiteks: tuple = {1, «hello», ‘x’} v = tuple[0..1] # annab {1, «hello»} typeof(v) # => Tuple(Int32, String)
  • Stringi ja märgiklitrites on keelatud kasutada surrogaate Unicode'i escape-järjestustes, nagu «\uD834». Suvaliste väärtuste kodeerimiseks tuleks kasutada notatsiooni «\x».
  • Standardsedelika on eemaldanud suure osa määratlustest, makrodest ja meetoditest, mis olid varem märgitud vananenuiks. Sealhulgas meetodid Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill jne.
  • Getter ja property makrode puhul on nüüd kohustuslik märgata tagastatavat tüüpi.
  • Vaikimisi ümardamismeetod on muudetud TIES_EVEN-ks («pankuri ümardamine», lähima täisarvuni, ja piirjuhtudel lähimale paarisarvule). Number#round-metoodile on lisatud parameeter RoundingMode, mis võimaldab valida ümardamismeetodi. Saadaval olevate meetodite seas on: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • Kogudes tagatakse Enumerable#flat_map ja Iterator#flat_map töö segatüüpide elementidega.
  • Enum-seeria serialiseerimisel kasutatakse nüüd allajoonitud stringi kujul esitamist.
  • XML-moodulis määratletud tüübid on muudetud struct'i kasutamiselt klassiks.
  • Turvalisuse kaalutlustel on lõpetatud küpsiste nimede dekodeerimine, samuti küpsiste väärtuste kodeerimine ja dekodeerimine (rekodeerimise koormus on antud raamistikule ja rakendustele). HTTP::Cookies.from_headers meetod on jagatud kaheks variandiks. serverid ja klientidele.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster