Cristal 0.34.0 lanzado

Se ha lanzado una nueva versión de Crystal, un lenguaje de programación compilado con sintaxis Ruby, cuyas características principales son tiempo de ejecución con un bucle de eventos "integrado", en el que todas las operaciones de E/S son asíncronas, soporte para subprocesos múltiples (siempre que ya que está habilitado mediante un indicador durante la compilación) y operación extremadamente simple y conveniente con bibliotecas en C.

A partir de la versión 0.34.0, el lenguaje comienza oficialmente a avanzar hacia su primera versión real (es decir, la versión 1.0).

La nueva versión de Crystal incluye los siguientes cambios y mejoras en orden de importancia:

  • Se ha agregado una nueva biblioteca de registro a la API. Log, que, a diferencia del anterior, puede enviar mensajes a diferentes backends y filtrar estos mensajes de manera diferente según la "fuente".

  • Rudimentos del mundo del desarrollo en C, error и WinError, utilizados para primitivas de E/S, se están convirtiendo en una cosa del pasado gracias a la jerarquía de excepciones E/S::Error (Sin embargo, nadie prohíbe todavía el uso de Errno).

  • Se eliminó la sustitución automática de else nil del operador. caso/cuando/si no. Esto se hace para evitar que el desarrollador se salte accidentalmente una de las ramas. cuando al hacer coincidir casos deterministas como enumeraciones y pasar tipos de Union. Es decir, en pocas palabras, este código ya no funcionará sin especificar uno más. cuando (cuando Char) o tareas más-sucursales:

a = 1 || 'x' || "foo"
caso un
cuando Int32
#…
cuando cadena
#…
final

  • Opción del compilador desactivar_desbordamiento ya no está disponible. Para operaciones de desbordamiento, utilice los métodos &+, &-, &*.

  • matriz#rellenar ahora vuela más rápido que una bala, gracias a que se reemplazó el estúpido bucle con un simple memset;

  • Administrador de fragmentos (paquetes), llamado, paradójicamente, fragmentos, ahora utiliza el algoritmo de satisfacción de dependencia Molinillo, más rápido y eficiente, que se encuentra en CocoaPods (Swift) y Builder (Ruby).

  • Soporte agregado LLVM 10, lo que en teoría nos dará cierto aumento de productividad, estabilidad, etc.

... y muchas otras mejoras, en mi opinión subjetiva, menos significativas.

Me gustaría señalar que Crystal es un lenguaje construido en LLVM, que le permite escribir aplicaciones a veces más rápido, más simple y más conciso que sus "hermanos" interpretados, y al mismo tiempo obtener como resultado un binario bastante rápido. En comparación con Golang, se destaca por su programación orientada a objetos absolutamente completa, soporte para genéricos y una sintaxis muy simple y comprensible. Su propósito es muy similar al de Nim, pero al mismo tiempo está claramente enfocado al uso práctico "aquí y ahora", gracias a lo cual tiene en su arsenal API muchas herramientas bien documentadas, convenientes y de alta calidad, respaldadas por desarrolladores de lenguajes y por lo tanto muy estable.

Fuente: linux.org.ru

Añadir un comentario