ИзлСзС Crystal 0.34.0

ИзлСзС Π½ΠΎΠ²Π° вСрсия Crystal, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с Ruby синтаксис, Ρ‡ΠΈΠΈΡ‚ΠΎ основни характСристики са: runtime с "Π²Π³Ρ€Π°Π΄Π΅Π½Π°" event loop, Π² ΠΊΠΎΠΉΡ‚ΠΎ всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄ са асинхронни, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° многопоточност (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° с Ρ„Π»Π°Π³ ΠΏΡ€ΠΈ компилация) ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ лСсна ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° C.

Π‘ вСрсия 0.34.0, Π΅Π·ΠΈΠΊΡŠΡ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π° ΡƒΠ²Π΅Ρ€Π΅Π½ΠΎ Π΄Π° сС Π΄Π²ΠΈΠΆΠΈ към ΠΏΡŠΡ€Π²ΠΈΡ истински Ρ€Π΅Π»ΠΈΠ· (Ρ‚.Π΅. вСрсия 1.0).

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Crystal ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°Ρ‚ слСднитС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ подобрСния ΠΏΠΎ ваТност:

  • Π’ API Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π»ΠΎΠ³Π²Π°Π½Π΅ Log, която, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ старата, ΠΌΠΎΠΆΠ΅ Π΄Π° насочва ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° към Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ ΠΈ Π΄Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° Ρ‚Π΅Π·ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π² зависимост ΠΎΡ‚ "ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°".

  • Π ΡƒΠ΄ΠΈΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ свСта Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° C, Errno ΠΈ WinError, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ с Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, Π²Π΅Ρ‡Π΅ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π½Π° Π·Π°Π΄Π΅Π½ ΠΏΠ»Π°Π½ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° йСрархията Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π° IO::Error (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ забранява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Errno).

  • Автоматичното добавянС Π½Π° else nil Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case/when/elseΠ΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΎ, Π·Π° Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ случайното пропусканС ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅ when ΠΏΡ€ΠΈ ΠΌΠ°Ρ‡ΠΈΠ½Π³ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ случаи ΠΊΠ°Ρ‚ΠΎ enum ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΡ‚ Union. ВоСст, ΠΏΠΎ-просто ΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚Π°ΠΊΡŠΠ² ΠΊΠΎΠ΄ Π²Π΅Ρ‡Π΅ няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ when (when Char) ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½Π°Ρ‡Π΅-ΠΊΠ»ΠΎΠ½:

a = 1 || β€˜x’ || "foo"
case a
when Int32
# …
when String
# …
end

  • ΠžΠΏΡ†ΠΈΡΡ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° disable_overflow Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π°. Π—Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ &+, &-, &*.

  • Array#fill сСга Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° замСнянСто Π½Π° Π½Π΅ΠΊΠ°Π΄ΡŠΡ€Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» с проста memset;

  • ΠœΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΡŠΡ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ (ΠΈΠ»ΠΈ ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅Ρ‚Π΅), мистично Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈ shards, сСга ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° задоволяванС Π½Π° зависимоститС Molinillo, видян Π² CocoaPods (Swift) ΠΈ Builder (Ruby).

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° LLVM 10, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π±ΠΈ трябвало Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ извСстСн Ρ€ΡŠΡΡ‚ Π² производитСлността, стабилността ΠΈ Ρ‚.Π½.

… ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈ, ΠΏΠΎ ΠΌΠΎΠ΅ субСктивно ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΈ подобрСния.

Π‘Π»Π΅Π΄Π²Π° Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Crystal Π΅ Π΅Π·ΠΈΠΊ, построСн Π½Π° LLVM, ΠΊΠΎΠΉΡ‚ΠΎ позволява написванСто Π½Π° прилоТСния понякога ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, ΠΏΠΎ-просто ΠΈ ΠΏΠΎ-Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΈ "братя", ΠΈ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π°Π²Π° Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° доста Π±ΡŠΡ€Π· Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ». И Π² контСкста Π½Π° Golang, Ρ‚ΠΎΠΉ сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π΅Π½ ООП, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ прост ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ синтаксис. По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Nim, Π½ΠΎ Π΅ явно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ към практичСското ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ "Ρ‚ΡƒΠΊ ΠΈ сСга", Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° с мноТСство Π΄ΠΎΠ±Ρ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΈ ΠΈ качСствСни инструмСнти Π² своя API-арсСнал, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ стабилни.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster