Crystal 0.34.0 ist erschienen.

Die neue Version von Crystal, der kompilierbaren Programmiersprache mit Ruby-Syntax, ist erschienen. Zu den Hauptmerkmalen gehören ein Laufzeitsystem mit einer integrierten Ereignisschleife, in der alle Ein- und Ausgabeoperationen asynchron sind, UnterstĂŒtzung fĂŒr Multithreading (derzeit durch einen Compiler-Flag aktiviert) und eine Ă€ußerst einfache und komfortable Arbeit mit C-Bibliotheken.

Mit der Version 0.34.0 beginnt die Sprache offiziell, mit einer festen Gangart auf das erste echte Release (d.h. Version 1.0) zuzusteuern.

In der neuen Version von Crystal sind die folgenden Änderungen und Verbesserungen in der Reihenfolge ihrer Wichtigkeit zu verzeichnen:

  • Eine neue Logging-Bibliothek wurde zur API hinzugefĂŒgt Log, die im Gegensatz zur alten in der Lage ist, Nachrichten an verschiedene Backends zu senden und diese je nach "Quelle" unterschiedlich zu filtern.

  • Rudimente aus der Welt der Entwicklung in C, Errno und WinError, die fĂŒr primitive Ein- und Ausgabeoperationen genutzt wurden, verschwinden dank einer Hierarchie von Ausnahmen. IO::Error (dennoch ist niemand bisher daran gehindert, Errno zu verwenden).

  • Die automatische EinfĂŒgung von else nil aus dem Operator case/when/elsewurde entfernt, um das zufĂ€llige Auslassen einer der Verzweigungen durch den Entwickler zu vermeiden. when bei der Verarbeitung deterministischer FĂ€lle wie Enums und der Durchlauf von Typen aus Union. Mit anderen Worten, dieser Code wird nicht mehr funktionieren, ohne die Angabe eines weiteren when (wenn Char) oder einer Zuweisung else-Zweige:

a = 1 || 'x' || "foo"
Fall a
wenn Int32
# 

wenn String
# 

end

  • Compiler-Option disable_overflow nicht mehr verfĂŒgbar. Verwenden Sie fĂŒr Überlaufoperationen die Methoden &+ , &- , &*.

  • Array#fill fliegt jetzt schneller als eine Kugel, dank des Austauschs der langwierigen Schleife gegen einen einfachen memset;

  • Shard-Manager (Pakete), die, so paradox es auch klingen mag, shards, verwendet jetzt einen schnelleren und effizienteren AbhĂ€ngigkeitsauflösungsalgorithmus Molinillo, entdeckt in CocoaPods (Swift) und Builder (Ruby).

  • UnterstĂŒtzung fĂŒr LLVM 10, was theoretisch eine Leistungssteigerung, StabilitĂ€t usw. bringen sollte.


 und viele andere, aus meiner subjektiven Sicht, weniger wesentliche Verbesserungen.

Es ist erwĂ€hnenswert, dass Crystal eine auf LLVM basierende Sprache ist, die es ermöglicht, Anwendungen manchmal schneller, einfacher und prĂ€gnanter zu schreiben als mit ihren interpretierten „Verwandten“, wĂ€hrend gleichzeitig ein recht schnelles Binary erzeugt wird. Im Vergleich zu Golang hebt es sich als vollwertige OOP-Sprache mit UnterstĂŒtzung fĂŒr Generika und einer sehr einfachen und verstĂ€ndlichen Syntax ab. In seiner FunktionalitĂ€t Ă€hnelt es in vielerlei Hinsicht Nim, ist aber eindeutig auf die praktische Anwendung „hier und jetzt“ ausgerichtet, weshalb es in seiner API eine Vielzahl gut dokumentierter, nĂŒtzlicher und qualitativ hochwertiger Werkzeuge bietet, die von den Entwicklern der Sprache unterstĂŒtzt und daher recht stabil sind.

Quelle: linux.org.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster