Crystal 0.34.0 iliyotolewa

Toleo jipya la Crystal limetolewa, lugha ya programu iliyokusanywa na syntax ya Ruby, sifa kuu ambazo ni wakati wa kukimbia na kitanzi cha "kujengwa ndani", ambacho shughuli zote za I/O ni za asynchronous, msaada kwa usomaji mwingi (kwa muda mrefu). kama inavyowezeshwa na bendera wakati wa ujumuishaji) na utendakazi rahisi sana na unaofaa na maktaba katika C.

Kuanzia na toleo la 0.34.0, lugha inaanza rasmi kuelekea toleo lake la kwanza halisi (yaani toleo la 1.0).

Toleo jipya la Crystal linajumuisha mabadiliko na maboresho yafuatayo kwa mpangilio wa umuhimu:

  • Maktaba mpya ya kumbukumbu imeongezwa kwenye API Fungua, ambayo, tofauti na ile ya zamani, inaweza kutuma ujumbe kwa njia tofauti za nyuma na kuchuja ujumbe huu tofauti kulingana na "chanzo".

  • Misingi kutoka kwa ulimwengu wa maendeleo ya C, Errno ΠΈ WinError, inayotumika kwa maandishi ya awali ya I/O, yanazidi kuwa historia kutokana na uongozi wa kipekee. IO::Hitilafu (hata hivyo, hakuna mtu anayekataza kutumia Errno bado).

  • Imeondoa uingizwaji wa kiotomatiki wa mwingine nil kutoka kwa opereta kesi/wakati/mwingine. Hii inafanywa ili kuzuia msanidi programu kutoka kwa bahati mbaya kuruka moja ya matawi. wakati wakati wa kulinganisha kesi za kuamua kama enums na kupitisha aina kutoka Muungano. Hiyo ni, kwa urahisi, nambari hii haitafanya kazi tena bila kutaja moja zaidi wakati (wakati Char) au kazi mwingine- matawi:

a = 1 | 'x' | "foo"
kesi a
wakati Int32
#…
wakati Kamba
#…
mwisho

  • Chaguo la mkusanyaji Zima_kufurika haipatikani tena. Kwa shughuli za ziada, tumia &+, &-, &* mbinu.

  • Mkusanyiko #kujaza sasa inaruka kwa kasi zaidi kuliko risasi, shukrani kwa kuchukua nafasi ya kitanzi cha kijinga na memset moja rahisi;

  • Meneja wa shards (vifurushi), inayoitwa, kwa kushangaza, shards, sasa inatumia algoriti ya haraka na bora zaidi ya kuridhika ya utegemezi ya Molinillo inayopatikana katika CocoaPods (Swift) na Builder (Ruby).

  • Aliongeza msaada LLVM 10, ambayo kwa nadharia itatupa ongezeko fulani la tija, utulivu, nk.

... na mengine mengi, kwa maoni yangu binafsi, maboresho yenye umuhimu mdogo.

Ningependa kutambua kwamba Crystal ni lugha iliyojengwa kwenye LLVM, ambayo inakuwezesha kuandika maombi wakati mwingine kwa kasi, rahisi na kwa ufupi zaidi kuliko "ndugu" zake zilizofasiriwa, na wakati huo huo kupata binary haraka kama matokeo. Ikilinganishwa na Golang, ni ya kipekee kwa sababu ya OOP yake kamili, usaidizi wa jenetiki, na sintaksia rahisi na inayoeleweka. Madhumuni yake kwa kiasi kikubwa ni sawa na Nim, lakini wakati huo huo inalenga wazi matumizi ya vitendo "hapa na sasa", shukrani ambayo ina katika safu yake ya API zana nyingi zilizoandikwa vizuri, zinazofaa na za ubora, zinazoungwa mkono na watengenezaji wa lugha na kwa hivyo ni thabiti sana.

Chanzo: linux.org.ru

Kuongeza maoni