V Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄

ΠŸΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π² катСгорията ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π·Π° Π΅Π·ΠΈΠΊ V. V Π΅ статично Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ машинно ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ сС фокусира Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΏΠΎ-лСсна Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅. Код Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ инструмСнти Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT.

Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° V Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Go, заимствайки някои конструкции ΠΎΡ‚ Oberon, Rust ΠΈ Swift. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ максимално опростСн ΠΈ спорСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 30 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π·Π° Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ основитС докумСнтация. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΅Π·ΠΈΠΊΡŠΡ‚ остава доста ΠΌΠΎΡ‰Π΅Π½ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡ‰ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π»ΠΈΡ‡Π½ΠΈ са Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° 2D/3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, създаванС Π½Π° GUI ΠΈ ΡƒΠ΅Π± прилоТСния).

Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ² Π΅Π·ΠΈΠΊ бСшС ΠΏΡ€ΠΎΠ²ΠΎΠΊΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС постигнС комбинация ΠΎΡ‚ простотата Π½Π° синтаксиса Π½Π° Π΅Π·ΠΈΠΊΠ° Go, скоростта Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅, Π»Π΅ΠΊΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅, прСносимостта ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π΅ΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΊΠΎΠ΄Π° с производитСлността Π½Π° C/C++, сигурността Π½Π° Rust ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° машинСн ΠΊΠΎΠ΄ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° компилация Π½Π° Zig. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° исках Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΈ Π±ΡŠΡ€Π· ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· външни зависимости, Π΄Π° сС ΠΎΡ‚ΡŠΡ€Π²Π΅ ΠΎΡ‚ глобалния ΠΎΠ±Ρ…Π²Π°Ρ‚ (Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ) ΠΈ Π΄Π° прСдостави Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° β€žΠ³ΠΎΡ€Π΅Ρ‰ΠΎβ€œ ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°.

Π’ сравнСниС с C++, новият Π΅Π·ΠΈΠΊ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-прост, осигурява ΠΏΠΎ-Π±ΡŠΡ€Π·Π° скорост Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ (Π΄ΠΎ 400 ΠΏΡŠΡ‚ΠΈ), ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π° бСзопасни Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, няма ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ прСдоставя Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ инструмСнти Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ сравнСниС с Python, V Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·, ΠΏΠΎ-прост, ΠΏΠΎ-бСзопасСн ΠΈ ΠΏΠΎ-лСсСн Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π’ сравнСниС с Go, V няма Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, няма Π½ΡƒΠ»ΠΈ, всички стойности Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ, всички ΠΎΠ±Π΅ΠΊΡ‚ΠΈ са Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС само Π΅Π΄ΠΈΠ½ Ρ‚ΠΈΠΏ присвояванС (β€ža := 0β€œ), Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Π° прСносимост ΠΎΡ‚ C, липсата Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈ, ΠΏΠΎ-Π±ΡŠΡ€Π·Π° сСриализация, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ (β€œprintln('$foo: $bar.baz')”).

fn main() {
области := ['game', 'web', 'tools', 'science', 'systems', 'GUI', 'mobile'] a := 10
Π°ΠΊΠΎ Π΅ вярно {
Π΄ΠΎ := 20
}
Π·Π° ΠΏΠ»ΠΎΡ‰ Π² области {
println('Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, $area Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ!')
}
}

Π₯арактСристики Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  • ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΈ Π±ΡŠΡ€Π· ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Π΅Π΄Π½ΠΎ със стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 400 KB. Високата скорост Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ сС постига Ρ‡Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° машинСн ΠΊΠΎΠ΄ ΠΈ модулност. Бкоростта Π½Π° компилация Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 1.2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° ΠΊΠΎΠ΄ Π² сСкунда Π½Π° Π΅Π΄Π½ΠΎ процСсорно ядро ​​(отбСлязва сС, Ρ‡Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° V ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° C, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ скоростта ΠΏΠ°Π΄Π° Π΄ΠΎ 100 хиляди Ρ€Π΅Π΄Π° Π² сСкунда). БамосглобяванСто Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Π΅ написан Π½Π° Π΅Π·ΠΈΠΊΠ° V (ΠΈΠΌΠ° ΠΈ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° вСрсия Π² Go), ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 0.4 сСкунди. Π”ΠΎ края Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° сС ΠΎΡ‡Π°ΠΊΠ²Π° Π΄Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ намалят Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎ 0.15 сСкунди. БъдСйки ΠΏΠΎ тСстовСтС, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, самосглобяванСто Π½Π° Go изисква 512 MB дисково пространство ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°, Rust изисква 30 GB ΠΈ 45 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, GCC - 8 GB ΠΈ 50 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Clang - 90 GB ΠΈ 25 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ,
    Swift - 70 GB ΠΈ 90 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ;

  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π±Π΅Π· външни зависимости. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° изпълнимия Ρ„Π°ΠΉΠ» Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ http ΡΡŠΡ€Π²ΡŠΡ€ слСд сглобяванС Π΅ само 65 KB;
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ прилоТСния Π΅ Π½Π° Π½ΠΈΠ²ΠΎ асСмблиранС Π½Π° C ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ;
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ взаимодСйствиС с C ΠΊΠΎΠ΄, Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° V ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° V ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΠΈΠΊΠ°Π½ Π½Π° всСки Π΅Π·ΠΈΠΊ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с C;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° C/C++ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² прСдставянС Π½Π° Π΅Π·ΠΈΠΊΠ° V. Π—Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° парсСр ΠΎΡ‚ Clang. ВсС ΠΎΡ‰Π΅ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° стандарта C, Π½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π° Π²Π΅Ρ‡Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° V DOOM. ΠŸΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡ΡŠΡ‚ Π½Π° C++ всС ΠΎΡ‰Π΅ Π΅ Π½Π° Ρ€Π°Π½Π΅Π½ Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°;
  • Π’Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° сСриализация, Π±Π΅Π· ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС;
  • ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°;
  • Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° бСзопасност: Π±Π΅Π· NULL, Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ стойности ΠΈ ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. Π’Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΎΠ±Ρ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Generic). ΠžΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ структури, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС промСнят ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅;
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° β€žΠ³ΠΎΡ€Π΅Ρ‰ΠΎβ€œ ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ (отразяванС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π° Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅);
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° осигуряванС Π½Π° многопоточност. Π’ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Π΅Π·ΠΈΠΊΠ° Go, конструкция ΠΊΠ°Ρ‚ΠΎ β€žrun foo()β€œ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° стартиранС Π½Π° Π½ΠΎΠ²Π° нишка Π·Π° изпълнСниС (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° β€žgo foo()β€œ). Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° goroutines ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° нишки;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Windows, macOS, Linux, *BSD. Π”ΠΎ края Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Android ΠΈ iOS;
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ (ΠΊΠ°ΠΊΡ‚ΠΎ Π² Rust), Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈ;
  • НаличиС Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ GDI+/Cocoa ΠΈ OpenGL Π·Π° изобразяванС (ΠΏΠ»Π°Π½ΠΈΡ€Π° сС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° DirectX, Vulkan ΠΈ Metal API). Има инструмСнти Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с 3D ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, скСлСтна анимация ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π°;
  • НаличиС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ интСрфСйси с дизайнСрски Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, СстСствСни Π·Π° всяка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма. Windows ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° WinAPI/GDI+, macOS ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Cocoa, Π° Linux ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° собствСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄ΠΆΠ°Π΄ΠΆΠΈ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π’ΠΎΠ»Ρ‚ β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° Slack, Skype, Gmail, Twitter ΠΈ Facebook;

    ΠŸΠ»Π°Π½ΡŠΡ‚ Π΅ Π΄Π° сС създадС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° интСрфСйс, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Delphi, Π΄Π° сС прСдостави Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ API, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° SwiftUI ΠΈ React Native, ΠΈ Π΄Π° сС осигури ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° създаванС Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ прилоТСния Π·Π° iOS ΠΈ Android;

    V Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄

  • НаличиС Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΡƒΠ΅Π± Ρ€Π°ΠΌΠΊΠ°, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° създаванС Π½Π° уСбсайт, Ρ„ΠΎΡ€ΡƒΠΌ ΠΈ Π±Π»ΠΎΠ³ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° HTML шаблони, Π±Π΅Π· Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΏΡ€ΠΈ всяка заявка;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΡ€ΡŠΡΡ‚ΠΎΡΠ°Π½Π° компилация. Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ изпълнимия Ρ„Π°ΠΉΠ» Π·Π° Windows, просто стартирайтС β€žv -os windowsβ€œ, Π° Π·Π° Linux – β€žv -os linuxβ€œ (ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΊΡ€ΡŠΡΡ‚ΠΎΡΠ°Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π·Π° macOS сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΠΎ-късно). ΠšΡ€ΡŠΡΡ‚ΠΎΡΠ°Π½Π°Ρ‚Π° компилация ΡΡŠΡ‰ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ прилоТСния;
  • Π’Π³Ρ€Π°Π΄Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° зависимости, ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ инструмСнти Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅. Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, просто стартирайтС β€žv.β€œ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ make ΠΈΠ»ΠΈ външни ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π—Π° Π΄Π° инсталиратС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, просто стартирайтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žv get sqliteβ€œ;
  • НаличиС Π½Π° плъгини Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° V Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ VS кодСкс ΠΈ Vim.

Π΄ΠΈΠ·Π°ΠΉΠ½ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½ общност с ΡΠΊΠ΅ΠΏΡ‚ΠΈΡ†ΠΈΠ·ΡŠΠΌ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ публикуваният ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π½Π΅ всички Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ всС ΠΎΡ‰Π΅ са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ голяма Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° изпълнСниС Π½Π° всички ΠΏΠ»Π°Π½ΠΎΠ²Π΅.
ОсвСн Ρ‚ΠΎΠ²Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ имашС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ счупСн ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с асСмблиранСто ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ достигнал Π΅Ρ‚Π°ΠΏΠ°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° забСлязват Π—Π°ΠΊΠΎΠ½ Π½Π° ΠŸΠ°Ρ€Π΅Ρ‚ΠΎ, спорСд ΠΊΠΎΠΉΡ‚ΠΎ 20% ΠΎΡ‚ усилията ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ 80% ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°, Π° останалитС 80% ΠΎΡ‚ усилията ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ само 20% ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

ΠœΠ΅ΠΆΠ΄ΡƒΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° прослСдяванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π° Project V Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Π»Π° ΠΎΠΊΠΎΠ»ΠΎ 10 ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ дСмонстрация ΠΊΠΎΠ΄ с ниско качСство, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° C-вмъквания ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ Π½Π° дирСкторията Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° rm Ρ‡Ρ€Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ os.system("rm -rf $path"). Автор Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠ°Π·Π°Ρ‡Π΅ Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΠ» само ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π°, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Ρ‚Ρ€ΠΎΠ» (с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°Ρ‰ΠΈ основатСлността Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π°, остава Π² история Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅).

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€