V á syntax ááẠOberoná Rust ááŸáá·áº Swift ááá¯á·á០áááºáá±á¬ááºáá¯á¶á¡áá»áá¯á·ááᯠááŸá¬ážáááºážááŒá®áž Go ááŸáá·áº á¡ááœááºáááºáá°áááºá áá¬áá¬á
áá¬ážááᯠá¡áááºááá¯ááºáá¯á¶áž ááá¯ážááŸááºážá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážááŒá®áž ááŒá¯á
á¯áá°áá¡ááá¯á¡áá áá±á·áá¬ááŸá¯ áááá
Ạ30 ááẠá¡ááŒá±áá¶áá»á¬ážááᯠáá±á·áá¬ááẠáá¯á¶áá±á¬ááºáá«áááºá
Go language á ááá¯ážááŸááºážáá±á¬ syntax á á á¯á ááºážááŸá¯ááŒááºááŸá¯ááºáž á ááŒáá¯ááºáá°áá¯ááºáá±á¬ááºáááœááºáá°ááŸá¯á C/C++ á á áœááºážáá±á¬ááºáááºááŒáá·áº áá¯ááºá áááºáá±á¬ááºáááœááºáá°ááŸá¯ááŸáá·áº ááááºážááááºážááá¯ááºááŸá¯á Rust ááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážááá¯á· áá±á«ááºážá ááºáá¬ážáá±á¬ áá¬áá¬á áá¬ážá¡áá áºáá áºáᯠáááºáá®ážááŒááºážááᯠáááŸáááá¯áá±á¬ááá¹áááŒá±á¬áá·áº ááŸá¯á¶á·áá±á¬áºáá¶ááá«áááºá Zig compilation á¡ááá·áºááœáẠá ááºáá¯ááºáá»á¬ážá áá»áá¯ážáááºá ááŒááºáááŸá®ááá¯ááŸá¯áááŸááá² á¡áá¯ááºáá¯ááºááá¯ááºáá±á¬ áá»á áºáá áºááŒá®áž áá»ááºááŒááºáá±á¬ compiler áá áºáá¯ááá¯áááºáž ááá°ááá¯áááºá ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáááºááẠ(global variables) áá»á¬ážááᯠáááºááŸá¬ážááŒá®áž áá¯ááºááᯠ"hot" ááŒááºáááºááá¯ááºááá·áº á áœááºážáááºááᯠááŒáá·áºáááºážáá±ážáá»ááºáá«áááºá
C++ ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áá¬áá¬á áá¬ážá¡áá áºááẠáááááá¬áá¬ááá¯ááá¯ááá¯ážááŸááºážáááºá ááá¯ááá¯ááŒááºáááºáá±á¬á á¯á ááºážááŸá¯á¡ááŒááºááŸá¯ááºáž (á¡á 400 á¡áá) áá±ážá áœááºážáááºá áá±ážáááºážáá±á¬ áááá¯ááááºážáááºážáááºážááá¬áá»á¬ážááᯠáá»áá·áºáá¯á¶ážáááºá áááºááŸááºááá¬ážáá±á¬ á¡áá°á¡áá»áá·áºáá»á¬ážááŸáá·áº ááŒá¿áá¬áá»á¬ážáááºážáá¬á ááŒáá¯ááºáá°áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáááºáááºáá¬ážááá·áºáááááá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá Python ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á V ááẠááá¯ááŒááºáááºá ááá¯ááá¯ážááŸááºážáááºá ááá¯áá¯á¶ááŒá¯á¶áááºá ááá¯ááááºážááááºážááá¯ááºáááºá Go ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á V ááœáẠááá¹áá¬áá¯á¶ážááá¯ááºáᬠááááºážááŸááºáá»á¬ážáááŸáá nulls áá»á¬ážáááŸááá«á ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬áááºááá¯ážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááŒá²áááºážáááºááŸááºáá¬ážááááºá á¡áá¬ááá¹áá¯á¡á¬ážáá¯á¶ážááẠáá¯á¶áá±á¡á¬ážááŒáá·áº áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬á assignment á¡áá»áá¯ážá¡á á¬ážáá áºáá»áá¯ážáááºážááá¯áᬠáá¶á·ááá¯ážáá¬ážááẠ(âa := 0â)á áááááá¬áá¬ááá¯áá»á áºáá áºáááºá runtime ááŸáá·áº áááŸááá¬áá±á¬ executable ááá¯ááºáá»á¬ážá á¡ááœááºá¡á á¬ážá C á០ááá¯ááºááá¯ááºáááºáá±á¬ááºáááœááºáá°ááŸá¯ááŸááá±ááŒááºážá á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°áááŸáááŒááºážá ááá¯ááá¯ááŒááºáááºáá±á¬ á¡ááŸááºá ááºááŒá¯áá¯ááºááŒááºážá strings áá»á¬ážááᯠáá±á«ááºážá ááºááá¯ááºááŸá¯ (âprintln('$foo: $bar.baz')â)á
fn áááºá() {
áááºáááºáá»á¬áž := ['ááááºáž'á 'áááº'á 'áááááá¬áá»á¬áž'á 'áááá¹áá¶'á 'á
áá
áºáá»á¬áž'á 'GUI'á 'ááá¯ááá¯ááºáž'] a := 10
ááŸááºáá»áŸáẠ{
to := á
}
áááºááŒá±áá±ááá»á¬ážá¡ááœáẠ{
println('áááºá¹ááá¬áá«á $area developers!')
}
}
ááá±á¬áá»ááºá¡ááºá¹áá«áááºáá»á¬áž-
- 400 KB ááá·áºá¡áá áá±áá¬áá°ááá·áº á
á¶á
á¬ááŒáá·áºááá¯ááºááŸáá·áº áá±á«ááºážá
ááºáá¬ážáá±á¬ áá»á
áºáá»á
áºáá»á
áºáá»á
ẠááŒááºáááºáá±á¬ compiler ááŒá
áºáááºá ááŒáá·áºáá¬ážáá±á¬á
á¯á
ááºážááŸá¯ááŒááºááŸá¯ááºážááᯠá
ááºáá¯ááºááŸáá·áº áá±á¬áºáá»á°áá¬á
áá
áºááá¯ááºááá¯ááºáá¯ááºáá¯ááºááŒááºážááŒáá·áº áááŸááááºá á
á¯á
ááºážááŸá¯á¡ááŒááºááŸá¯ááºážááẠCPU core áá
áºáá¯ááœááºáá
áºá
áá¹ááá·áºáá»áŸáẠáá¯ááºááá¯ááºážáá±á«ááºáž 1.2 áááºážááá·áº (áááºáááºáá±á
áẠV ááẠC ááá¯áá¯á¶ážááá¯ááºááŒá®ážá ááŒááºááŸá¯ááºážááẠáá
áºá
áá¹ááá·áºáá»áŸáẠááá¯ááºáž 100 ááá¯á·áá»áááºážááœá¬ážáááºááᯠáááááŒá¯áááááº)á V language ááŒáá·áºáá±ážáá¬ážáá±á¬ compiler (Go ááœááºááá¯ážáá¬ážááá·áºáá¬ážááŸááºážáááºážáá«ááŸááááº)á á
á¯á
ááºážááŸá¯ááŸá¬ 0.4 á
áá¹ááá·áºááá·áº ááŒá¬áá«áááºá ááŸá
áºáá¯ááºááœááºá áááºáá±á¬ááºáž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááŸá¯áá»á¬áž ááŒá®ážá
á®ážááẠáá»áŸá±á¬áºááá·áºáá¬ážááŒá®ážá áááºážááẠcompiler áááºáá±á¬ááºáá»áááºááᯠ0.15 á
áá¹ááá·áºá¡áá áá»áŸá±á¬á·áá»ááá¯ááºáááºááŒá
áºáááºá áá±á¬á·ááºáá²áá±ážáá¬ážáá°á០ááŒá¯áá¯ááºáá±á¬ á
ááºážáááºááŸá¯áá»á¬ážá¡á Go á ááá¯ááºááá¯áẠáááºáááºááŸá¯ááẠáá
áºááºáá±áᬠ512 MB ááá¯á¡ááºááŒá®áž áá
áºáááá
áºááœá²á¡ááœááºáž áá¯ááºáá±á¬ááºááá¯ááºááŒá®áž Rust ááẠ30 GB ááŸáá·áº 45 áááá
áºá GCC - 8 GB ááŸáá·áº 50 áááá
áºá Clang - 90 GB ááŸáá·áº áá
áááá
áºá
Swift - 70 GB ááŸáá·áº 90 áááá áº; - áááá¯ááááºáá»á¬ážááᯠááŒááºáááŸá®ááá¯ááŸá¯áááŸááá² áááºáááºááá¯ááºáá±á¬ááá¯ááºáá»á¬ážá¡ááŒá Ạá á¯á ááºážáá¬ážáááºá áááºáááºááŒá®ážáá±á¬áẠááá¯ážááŸááºážáá±á¬ http server á executable file size ááẠ65 KB áá¬ááŸááááºá
- á á¯á ááºážáá¬ážáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá á áœááºážáá±á¬ááºáááºááẠC áááá¯ááááºáá»á¬ážá á ááºážáá±ážááœá²áá»á¬áž á¡ááá·áºááœááºááŒá áºáááºá
- áááºáá±á¬ááºážáááá¯áá² C áá¯ááºááŸáá·áº áá»á±á¬ááœá±á·á áœá¬ á¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºááá¯ááºááŸá¯á C áá¬áá¬á áá¬ážááŸá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠV áá¬áá¬á áá¬ážááŸá áá¯ááºá០áá±á«áºááá¯ááá¯ááºááŒá®áž á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áº V áá¬áá¬á áá¬ážááŸá áá¯ááºááᯠC ááŸáá·áº ááá¯ááºáááºáá±á¬ áááºááá·áºáá¬áá¬á áá¬ážááŒáá·áºáááᯠáá±á«áºááá¯ááá¯ááºáááºá
- C/C++ ááá±á¬áá»ááºáá»á¬ážááᯠV áá¬áá¬á
áá¬ážááŒáá·áº ááá¯ááºá
á¬ážááŒá¯á¡ááŒá
Ạáá¬áá¬ááŒááºááá¯ááŒááºážá¡ááœáẠáá¶á·ááá¯ážáá°áá®áá«áááºá Clang á០ááœá²ááŒááºážá
áááºááŒá¬áá»ááºááᯠáá¬áá¬ááŒááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá C á
á¶ááŸá¯ááºážá á¡ááºá¹áá«áááºá¡á¬ážáá¯á¶ážááᯠááá¶á·ááá¯ážááá±ážáá±á¬áºáááºáž áá¬áá¬ááŒááºáá°á áááºááŸááá¯ááºáá±á¬ááºááá¯ááºá
áœááºážáá»á¬ážááẠáá¯á¶áá±á¬ááºáá±ááŒá®ááŒá
áºáááºá
áá¬áá¬ááŒááºáá»áẠV ááááºáž DOOM ááá¬áá¬á áá¬ážááŒáá·áºá C++ áá¬áá¬ááŒááºááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á á¡á á±á¬ááá¯ááºážá¡ááá·áºááœáẠááŸááá±áá±ážáááºá - Runtime ááŸáá·áº áá»áááºáááºááŒááºážáááŸááá² Built-in serialization áá¶á·ááá¯ážááŸá¯á
- ááŸááºáá¬ááºááœá²áá±ááŒááºáž áá¯ááºáááºážáá»á¬ážááᯠáá»áŸá±á¬á·áá»ááŒááºážá
- áá±ážáááºážááŸá¯ááᯠáá±áá»á¬á á±ááŒááºáž- NULL áááŸááá«á ááá¹áá¬áá¯á¶ážááá¯ááºáᬠááááºážááŸááºáá»á¬ážá ááááºááŸááºáá¬ážáá±á¬ áááºááá¯ážáá»á¬ážááŸáá·áº ááœá²ááŒá¬ážáá±á¬ á¡áááá¹áá«ááºááŒááºááá¯áá»ááºá Built-in ááŒá¬ážáᶠáá»á±á¬áºááœááºá á áºáá±ážááŒááºáž áá±áá¯áá»áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž (Generic) á¡ááœáẠáá¶á·ááá¯ážááŸá¯á áá¯á¶ááŸááºá¡á¬ážááŒáá·áº áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážááŸáá·áº ááœá²á·á ááºážáá¯á¶áá»á¬ážá
- âhotâ áá¯ááºááŒááºáááºááŒááºážá ááŒá áºááá¯ááºááŒá± (ááŒááºáááºáá±á«ááºážá ááºážááŒááºážáááŒá¯áá² áá¯ááºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáááºá á±áááº);
- Multithreading ááá¯áá±áá»á¬á á±áááºá¡ááœááºáááááá¬áá»á¬ážá Go language ááœááºáá²á·ááá¯á·áááºá "run foo()" áá²á·ááá¯á·áá±á¬ áááºáá±á¬ááºááŸá¯á¡áá áºáá áºáá¯ááᯠá áááºááẠ("go foo()" ááŸáá·áº áááºáá°áááº) ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá á¡áá¬áááºááœááºá gooutines áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº thread scheduler ááᯠá á®á ááºáá¬ážáá«áááºá
- Windowsá macOSá Linuxá *BSD áááºáááºááŸá¯á áá áºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á áááºážááẠááá¯ááŸá áºáá¯ááºááœáẠAndroid ááŸáá·áº iOS á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááá·áºááœááºážááẠá á®á ááºáá¬ážáááºá
- á¡ááŸáá¯ááºá á¯áá±á¬ááºážááá·áºá¡áá»ááẠ(Rust ááœááºáá²á·ááá¯á·) á¡ááŸáá¯ááºá á¯áá±á¬ááºážááá·áºá¡áá»áááºá ááŸááºáá¬ááºá á®áá¶ááá·áºááœá²ááŸá¯á
- Rendering á¡ááœáẠGDI+/Cocoa ááŸáá·áº OpenGL ááá¯á¡áá¯á¶ážááŒá¯á ááááºáá áºá¡ááœááºá¡ááœáẠmulti-platform toolkit ááááŸáááá¯ááºááŸá¯ (DirectXá Vulkan ááŸáá·áº Metal APIs áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž á á®á ááºáá¬ážáááº)á 3D á¡áá¬ááá¹áá¯áá»á¬ážá á¡ááá¯ážáá¬ááœááºážááŸáá·áº áááºááá¬ááááºážáá»á¯ááºááŸá¯ááá¯á·ááŒáá·áº áá¯ááºáá±á¬ááºááẠáááááá¬áá»á¬áž ááŸááá«áááºá
- OS áá
áºáá¯á
á®ááŸá áá®ááá¯ááºážááŒááºá
ááºáá»á¬ážááŒáá·áº ááááºáá
Ạá¡ááºáá¬áá±á·á
áºáá»á¬ážááᯠáááºáá®ážáááºá¡ááœáẠá
á¬ááŒáá·áºááá¯ááºáá
áºáᯠáááŸáááá¯ááºááŒááºážá Windows ááẠWinAPI/GDI+ ááá¯á¡áá¯á¶ážááŒá¯áááºá macOS ááẠCocoa ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž Linux ááẠáááºážáááá¯ááºááá¯ááºáá
áºáá»ááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áááºá á
á¬ááŒáá·áºááá¯ááºááᯠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážááœáẠá¡áá¯á¶ážááŒá¯áá±ááŒá®ááŒá
áºáááºá
ááá¯á· - Slacká Skypeá Gmailá Twitter ááŸáá·áº Facebook á¡ááœáẠclient;á¡á á®á¡á ááºááẠDelphi-like interface áá®ááá¯ááºážá¡ááá®áá±ážááŸááºážááá¯áááºáá®ážáááºááŒá áºááŒá®ážá SwiftUI ááŸáá·áº React Native ááá¯á·ááŸáá·áºáááºáá°áá±á¬ ááŒá±ááŒá¬ API ááá¯áá±ážáᬠiOS ááŸáá·áº Android á¡ááœáẠááá¯ááá¯ááºážá¡ááºááá®áá±ážááŸááºážáá»á¬ážáááºáá®ážáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯áá±ážáááºááŒá áºáááºá
- ááá±á¬áá»áẠdeveloper áá»á¬ážá¡ááœáẠáááºááá¯ááºá ááá¯áááºááŸáá·áº ááá±á¬á·ááºááᯠáááºáá®ážááẠá¡áá¯á¶ážááŒá¯ááá·áº áááºáááºáá¬ážáá±á¬ áááºáá±á¬ááºáá áºáᯠáááŸáááá¯ááºááŒááºážá áá±á¬ááºážááá¯áá»ááºáá áºáá¯á á®ááœáẠáááºážááá¯á·ááᯠáá¯ááºáá±á¬ááºááŒááºážáááŸááá² HTML ááá°áá¬áá»á¬ážááᯠááŒáá¯áááºá á¯á ááºážááŸá¯ááᯠáá¶á·ááá¯ážáá¬ážáááºá
- Cross Compilation áá¶á·ááá¯ážááŸá¯á Windows á¡ááœáẠexecutable file ááá¯áááºáá±á¬ááºáááºá "v -os windows" ááŸáá·áº Linux á¡ááœáẠ- "v -os linux" ááá¯ááœáá·áºááá¯ááºáá« (macOS á¡ááœáẠcross-compilation support ááᯠáá±á¬ááºááá¯ááºážááœáẠáá»áŸá±á¬áºááá·áºáá¬ážáááº)á Cross-compilation ááẠgraphical applications áá»á¬ážá¡ááœááºáááºáž á¡áá¯ááºáá¯ááºáá«áááºá
- Built-in ááŸá®ááá¯ááŸá¯áááºáá±áá»á¬á áááºáá±á·áá»áºáááºáá±áá»á¬ááŸáá·áº áááºáá±á¬ááºáááááá¬áá»á¬ážá áááá¯ááááºááá¯áááºáá±á¬ááºááẠmake ááá¯á·ááá¯áẠááŒááºáá¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá² âvâ ááᯠrun ááá¯ááºáá«á áá±á¬ááºáááºá á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠááá·áºááœááºážáááºá á¥ááá¬á âv get sqliteâ ááᯠrun ááá¯ááºáá¯á¶áá«áá²á
- áááºážááŒááºáá°áá»á¬ážááŸá V áá¬áá¬á
áá¬ážááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠááááºá¡ááºáá»á¬áž áááŸáááá¯ááºááŒááºážá
Code ááᯠVS ОVim .
áá¯á¶á
á¶
ááá¯á·á¡ááŒáẠá¡á
ááá¯ááºážááœáẠááá¯ááŸá±á¬ááºáá¬ážááŸááá²á·áááºá
á€á¡áá±á¬á¡ááœááºážá Project V á bug tracker ááẠááá¯á·á
Ạáá áá¯ááá·áºááᯠáááºááŸá¬ážáá²á·áááºá
source: opennet.ru