Crystal 0.34.0 liberigita

Nova versio de Crystal estis publikigita, kompilita programlingvo kun Ruby-sintakso, kies ĉefaj trajtoj estas rultempo kun "enkonstruita" eventobuklo, en kiu ĉiuj I/O-operacioj estas nesinkronaj, subteno por multifadenado (tiam longe ĉar ĝi estas ebligita per flago dum kompilo) kaj ege simpla kaj oportuna funkciado kun bibliotekoj en C.

Komencante kun versio 0.34.0, la lingvo oficiale komencas moviĝi al sia unua reala eldono (t.e. versio 1.0).

La nova versio de Crystal inkluzivas la sekvajn ŝanĝojn kaj plibonigojn en ordo de graveco:

  • Nova registra biblioteko estis aldonita al la API Ensalutu, kiu, male al la malnova, povas sendi mesaĝojn al malsamaj backends kaj filtri ĉi tiujn mesaĝojn malsame depende de la "fonto".

  • Rudimentoj de la mondo de C-evoluo, Errno и WinError, uzata por I/O-primitivoj, fariĝas pasinteco danke al la escepthierarkio IO::Eraro (tamen neniu ankoraŭ malpermesas la uzon de Errno).

  • Forigita aŭtomata anstataŭigo de else nil de la funkciigisto kazo/kiam/alie. Ĉi tio estas farita por eviti ke la programisto hazarde saltu unu el la branĉoj. kiam dum kongruo sur determinismaj kazoj kiel enumoj kaj trapasado de tipoj de Union. Tio estas, simple dirite, ĉi tiu kodo ne plu funkcios sen specifi unu pli kiam (kiam Char) aŭ taskoj alia-branĉoj:

a = 1 || 'x' || "foo"
kazo a
kiam Int32
# ...
kiam String
# ...
fino

  • Opcio de kompililo malebligi_superfluon ne plu havebla. Por superfluaj operacioj, uzu la &+, &-, &* metodojn.

  • Tabelo#plenigo nun flugas pli rapide ol kuglo, danke al anstataŭigo de la stulta buklo per unu simpla memset;

  • Administranto de fragmentoj (pakaĵoj), nomita, paradokse, ŝeloj, nun uzas la pli rapidan kaj pli efikan Molinillo dependecan kontentigan algoritmon trovitan en CocoaPods (Swift) kaj Builder (Ruby).

  • Aldonita subteno LLVM 10, kiu en teorio donos al ni iom da pliiĝo en produktiveco, stabileco, ktp.

... kaj multaj aliaj, laŭ mia subjektiva opinio, malpli gravaj plibonigoj.

Mi ŝatus noti, ke Crystal estas lingvo konstruita sur LLVM, kiu ebligas al vi verki aplikaĵojn foje pli rapide, pli simple kaj pli koncize ol sur ĝiaj interpretitaj "fratoj", kaj samtempe akiri sufiĉe rapidan binaron kiel rezulto. Kompare kun Golang, ĝi elstaras pro sia absolute plena OOP, subteno por generikoj kaj tre simpla kaj komprenebla sintakso. Ĝia celo estas grandparte simila al Nim, sed samtempe ĝi klare fokusiĝas al praktika uzo "ĉi tie kaj nun", dank' al kiu ĝi havas en sia API-arsenalo multajn bone dokumentitajn, oportunajn kaj altkvalitajn ilojn, subtenatajn de la lingvoprogramistoj kaj tial tre stabilaj.

fonto: linux.org.ru

Aldoni komenton