Излезе Crystal 0.34.0

Излезе нова версия Crystal, компилиран език за програмиране с Ruby синтаксис, чиито основни характеристики са: runtime с "вградена" event loop, в който всички операции с вход-изход са асинхронни, поддръжка на многопоточност (в момента активирана с флаг при компилация) и изключително лесна и удобна работа с библиотеки на C.

С версия 0.34.0, езикът официално започва уверено да се движи към първия истински релиз (т.е. версия 1.0).

В новата версия Crystal могат да се отбележат следните промени и подобрения по важност:

  • В API е добавена нова библиотека за логване Log, която, за разлика от старата, може да насочва съобщенията към различни бекенди и да филтрира тези съобщения по различен начин в зависимост от "източника".

  • Рудименти от света на разработката на C, Errno и WinError, използвани за примитиви с вход-изход, вече отстъпват на заден план благодарение на йерархията на изключенията IO::Error (въпреки че никой не забранява използването на Errno).

  • Автоматичното добавяне на else nil в оператора case/when/elseе премахнато, за да се предотврати случайното пропускане от разработчика на един от клоновете when при мачинг по определени случаи като enum и типове от Union. Тоест, по-просто казано, такъв код вече няма да работи без указване на още един when (when Char) или задаване на иначе-клон:

a = 1 || ‘x’ || "foo"
case a
when Int32
# …
when String
# …
end

  • Опцията на компилатора disable_overflow вече не е налична. За операции с преливане използвайте методите &+, &-, &*.

  • Array#fill сега работи много по-бързо, благодарение на заменянето на некадърен цикъл с проста memset;

  • Мениджърът на пакетите (или шардовете), мистично наречени shards, сега използва по-бърз и ефективен алгоритъм за задоволяване на зависимостите Molinillo, видян в CocoaPods (Swift) и Builder (Ruby).

  • Добавена е поддръжка LLVM 10, което по принцип би трябвало да доведе до известен ръст в производителността, стабилността и т.н.

… и множество други, по мое субективно мнение, по-малко значими подобрения.

Следва да се отбележи, че Crystal е език, построен на LLVM, който позволява написването на приложения понякога по-бързо, по-просто и по-лаконично от неговите интерпретируеми "братя", и в същото време дава на изхода доста бърз бинарен файл. И в контекста на Golang, той се отличава с абсолютно пълноценен ООП, поддръжка на дженериците и много прост и разбираем синтаксис. По същество е много подобен на Nim, но е явно ориентиран към практическото приложение "тук и сега", благодарение на което разполага с множество добре документирани удобни и качествени инструменти в своя API-арсенал, поддържани от разработчиците на езика и затова много стабилни.

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster