Crystal 0.34.0 lanzado

Lanzouse unha nova versión de Crystal, unha linguaxe de programación compilada con sintaxe Ruby, cuxas principais características son o tempo de execución cun bucle de eventos "incorporado", no que todas as operacións de E/S son asíncronas, soporte para multithreading (sempre que xa que está habilitado por unha marca durante a compilación) e un funcionamento extremadamente sinxelo e cómodo con bibliotecas en C.

A partir da versión 0.34.0, o idioma comeza oficialmente a avanzar cara á súa primeira versión real (é dicir, a versión 1.0).

A nova versión de Crystal inclúe os seguintes cambios e melloras por orde de importancia:

  • Engadiuse unha nova biblioteca de rexistro á API Rexistro, que, a diferenza da antiga, pode enviar mensaxes a diferentes backends e filtrar estas mensaxes de forma diferente dependendo da "fonte".

  • Rudimentos do mundo do desenvolvemento C, Errno и WinError, usado para as primitivas de E/S, están a ser cousa do pasado grazas á xerarquía de excepcións IO::Erro (porén, ninguén prohibe aínda usar Errno).

  • Eliminouse a substitución automática de else nil do operador caso/cando/se non. Isto faise para evitar que o desenvolvedor salte accidentalmente unha das ramas. cando ao facer coincidir casos deterministas como enumeracións e pasar por tipos de Union. É dicir, simplemente, este código xa non funcionará sen especificar un máis cando (cando Char) ou tarefas outro- ramas:

a = 1 || 'x' || "foo"
caso a
cando Int32
#…
cando String
#…
final

  • Opción de compilador disable_overflow xa non está dispoñible. Para operacións de desbordamento, use os métodos &+, &-, &*.

  • Matriz #recheo agora voa máis rápido que unha bala, grazas a substituír o estúpido bucle por un simple memset;

  • Xestor de fragmentos (paquetes), chamado, paradoxalmente, fragmentos, agora usa o algoritmo de satisfacción da dependencia de Molinillo máis rápido e eficiente que se atopa en CocoaPods (Swift) e Builder (Ruby).

  • Soporte engadido LLVM 10, o que en teoría nos dará algún aumento da produtividade, da estabilidade, etc.

... e moitas outras, na miña opinión subxectiva, melloras menos significativas.

Gustaríame sinalar que Crystal é unha linguaxe construída en LLVM, que permite escribir aplicacións ás veces máis rápido, máis sinxelo e conciso que nos seus "irmáns" interpretados e, ao mesmo tempo, obter un binario bastante rápido como resultado. En comparación con Golang, destaca pola súa OOP absolutamente completa, soporte para xenéricos e unha sintaxe moi sinxela e comprensible. O seu propósito é moi similar ao de Nim, pero ao mesmo tempo está claramente centrado no uso práctico "aquí e agora", grazas ao cal ten no seu arsenal de API moitas ferramentas ben documentadas, cómodas e de alta calidade, apoiadas pola desenvolvedores de linguaxes e, polo tanto, moi estables.

Fonte: linux.org.ru

Engadir un comentario