Crystal 0.34.0 chiqarildi

Crystal-ning yangi versiyasi, Ruby sintaksisi bilan tuzilgan dasturlash tili chiqarildi, uning asosiy xususiyatlari "o'rnatilgan" hodisalar tsikli bilan ishlash vaqti bo'lib, unda barcha kiritish-chiqarish operatsiyalari asinxron, ko'p oqimni qo'llab-quvvatlaydi (shunchaki). chunki kompilyatsiya paytida bayroq bilan yoqiladi) va C tilidagi kutubxonalar bilan juda oddiy va qulay ishlash.

0.34.0 versiyasidan boshlab, til rasman o'zining birinchi haqiqiy versiyasiga (ya'ni 1.0 versiyasi) o'tishni boshlaydi.

Kristalning yangi versiyasi muhimlik tartibida quyidagi o'zgarishlar va yaxshilanishlarni o'z ichiga oladi:

  • APIga yangi jurnallar kutubxonasi qo'shildi Kundalik, bu, eskisidan farqli o'laroq, xabarlarni turli backendlarga yuborishi va bu xabarlarni "manba" ga qarab turlicha filtrlashi mumkin.

  • C rivojlanish dunyosidan asoslar, Xato ΠΈ Win xatosi, I/U ibtidoiylari uchun ishlatiladi, istisnolar ierarxiyasi tufayli o'tmishga aylanmoqda IO :: Xato (ammo, Errno-dan foydalanishni hali hech kim taqiqlamaydi).

  • Operatordan else nil ni avtomatik almashtirish olib tashlandi hol/qachon/boshqa. Bu ishlab chiquvchining filiallardan birini tasodifan o'tkazib yuborishiga yo'l qo'ymaslik uchun amalga oshiriladi. qachon enumlar kabi deterministik holatlar bo'yicha mos kelganda va Ittifoqdan turlardan o'tishda. Ya'ni, oddiy qilib aytganda, bu kod boshqasini ko'rsatmasdan ishlamaydi qachon (Char qachon) yoki vazifalar yana boshqa-filiallar:

a = 1 || 'x' || "foo"
holat a
qachon Int32
#…
qachon String
#…
oxiri

  • Kompilyator opsiyasi disable_overflow endi mavjud emas. To'ldirish operatsiyalari uchun &+, &-, &* usullaridan foydalaning.

  • Massiv # to'ldirish ahmoq halqani bitta oddiy memset bilan almashtirish tufayli endi o'qdan tezroq uchadi;

  • Paradoksal deb ataladigan parchalar (paketlar) menejeri sharsimon, endi CocoaPods (Swift) va Builder (Ruby) da topilgan tezroq va samarali Molinillo qaramligini qondirish algoritmidan foydalanadi.

  • Qo'shilgan qo'llab-quvvatlash LLVM 10, bu nazariy jihatdan bizga unumdorlikni, barqarorlikni va hokazolarni oshiradi.

... va boshqa ko'plab, mening sub'ektiv fikrimcha, unchalik muhim bo'lmagan yaxshilanishlar.

Shuni ta'kidlashni istardimki, Crystal - bu LLVM-ga asoslangan til bo'lib, u sizga ba'zan talqin qilingan "birodarlar" ga qaraganda tezroq, sodda va ixchamroq ilovalarni yozishga imkon beradi va shu bilan birga juda tez ikkilik faylga ega bo'ladi. Golang bilan solishtirganda, u mutlaqo to'liq OOP, generiklarni qo'llab-quvvatlash va juda oddiy va tushunarli sintaksis bilan ajralib turadi. Uning maqsadi ko'p jihatdan Nim-ga o'xshaydi, lekin ayni paytda u "bu erda va hozir" amaliy foydalanishga aniq yo'naltirilgan, buning natijasida uning API arsenalida ko'plab yaxshi hujjatlashtirilgan, qulay va yuqori sifatli vositalar mavjud. til ishlab chiquvchilari va shuning uchun juda barqaror.

Manba: linux.org.ru

a Izoh qo'shish