Gjuha programore Crystal 1.0 është në dispozicion

U realizua lëshimi i gjuhës së programimit Crystal 1.0. Ky publikim shënon lëshimin e parë të rëndësishëm, që përmbledh 8 vjet punë dhe simbolizon stabilizimin e gjuhës dhe gatishmërinë për t'u përdorur në projekte të punës. Në degën 1.x do të ruhet përputhshmëria prapa dhe garantohen pa ndryshime në gjuhë dhe bibliotekën standarde, që ndikojnë negativisht në ndërtimin dhe funksionimin e kodit ekzistues.

Lëshimet 1.0.y do të përfshijnë vetëm korrigjime, ndërsa versionet 1.x.0 do të ofrojnë funksionalitete të reja dhe ndryshime të rëndësishme, duke ruajtur përputhshmërinë me kodin. Ide të reja dhe ndryshime potencialisht të papërputhshme do të zhvillohen në një degë të veçantë, mbi bazën e së cilës do të formohet më vonë publikimi Crystal 2.0. Disa funksionalitete të Crystal 1.0 janë shpallur si preliminare dhe pavarësisht pranisë në degën 1.0, ato nuk përfshihen nën mbështetje zyrtare. Ndër këto funksionalitete përfshihen monogjithësia, funksionimi në platformën Windows, përdorimi në sisteme me procesorë ARM.

Të kujtojmë se zhvilluesit e Crystal përpiqen të kombinojnë lehtësinë e zhvillimit në gjuhën Ruby me performancën e lartë të aplikacioneve që veçori gjuhën C. Sintaksisi i Crystal është i ngjashëm me gjuhën Ruby, por nuk është plotësisht i përputhshëm me të, megjithatë disa programe ruby funksionojnë pa modifikim. Kodi i kompilatorit është shkruar në gjuhën Crystal dhe shpërndahet nën licencën Apache 2.0.

Në gjuhë përdoret kontrolli statik i tipave, i realizuar pa nevojën për të specifikuar qartë tipet e variablave dhe argumenteve të metodave në kod. Programet në Crystal compilohen në skedarë ekzekutivë, me llogaritjen e makrove dhe gjenerimin e kodit gjatë kompilimit. Në programet në gjuhën Crystal lejohet lidhja me binda të shkruara në gjuhën C. Paraleleza e ekzekutimit të kodit realizohet me fjalën kyçe «spawn», e cila lejon nisjen e një detyre në prapaskenë në mod të asinkroni, pa bllokuar rrjedhën kryesore, në formën e rrjedhave të lehta, të njohura si fibra (Fiber).

Biblioteka standarde ofron një grup të gjerë funksionesh të zakonshme, duke përfshirë mjete për procesimin e CSV, YAML, dhe JSON, komponente për krijimin e serverëve HTTP dhe mbështetje për WebSocket. Gjatë zhvillimit, është e dobishme të përdorësh komandën "crystal play" e cila formon një ndërfaqe web (në mënyrë të parazgjedhur localhost:8080) për ekzekutimin interaktiv të kodit në gjuhën Crystal.

Ndryshimet kryesore:

  • NĂ« tuplas lejohet tĂ« qaset indeksikisht nĂ« elemente tĂ« llojeve tĂ« ndryshme, pasi kompjuteri ka informacion se cilat janĂ« llojet e çdo elementi. PĂ«r shembull: tuple = {1, «hello», 'x'} v = tuple[0..1] # do tĂ« japĂ« {1, «hello»} typeof(v) # => Tuple(Int32, String)
  • NĂ« literat e vargjeve dhe karaktereve Ă«shtĂ« ndaluar pĂ«rdorimi i shkurtoreve surrogate nĂ« sekvencat e escapes Unicode, si «\uD834». PĂ«r kodimin e vlerave tĂ« rastit duhet tĂ« pĂ«rdoret notacioni «\x».
  • NĂ« bibliotekĂ«n standarde Ă«shtĂ« hequr njĂ« sasi e madhe e definimeve, makrove dhe metodave, tĂ« cilat ishin shĂ«nuar si tĂ« vjetruara. Duke pĂ«rfshirĂ« metodat Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill dhe tĂ« tjera.
  • NĂ« makrotĂ« getter dhe property tani kĂ«rkohet patjetĂ«r specifikimi i tipit tĂ« kthyer.
  • Metoda e rrumbullakimit tĂ« paracaktuar Ă«shtĂ« ndryshuar nĂ« TIES_EVEN («rrumbullakimi banker», deri nĂ« numrin e plotĂ« mĂ« tĂ« afĂ«rt, dhe pĂ«r situatat kufitare deri nĂ« numrin çift mĂ« tĂ« afĂ«rt). NĂ« Number#round Ă«shtĂ« shtuar parametri RoundingMode, i cili lejon zgjedhjen e metodĂ«s sĂ« rrumbullakimit. NdĂ«r metodat e disponueshme janĂ«: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • NĂ« koleksione Ă«shtĂ« siguruar funksionimi i Enumerable#flat_map dhe Iterator#flat_map me elemento tĂ« llojeve tĂ« pĂ«rziera.
  • NĂ« serializimin e sekuencave Enum tani pĂ«rdoren reprezentimet nĂ« formĂ« tĂ« vargjeve me nĂ«nvizime.
  • Llojet e pĂ«rcaktuara nĂ« modulion XML janĂ« transferuar nga pĂ«rdorimi i struct nĂ« class.
  • PĂ«r arsyet e sigurisĂ« Ă«shtĂ« ndaluar dekodimi i emrave tĂ« Cookie, si dhe kodimi dhe dekodimi i vlerave tĂ« Cookie (rikodimi Ă«shtĂ« lĂ«nĂ« nĂ« duar tĂ« frameworkeve dhe aplikacioneve). Metoda HTTP::Cookies.from_headers Ă«shtĂ« ndarĂ« nĂ« dy variante pĂ«r servera dhe klientĂ«t.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster