V์ ๊ตฌ๋ฌธ์ Go์ ๋งค์ฐ ์ ์ฌํ๋ฉฐ Oberon, Rust ๋ฐ Swift์ ์ผ๋ถ ๊ตฌ์ฑ์ ์ฐจ์ฉํฉ๋๋ค. ์ธ์ด๋ ์ต๋ํ ๋จ์ํํ์ผ๋ฉฐ, ๊ฐ๋ฐ์์ ๋ฐ๋ฅด๋ฉด 30๋ถ๋ง ๊ณต๋ถํ๋ฉด ๊ธฐ๋ณธ์ ์ตํ๊ธฐ์ ์ถฉ๋ถํ๋ค๊ณ ํฉ๋๋ค.
์๋ก์ด ์ธ์ด์ ํ์์ Go ์ธ์ด์ ๊ตฌ๋ฌธ ๋จ์์ฑ, ์ปดํ์ผ ์๋, ์์ ๋ณ๋ ฌํ์ ์ฉ์ด์ฑ, ์ฝ๋์ ์ด์์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ C/C++์ ์ฑ๋ฅ, Rust์ ๋ณด์ ๋ฐ ๋ณด์๊ณผ ๊ฒฐํฉํ๋ ค๋ ์๊ตฌ์์ ์ด๋ฐ๋์์ต๋๋ค. Zig ์ปดํ์ผ ๋จ๊ณ์์ ๊ธฐ๊ณ์ด ์ฝ๋ ์์ฑ. ๋ํ ์ธ๋ถ ์ข ์์ฑ ์์ด ์๋ํ๊ณ , ์ ์ญ ๋ฒ์(์ ์ญ ๋ณ์)๋ฅผ ์ ๊ฑฐํ๊ณ , ์ฝ๋๋ฅผ "ํซ" ๋ค์ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๋ ์๊ณ ๋น ๋ฅธ ์ปดํ์ผ๋ฌ๋ฅผ ์ํ์ต๋๋ค.
C++์ ๋นํด ์๋ก์ด ์ธ์ด๋ ํจ์ฌ ๋ ๊ฐ๋จํ๊ณ , ๋ ๋น ๋ฅธ ์ปดํ์ผ ์๋(์ต๋ 400๋ฐฐ)๋ฅผ ์ ๊ณตํ๊ณ , ์์ ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์คํํ๊ณ , ์ ์๋์ง ์์ ๋์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ, ์์ ๋ณ๋ ฌํ๋ฅผ ์ํ ๋ด์ฅ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Python์ ๋นํด V๋ ๋ ๋น ๋ฅด๊ณ , ๋ ๊ฐ๋จํ๊ณ , ๋ ์์ ํ๊ณ , ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ ์ฝ์ต๋๋ค. Go์ ๋นํด V์๋ ์ ์ญ ๋ณ์๋ ์๊ณ null๋ ์๊ณ ๋ชจ๋ ๋ณ์ ๊ฐ์ ํญ์ ์ ์๋์ด์ผ ํ๋ฉฐ ๋ชจ๋ ๊ฐ์ฒด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ์ด๋ฉฐ ํ ๊ฐ์ง ์ ํ์ ํ ๋น๋ง ์ง์๋ฉ๋๋ค(โa := 0โ). ๋ฐํ์ ๋ฐ ๊ฒฐ๊ณผ ์คํ ํ์ผ์ ํฌ๊ธฐ, C์์ ์ง์ ์ด์ ๊ฐ๋ฅ ์ฌ๋ถ, ๊ฐ๋น์ง ์์ง๊ธฐ ์์, ๋ ๋น ๋ฅธ ์ง๋ ฌํ, ๋ฌธ์์ด ๋ณด๊ฐ ๊ธฐ๋ฅ(โprintln('$foo: $bar.baz')โ).
fn ๋ฉ์ธ() {
์์ญ := ['๊ฒ์', '์น', '๋๊ตฌ', '๊ณผํ', '์์คํ
', 'GUI', '๋ชจ๋ฐ์ผ'] a := 10
๋ง์ฝ ์ฌ์ค์ด๋ผ๋ฉด {
์ := 20
}
์ง์ญ์ ์ง์ญ์ ๋ํด {
println('์๋
ํ์ธ์, $area ๊ฐ๋ฐ์ ์ฌ๋ฌ๋ถ!')
}
}
ํ๋ก์ ํธ์ ํน์ง:
- ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฝ 400KB๋ฅผ ์ฐจ์งํ๋ ์ปดํฉํธํ๊ณ ๋น ๋ฅธ ์ปดํ์ผ๋ฌ์
๋๋ค. ๊ธฐ๊ณ์ด ์ฝ๋์ ์ง์ ์์ฑ๊ณผ ๋ชจ๋ํ๋ฅผ ํตํด ๋์ ์ปดํ์ผ ์๋๋ฅผ ๋ฌ์ฑํฉ๋๋ค. ์ปดํ์ผ ์๋๋ ํ๋์ CPU ์ฝ์ด์์ ์ด๋น ์ฝ 1.2๋ง ๋ผ์ธ์ ์ฝ๋์
๋๋ค(V ์์
์ค์ C๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด ์๋๊ฐ ์ด๋น 100๋ง ๋ผ์ธ์ผ๋ก ๋จ์ด์ง๋๋ค). V ์ธ์ด(Go์๋ ์ฐธ์กฐ ๋ฒ์ ๋ ์์)๋ก ์์ฑ๋ ์ปดํ์ผ๋ฌ์ ์์ฒด ์กฐ๋ฆฝ์๋ ์ฝ 0.4์ด๊ฐ ์์๋ฉ๋๋ค. ์ฐ๋ง๊น์ง ์ถ๊ฐ ์ต์ ํ ์์
์ด ์๋ฃ๋์ด ์ปดํ์ผ๋ฌ ๋น๋ ์๊ฐ์ด 0.15์ด๋ก ๋จ์ถ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ํํ ํ
์คํธ์ ๋ฐ๋ฅด๋ฉด Go์ ์์ฒด ์กฐ๋ฆฝ์๋ 512MB์ ๋์คํฌ ๊ณต๊ฐ์ด ํ์ํ๊ณ 30๋ถ 45์ด ๋ง์ ์คํ๋๋ฉฐ Rust์๋ 8GB์ 50๋ถ์ด ํ์ํ๊ณ GCC๋ 90GB์ 25๋ถ, Clang์ XNUMXGB ๋ฐ XNUMX๋ถ,
Swift - 70GB, 90๋ถ; - ํ๋ก๊ทธ๋จ์ ์ธ๋ถ ์ข ์์ฑ ์์ด ์คํ ํ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค. ์กฐ๋ฆฝ ํ ๊ฐ๋จํ http ์๋ฒ์ ์คํ ํ์ผ ํฌ๊ธฐ๋ 65KB์ ๋ถ๊ณผํฉ๋๋ค.
- ์ปดํ์ผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ C ํ๋ก๊ทธ๋จ ์ด์ ๋ธ๋ฆฌ ์์ค์ ๋๋ค.
- ์ถ๊ฐ ์ค๋ฒํค๋ ์์ด C ์ฝ๋์ ์ํํ๊ฒ ์ํธ ์์ฉํ๋ ๊ธฐ๋ฅ์ ๋๋ค. C ์ธ์ด์ ํจ์๋ V ์ธ์ด ์ฝ๋์์ ํธ์ถํ ์ ์์ผ๋ฉฐ, ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. V ์ธ์ด ์ฝ๋๋ C์ ํธํ๋๋ ๋ชจ๋ ์ธ์ด๋ก ํธ์ถํ ์ ์์ต๋๋ค.
- C/C++ ํ๋ก์ ํธ๋ฅผ V ์ธ์ด ํํ์ผ๋ก ๋ณํํ๊ธฐ ์ํ ์ง์ ๋ฒ์ญ์๋ Clang์ ํ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. C ํ์ค์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์์ง ์ง์๋๋ ๊ฒ์ ์๋์ง๋ง ํ์ฌ ๋ฒ์ญ๊ธฐ์ ๊ธฐ๋ฅ์ ์ด๋ฏธ ์ถฉ๋ถํฉ๋๋ค.
๋ฒ์ญ V ๊ฒ์ DOOM์ ์ธ์ด๋ก. C++ ๋ฒ์ญ๊ธฐ๋ ์์ง ๊ฐ๋ฐ ์ด๊ธฐ ๋จ๊ณ์ ์์ต๋๋ค. - ๋ฐํ์์ ๋ฌถ์ด์ง ์๊ณ ๋ด์ฅ๋ ์ง๋ ฌํ ์ง์
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์ ์ต์ํ
- ์์ ์ฑ ๋ณด์ฅ: NULL ์์, ์ ์ญ ๋ณ์, ์ ์๋์ง ์์ ๊ฐ ๋ฐ ๋ณ์ ์ฌ์ ์. ๋ด์ฅ๋ ๋ฒํผ ์ค๋ฒ๋ฐ ๊ฒ์ฌ. ์ผ๋ฐ ๊ธฐ๋ฅ(Generic)์ ์ง์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ฒด ๋ฐ ๊ตฌ์กฐ
- "ํซ" ์ฝ๋ ์ฌ๋ก๋ ๊ฐ๋ฅ์ฑ(์ฌ์ปดํ์ผ ์์ด ์ฆ์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์)
- ๋ฉํฐ์ค๋ ๋ฉ์ ๋ณด์ฅํ๋ ๋๊ตฌ์ ๋๋ค. Go ์ธ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก "run foo()"์ ๊ฐ์ ๊ตฌ๋ฌธ์ ์๋ก์ด ์คํ ์ค๋ ๋๋ฅผ ์์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค("go foo()"์ ์ ์ฌ). ์์ผ๋ก๋ ๊ณ ๋ฃจํด๊ณผ ์ค๋ ๋ ์ค์ผ์ค๋ฌ์ ๋ํ ์ง์์ด ๊ณํ๋์ด ์์ต๋๋ค.
- Windows, macOS, Linux, *BSD ์ด์ ์ฒด์ ๋ฅผ ์ง์ํฉ๋๋ค. ์ฐ๋ง๊น์ง Android ๋ฐ iOS์ ๋ํ ์ง์์ ์ถ๊ฐํ ๊ณํ์ ๋๋ค.
- ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ปดํ์ผ ์(Rust์์์ ๊ฐ์ด) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ๋ ๋๋ง์ ์ํด GDI+/Cocoa ๋ฐ OpenGL์ ์ฌ์ฉํ๋ ๊ทธ๋ํฝ ์ถ๋ ฅ์ฉ ๋ค์ค ํ๋ซํผ ํดํท ๊ฐ์ฉ์ฑ(DirectX, Vulkan ๋ฐ Metal API ์ง์ ์์ ) 3D ๊ฐ์ฒด, ๊ณจ๊ฒฉ ์ ๋๋ฉ์ด์ ๋ฐ ์นด๋ฉ๋ผ ์ ์ด ์์ ์ ์ํ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
- ๊ฐ OS ๊ณ ์ ์ ๋์์ธ ์์๋ก ๊ทธ๋ํฝ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ฉ์ฑ. Windows๋ WinAPI/GDI+๋ฅผ ์ฌ์ฉํ๊ณ , macOS๋ Cocoa๋ฅผ ์ฌ์ฉํ๊ณ , Linux๋ ์์ฒด ์์ ฏ ์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ฏธ ๊ฐ๋ฐ์ ์ฌ์ฉ๋์์ต๋๋ค.
๋ณผํธ โ Slack, Skype, Gmail, Twitter ๋ฐ Facebook์ฉ ํด๋ผ์ด์ธํธ๊ณํ์ Delphi์ ์ ์ฌํ ์ธํฐํ์ด์ค ๋์์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ , SwiftUI ๋ฐ React Native์ ์ ์ฌํ ์ ์ธ์ API๋ฅผ ์ ๊ณตํ๋ฉฐ, iOS ๋ฐ Android์ฉ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ์ง์ํ๋ ๊ฒ์ ๋๋ค.
- ํ๋ก์ ํธ ๊ฐ๋ฐ์๋ฅผ ์ํ ์น ์ฌ์ดํธ, ํฌ๋ผ ๋ฐ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ด์ฅ ์น ํ๋ ์์ํฌ์ ๊ฐ์ฉ์ฑ. ๊ฐ ์์ฒญ๋ง๋ค ์ฒ๋ฆฌํ์ง ์๊ณ HTML ํ ํ๋ฆฟ์ ์ฌ์ ์ปดํ์ผ์ด ์ง์๋ฉ๋๋ค.
- ํฌ๋ก์ค ์ปดํ์ผ ์ง์. Windows์ฉ ์คํ ํ์ผ์ ๋น๋ํ๋ ค๋ฉด "v -os windows"๋ฅผ ์คํํ๊ณ Linux์ ๊ฒฝ์ฐ "v -os linux"๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค(macOS์ ๋ํ ํฌ๋ก์ค ์ปดํ์ผ ์ง์์ ๋์ค์ ์์๋ฉ๋๋ค). ํฌ๋ก์ค ์ปดํ์ผ์ ๊ทธ๋ํฝ ์์ฉ ํ๋ก๊ทธ๋จ์์๋ ์๋ํฉ๋๋ค.
- ๋ด์ฅ ์ข ์์ฑ ๊ด๋ฆฌ์, ํจํค์ง ๊ด๋ฆฌ์ ๋ฐ ๋น๋ ๋๊ตฌ. ํ๋ก๊ทธ๋จ์ ๋น๋ํ๋ ค๋ฉด make๋ ์ธ๋ถ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ "v."๋ง ์คํํ๋ฉด ๋ฉ๋๋ค. ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋ ค๋ฉด ์๋ฅผ ๋ค์ด "v get sqlite"๋ฅผ ์คํํ์ธ์.
- ํธ์ง๊ธฐ์์ V ์ธ์ด ๊ฐ๋ฐ์ ์ํ ํ๋ฌ๊ทธ์ธ ๊ฐ์ฉ์ฑ
VS ์ฝ๋ ะธ์ ๋ ฅ .
ะ ะฐะทัะฐะฑะพัะบะฐ
๋ํ ์ฒ์์๋ ์ ์ฅ์์
ํํธ, ํ๋ก์ ํธ V์ ๋ฒ๊ทธ ์ถ์ ๊ธฐ์์๋ ์ฝ 10๊ฐ์ ๊ฒ์๋ฌผ์ด ์ญ์ ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru