Crystal 1.0-programmeertaal beskikbaar

Die vrystelling van die Crystal 1.0-programmeertaal het plaasgevind. Die vrystelling word gemerk as die eerste betekenisvolle vrystelling, wat 8 jaar se werk opgesom het en die stabilisering van die taal en sy gereedheid vir gebruik in werkende projekte gemerk het. Die 1.x-tak sal terugwaartse versoenbaarheid handhaaf en verseker dat daar geen veranderinge aan die taal of standaardbiblioteek is wat die bou en werking van bestaande kode negatief beïnvloed nie.

Uitgawes van 1.0.y sal slegs geringe regstellings insluit, terwyl 1.x.0-weergawes nuwe funksionaliteit en beduidende veranderinge sal bekendstel terwyl kodeversoenbaarheid gehandhaaf word. Nuwe idees en potensieel onversoenbare veranderinge sal in 'n aparte tak ontwikkel word, wat later die basis vir die Crystal 2.0-vrystelling sal vorm. Sommige Crystal 1.0-kenmerke word as voorlopig verklaar en, ten spyte daarvan dat hulle in die 1.0-tak teenwoordig is, word hulle nie deur amptelike ondersteuning gedek nie. Hierdie kenmerke sluit in multithreading, platformondersteuning en Windows, gebruik op stelsels met ARM-verwerkers.

Laat ons onthou dat Crystal-ontwikkelaars probeer om die gemak van ontwikkeling in die Ruby-taal te kombineer met die hoë toepassingsprestasie inherent aan die C-taal. Crystal se sintaksis is naby, maar nie ten volle versoenbaar met, Ruby nie, alhoewel sommige Ruby-programme sonder verandering loop. Die samestellerkode is in Crystal geskryf en onder die Apache 2.0-lisensie versprei.

Die taal gebruik statiese tipe kontrolering, geïmplementeer sonder dat dit nodig is om die tipe veranderlikes en metode-argumente in die kode uitdruklik te spesifiseer. Kristalprogramme word saamgestel in uitvoerbare lêers, met makro's wat geëvalueer en kode gegenereer word tydens samestelling. In Crystal-programme is dit moontlik om bindings wat in C geskryf is, te verbind. Parallellisering van kode-uitvoering word uitgevoer met behulp van die "spawn"-sleutelwoord, wat jou toelaat om 'n agtergrondtaak asynchroon uit te voer, sonder om die hoofdraad te blokkeer, in die vorm van liggewig drade wat vesels genoem word.

Die standaardbiblioteek bied 'n groot stel algemene funksies, insluitend gereedskap vir die verwerking van CSV, YAML en JSON, komponente vir die skep van HTTP-bedieners, en WebSocket-ondersteuning. Tydens die ontwikkelingsproses is dit gerieflik om die "crystal play"-opdrag te gebruik, wat 'n webkoppelvlak genereer (localhost:8080 by verstek) vir interaktiewe uitvoering van kode in die Crystal-taal.

Belangrikste veranderinge:

  • Tuples laat geïndekseerde toegang tot elemente van verskillende tipes toe omdat die samesteller weet watter tipe elke element is. Byvoorbeeld: tuple = {1, "hallo", 'x'} v = tuple[0..1] # sal {1, "hallo"} tipe(v) terugstuur # => Tuple(Int32, String)
  • String- en karakterletters laat nie die gebruik van surrogaatafkortings in Unicode-ontsnappingsreekse soos "\uD834" toe nie. Om arbitrêre waardes te enkodeer, gebruik die "\x"-notasie.
  • In die standaardbiblioteek is 'n groot gedeelte van definisies, makro's en metodes wat voorheen as verouderd gemerk is, verwyder. Insluitend metodes Stel, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill, ens.
  • Die getter en eiendom makro's vereis nou dat die terugkeer tipe gespesifiseer word.
  • Die verstekafrondingsmetode is verander na TIES_EVEN ("bankierafronding", tot die naaste heelgetal, en vir grenssituasies tot die naaste ewe getal). Die RoundingMode-parameter is by Number#round gevoeg, sodat jy die afrondingsmetode kan kies. Beskikbare metodes sluit in: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • Enumerable#flat_map en Iterator#flat_map werk met elemente van gemengde tipes in versamelings.
  • Serialisering van Enum-reekse gebruik nou onderstreep-stringvoorstellings.
  • Die tipes wat in die XML-module gedefinieer is, is verskuif van die gebruik van struct na klas.
  • Om sekuriteitsredes is die dekodering van koekiename, sowel as die kodering en dekodering van koekiewaardes, gestaak (herkodering is nou die verantwoordelikheid van raamwerke en toepassings). Die HTTP::Cookies.from_headers-metode is in twee variante verdeel vir bedieners en kliënte.

Bron: opennet.ru

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster