Crystal 0.34.0 ist erschienen.

Die neue Version von Crystal, einer kompilierbaren Programmiersprache mit Ruby-Syntax, hat wichtige Eigenschaften: zur Laufzeit gibt es eine "eingebaute" Event-Loop, in der alle Eingabe- und Ausgabeoperationen asynchron sind, UnterstĂŒtzung fĂŒr Multithreading (derzeit wird dies bei der Kompilierung ĂŒber ein Flag aktiviert) und eine Ă€ußerst einfache und benutzerfreundliche Arbeit mit C-Bibliotheken.

Ab Version 0.34.0 beginnt die Sprache offiziell, entschlossen auf die erste echte Version (d.h. Version 1.0) zuzugehen.

In der neuen Crystal-Version sind folgende Änderungen und Verbesserungen in der Reihenfolge ihrer Wichtigkeit zu vermerken:

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

  • Relikte aus der Welt der C-Entwicklung, Errno und WinError, die fĂŒr grundlegende Eingabe- und Ausgabeoperationen verwendet wurden, gehören dank der Hierarchie der Ausnahmen der Vergangenheit an IO::Error (niemand verbietet es jedoch, Errno weiterhin zu verwenden).

  • Die automatische EinfĂŒgung von else nil aus der Anweisung case/when/elsewurde entfernt. Dies wurde getan, um das versehentliche Übersehen eines Branches durch den Entwickler auszuschließen when bei der Übereinstimmung mit deterministischen FĂ€llen wie Enums und beim Durchlaufen von Typen aus Union. Einfacher ausgedrĂŒckt, wird solch ein Code nicht mehr funktionieren, ohne einen weiteren when (when Char) oder einen else-Branch anzugeben:

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

when String
# 

end

  • Die Compiler-Option disable_overflow ist nicht mehr verfĂŒgbar. FĂŒr Überlaufoperationen verwenden Sie die Methoden &+, &-, &*.

  • Array#fill ist jetzt blitzschnell, dank des Austausches der unangenehmen Schleife durch einen einfachen memset;

  • Der Shard-Manager (Pakete), die, wie paradox es auch sein mag, shards, verwendet jetzt einen schnelleren und effizienteren Algorithmus zur Befriedigung von AbhĂ€ngigkeiten, Molinillo, der aus CocoaPods (Swift) und Builder (Ruby) ĂŒbernommen wurde.

  • UnterstĂŒtzung hinzugefĂŒgt fĂŒr LLVM 10, was uns theoretisch einen Anstieg der Leistung, StabilitĂ€t usw. bringen sollte.


 und viele andere, meiner subjektiven Meinung nach weniger wesentliche Verbesserungen.

Es ist zu beachten, 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" und dabei ein recht schnelles BinĂ€rfile zu erhalten. Im Vergleich zu Golang bietet es eine vollwertige OOP, UnterstĂŒtzung fĂŒr Generics und eine sehr einfache sowie verstĂ€ndliche Syntax. In seiner Funktion ist es dem Nim sehr Ă€hnlich, ist jedoch ganz offensichtlich auf die praktische Anwendung "hier und jetzt" ausgerichtet, wodurch es eine Vielzahl gut dokumentierter, nĂŒtzlicher und qualitativ hochwertiger Werkzeuge in seiner API-Bibliothek bietet, die von den Entwicklern der Sprache unterstĂŒtzt werden und daher sehr stabil sind.

Quelle: linux.org.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster