Crystal-ın yeni versiyası, Ruby sintaksisi olan bir kompilatör proqramlaşdırma dilidir, əsas xüsusiyyətləri arasında bütün giriş-çıxış əməliyyatlarının asinxron olduğu 'qtadılmış' event loop ilə təchiz edilmiş runtime, kompilyasiya zamanı bayraq olaraq işə salınan çoxdünyalıq dəstəyi və C dilində kitabxanalarla olduqca sadə və rahat işləmə imkanı vardır.
0.34.0 versiyasından başlayaraq, dil rəsmi olaraq 1.0 versiyasına doğru ilk real buraxılışa doğru irəliləməyə başlayır.
Yeni versiyada Crystal-da aşağıdakı dəyişikliklər və təkmilləşdirmələr vurğulanır:
API-yə yeni qeyd jurnallaşdırma kitabxanası əlavə edildi Log, köhnədən fərqli olaraq, mesajları müxtəlif backend-lərə yönləndirmək və 'mənbə' də əsaslanan şəkildə süzgəcləmək qabiliyyətinə malikdir.
C inkişaf dünyasından qalanlar, Errno və WinError, I/O primitivləri üçün istifadə olunan, istisna iyerarxiyası sayəsində keçmişə doğru gedir IO::Error (lakin, hələlik heç kəs Errno istifadə etməyə qadağa qoymayıb).
case/when/else operatorundan avtomatik else nil əlavə edilməsi ləğv edildi. Bu, proqramçının enum-lar kimi deterministik hallara uyğunlaşarkən, bir dalın təsadüfən keçməsini istisna etmək üçün edilmişdir.when hansı halda bir əlavə (when Char) və ya hansı halda else - şaxəsi olmadan belə kod işləmayacaq:a = 1 || 'x' || "foo"
case a
when Int32
when String
# …
end
# …
Kompilyator seçimi
disable_overflow artıq mövcud deyil. Çökmə əməliyyatları üçün &+, &-, &* metodlarından istifadə edin. Array#fill
indi bir güllə kimi daha sürətli işləyir, çünki ağır dövrü bir sadə memset ilə əvəz olunub; Parçaların (paketlərin) meneceri, qarmaqarışıq bir şəkildə
shards , indi CocoaPods (Swift) və Builder (Ruby) da gördüyü daha sürətli və effektli asılılıq təminatı alqoritmini istifadə edir.Dəstəyi əlavə edildi
LLVM 10 , bu prinsipcə performans, stabillik və s. artımını təmin etməlidir.… və subyektiv fikrimə görə, daha az əhəmiyyətli olan bir sıra digər təkmilləşdirmələr.
Crystal-ın LLVM üzərində qurulmuş bir dil olduğunu qeyd etmək istərdim, hansı ki, bəzən tətbiqləri daha sürətli, daha asan və qısa yazmağa imkan tanıyır, həm də kifayət qədər sürətli birliklər əldə etməyə imkan verir. Golang-ın fonunda tamamilə tam OOP, generik dəstəyi və olduqca sadə və anlaşılır sintaksis ilə seçilir. Birtərəfli olaraq, Nim-ə bənzəyir, lakin eyni zamanda 'burada və indi' praktiki istifadəyə yönəldilib, nəticədə API arsenalında normal şəkildə sənədləşdirilən faydalı və keyfiyyətli alətlərin bir çoxunu ehtiva edir ki, bu da dilin inkişaf etdiriciləri tərəfindən də dəstəklənir və beləliklə olduqca stabildir.
Firefox 75
Mənbə: linux.org.ru
