Crystal 0.34.0 veröffentlicht

Es wurde eine neue Version von Crystal veröffentlicht, einer kompilierten Programmiersprache mit Ruby-Syntax, deren Hauptmerkmale Laufzeit mit einer „eingebauten“ Ereignisschleife sind, in der alle I/O-Operationen asynchron sind, Unterstützung für Multithreading (sofern da es beim Kompilieren durch ein Flag aktiviert wird) und äußerst einfache und komfortable Bedienung mit Bibliotheken in C.

Ab Version 0.34.0 beginnt die offizielle Entwicklung der Sprache in Richtung ihrer ersten echten Veröffentlichung (d. h. Version 1.0).

Die neue Version von Crystal enthält die folgenden Änderungen und Verbesserungen in der Reihenfolge ihrer Wichtigkeit:

  • Der API wurde eine neue Protokollierungsbibliothek hinzugefügt Log, das im Gegensatz zum alten Nachrichten an verschiedene Backends senden und diese Nachrichten je nach „Quelle“ unterschiedlich filtern kann.

  • Rudimente aus der Welt der C-Entwicklung, Fehler и WinError, die für I/O-Primitive verwendet werden, gehören dank der Ausnahmehierarchie der Vergangenheit an IO::Fehler (Allerdings verbietet noch niemand die Verwendung von Errno).

  • Automatische Ersetzung von else nil vom Operator entfernt Fall/wann/sonst. Dies geschieht, um zu verhindern, dass der Entwickler versehentlich einen der Zweige überspringt. wann beim Abgleich in deterministischen Fällen wie Aufzählungen und beim Durchlaufen von Typen aus Union. Das heißt, vereinfacht gesagt, dieser Code funktioniert nicht mehr, ohne einen weiteren Code anzugeben wann (wenn Char) oder Aufgaben sonst-Geäst:

a = 1 || 'x' || „foo“
Fall a
wenn Int32
#…
wenn String
#…
Ende

  • Compiler-Option disable_overflow nicht länger verfügbar. Verwenden Sie für Überlaufoperationen die Methoden &+, &-, &*.

  • Array#fill Fliegt jetzt schneller als eine Kugel, dank des Ersetzens der dummen Schleife durch ein einfaches Memset;

  • Manager von Shards (Paketen), paradoxerweise genannt Scherben, verwendet jetzt den schnelleren und effizienteren Molinillo-Algorithmus zur Abhängigkeitszufriedenheit, der in CocoaPods (Swift) und Builder (Ruby) zu finden ist.

  • Unterstützung hinzugefügt LLVM 10, was uns theoretisch zu einer gewissen Steigerung der Produktivität, Stabilität usw. verhelfen wird.

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

Ich möchte darauf hinweisen, dass Crystal eine auf LLVM basierende Sprache ist, mit der Sie Anwendungen manchmal schneller, einfacher und prägnanter schreiben können als mit ihren interpretierten „Brüdern“ und gleichzeitig als Ergebnis eine ziemlich schnelle Binärdatei erhalten. Im Vergleich zu Golang zeichnet es sich durch absolut vollwertiges OOP, Unterstützung für Generika und eine sehr einfache und verständliche Syntax aus. Sein Zweck ähnelt weitgehend dem von Nim, ist aber gleichzeitig klar auf den praktischen Einsatz „hier und jetzt“ ausgerichtet, weshalb es in seinem API-Arsenal viele gut dokumentierte, praktische und hochwertige Tools enthält, die von der unterstützt werden Sprachentwickler und daher sehr stabil.

Source: linux.org.ru

Kommentar hinzufügen