ÐÑогÑаммиÑÑов на Golang Ñ ÐºÐ°Ð¶Ð´Ñм годом ÑÑановиÑÑÑ Ð²ÑÑ Ð±Ð¾Ð»ÑÑе. Ðколо 1,1 миллиона ÑазÑабоÑÑиков по вÑÐµÐ¼Ñ Ð¼Ð¸ÑÑ Ð¸ÑполÑзÑÑÑ Go как оÑновной. ÐÑÑ 2,7 иÑполÑзÑÑÑ ÐµÐ³Ð¾ как дополниÑелÑнÑй к дÑÑÐ³Ð¾Ð¼Ñ ÑзÑкÑ. РРоÑÑии наÑÑиÑÑваеÑÑÑ Ð¾ÐºÐ¾Ð»Ð¾ 35 ÑÑÑÑÑ GoâÑазÑабоÑÑиков. Ð ÑинÑакÑиÑе Go Ð½ÐµÑ Ð½Ð°ÑледованиÑ, клаÑÑов и обÑекÑов, коÑоÑÑе знаÑиÑелÑно ÑÑложнÑÑÑ ÐºÐ¾Ð´ и его поÑледÑÑÑие изменениÑ.
ÐÑо абÑолÑÑно беÑполезнÑй канала, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾ÑоÑого нелÑÐ·Ñ Ð¿ÐµÑедаваÑÑ Ð¸Ð»Ð¸ полÑÑаÑÑ Ð´Ð°Ð½Ð½Ñе, поÑколÑÐºÑ Ð¾Ð½ не пÑоÑел иниÑиализаÑиÑ. ÐеÑеклÑÑение Ð¼ÐµÐ¶Ð´Ñ Ð·Ð°Ð´Ð°Ñами пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð½Ð°ÑÑолÑко бÑÑÑÑо, ÑÑо ÑоздаеÑÑÑ Ð²Ð¿ÐµÑаÑление, бÑдÑо они вÑполнÑÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ð¾Ð¼ÐµÐ½Ñно. Тем не менее, ÑакÑÐ¾Ñ Ð¿Ð°Ñаллелизма здеÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ, поÑколÑÐºÑ Ð¼Ñ ÑабоÑаем Ñ Ð¾Ð´Ð½Ð¾ÑÑдной ÑиÑÑемой. Ðад Golang ÑабоÑали РобеÑÑ ÐÑизмеÑ, Роб Ðайк и Ðен ТомпÑон, ÑпеÑиалиÑÑÑ Ð²ÑÑокого ÑÑовнÑ. Ðменно они и пÑедÑÑавили ÑиÑокой аÑдиÑоÑии в конÑе 2009 года ÑнивеÑÑалÑнÑй инÑÑÑÑÐ¼ÐµÐ½Ñ Ð´Ð»Ñ ÑеÑÐµÐ½Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ Ð¿Ñоблем. ÐзнаÑалÑно планиÑовалоÑÑ, ÑÑо Golang бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко внÑÑÑи Google.
- ÐÑли Ð²Ñ ÑеÑили оÑвоиÑÑ Ð¿ÑогÑаммиÑование на Go Ñ Ð½ÑлÑ, можно наÑаÑÑ Ñ Ð¾ÑиÑиалÑного ÑÑководÑÑва.
- ÐÑо ÑпоÑобÑÑвÑеÑ, опÑÑÑ Ð¶Ðµ, акÑивное комÑÑниÑи, коÑоÑое ÑоздаÑÑ Ð²ÑÑ Ð½Ð¾Ð²Ñе и новÑе инÑÑÑÑменÑÑ, пакеÑÑ, ÑÑеймвоÑки, дÑайвеÑÑ, API и генеÑаÑоÑÑ ÐºÐ¾Ð´Ð° Ð´Ð»Ñ ÑзÑка.
- Ðо ÑезÑлÑÑаÑам опÑоÑа ÑеÑвиÑа Stack Overflow за 2021 год, Go ÑазÑабоÑÑики заÑабаÑÑваÑÑ Ð·Ð° год в ÑÑеднем в миÑе $75 ÑÑÑ.
- Ðа нÑм можно бÑÑÑÑо напиÑаÑÑ Ð²ÑÑоконагÑÑженное, многопоÑоÑное, кÑоÑÑплаÑÑоÑменное пÑиложение.
- Ðне â Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ, и Ñ ÑÑиÑÐ°Ñ ÐµÐ³Ð¾ оÑÐµÐ½Ñ Ñ Ð¾ÑоÑим вÑбоÑом Ð´Ð»Ñ Ð²ÑÑоконагÑÑженнÑÑ ÑеÑвиÑов (и не ÑолÑко).
- ÐÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° Ñаком ÑзÑке Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пÑедваÑиÑелÑно ÑÑанÑлиÑоваÑÑ (ÑкомпилиÑоваÑÑ) в маÑиннÑй код.
Golang â ÑвлÑеÑÑÑ Ð¾Ð¿ÑималÑнÑм инÑÑÑÑменÑом Ð´Ð»Ñ Ð¿ÑогÑаммиÑÑа, незавиÑимо Ð¾Ñ ÐµÐ³Ð¾ ÑÑовнÑ. СозданнÑй авÑоÑиÑеÑнÑми ÑазÑабоÑÑиками, GO оÑлиÑаеÑÑÑ Ð²ÑÑокой ÑкоÑоÑÑÑÑ ÑабоÑÑ Ð¸ пÑоÑÑоÑой иÑполÑзованиÑ. Ðа GO можно пиÑаÑÑ Ð¿ÑакÑиÑеÑки вÑе, ÑÑо Ñгодно. ÐеÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо GO ÑвлÑеÑÑÑ ÑÑÑÑ Ð»Ð¸ ÑнивеÑÑалÑнÑм ÑзÑком пÑогÑаммиÑованиÑ, ÑÑиÑаÑÑ ÐµÐ³Ð¾ на one hundred pc идеалÑнÑм нелÑзÑ. Ð ÑаÑÑноÑÑи, Ñ Ð½ÐµÐ³Ð¾ Ð½ÐµÑ Ð½ÐµÑвнÑÑ ÑиÑловÑÑ Ð¿ÑеобÑазований, Ð½ÐµÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑов и деÑÑÑÑкÑоÑов, пеÑегÑÑзки опеÑаÑоÑов, Ð½ÐµÑ Ð·Ð½Ð°Ñений паÑамеÑÑов по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ Ñ.д. ÐÐ¾Ð´Ð¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° коÑпоÑаÑии Ñо вÑеменем наÑала ÑбоиÑÑ, поÑÑÐ¾Ð¼Ñ ÑÑководÑÑво пÑинÑло ÑеÑение ÑоздаÑÑ Ð½Ð¾Ð²Ñй ÑзÑк, оÑиенÑиÑованнÑй на ÑкоÑоÑÑÑ Ð¸ пÑоÑÑоÑÑ.
ÐÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° Ñаком ÑзÑке вÑполнÑÑÑÑÑ Ð¿Ð¾ÑÑÑоÑно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð²ÑпомогаÑелÑной пÑогÑÐ°Ð¼Ð¼Ñ â инÑеÑпÑеÑаÑоÑа. ÐÑа пÑогÑамма поÑледоваÑелÑно ÑÑанÑлиÑÑÐµÑ (инÑеÑпÑеÑиÑÑеÑ) каждÑÑ ÑÑÑÐ¾ÐºÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ кода в маÑиннÑй код и ÑÑÐ°Ð·Ñ Ð¶Ðµ иÑполнÑеÑ. Golang оÑлиÑно Ð¿Ð¾Ð´Ð¾Ð¹Ð´ÐµÑ Ð´Ð»Ñ ÑÑаÑÑа, в оÑÐ½Ð¾Ð²Ð°Ñ ÑзÑка можно ÑазобÑаÑÑÑÑ Ð·Ð° денÑ. РеÑе на Golang легко пеÑейÑи Ñ Ð´ÑÑгого ÑзÑка пÑогÑаммиÑованиÑ. ÐÑÐ±Ð¾Ñ ÑеÑÑÑÑов Ð´Ð»Ñ Ð¸Ð·ÑÑÐµÐ½Ð¸Ñ Go завиÑÐ¸Ñ Ð¾Ñ Ð²Ð°Ñего опÑÑа и пÑедпоÑÑений.
Ä°çerik
ÐÑÑ ÐÑÑ ÐÑеÑе ÐÑвеÑ? ÐоÑмоÑÑиÑе ÐÑÑгие ÐопÑоÑÑ Ð¡ ÐеÑками Golang Ðли ÐадайÑе Свой ÐопÑоÑ
Ðо GO пÑогÑаммиÑÑÑ Ð¿Ð¾Ð»ÑзовалиÑÑ C++ и Java â они не оÑлиÑалиÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾Ð¹ гибкоÑÑÑÑ Ð¸ пÑоÑÑоÑой поÑÑÑÐ¾ÐµÐ½Ð¸Ñ Ð¿ÑогÑамм Ñакого маÑÑÑаба. ÐплоÑÑ Ð´Ð¾ 2007 года пÑогÑаммиÑÑÑ ÑÑпеÑно изÑÑение ÑзÑка go ÑабоÑали на имеÑÑÐ¸Ñ ÑÑ ÑзÑÐºÐ°Ñ . ÐоÑÑÐ¾Ð¼Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð° Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð² Ñоздании бÑÑÑÑокомплилиÑÑемого ÑзÑка, коÑоÑÑй ÑÐ¼Ð¾Ð¶ÐµÑ ÑÑÑекÑивно запÑÑкаÑÑÑÑ Ð½Ð° ÑоÑнÑÑ Ð¸ даже ÑÑÑÑÑÐ°Ñ Ð¼Ð°Ñин.
Ðн ÑканиÑÑÐµÑ ÐºÐ¾Ð´ и опÑеделÑÐµÑ Ð¾Ð±ÑекÑÑ, замедлÑÑÑие его ÑабоÑÑ, а заÑем ÑдалÑÐµÑ Ð¸Ñ . Таким обÑазом ÑбоÑÑик мÑÑоÑа обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ Ð¿Ð°Ð¼ÑÑи, ÑÐ¾Ñ ÑанÑÑ Ð¿Ñи ÑÑом вÑÑокÑÑ ÑкоÑоÑÑÑ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑогÑамм и Ð¿Ð¾Ð¼Ð¾Ð³Ð°Ñ ÑÑÑекÑивно иÑполÑзоваÑÑ ÑеÑÑÑÑÑ. ÐÑогÑаммиÑование ÑвлÑеÑÑÑ Ð¾ÑÐµÐ½Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñно ÑазвиваÑÑейÑÑ Ð¾ÑÑаÑлÑÑ, в ней ÑегÑлÑÑно поÑвлÑÑÑÑÑ Ð½Ð¾Ð²Ñе, более ÑÑÑекÑивнÑе инÑÑÑÑменÑÑ Ð¸ ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¸. Ðдним из ÑÐ°ÐºÐ¸Ñ Ð¼Ð¾Ð»Ð¾Ð´ÑÑ Ð¸ пеÑÑпекÑивнÑÑ ÑзÑков пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² наÑи дни ÑÑиÑаÑÑ ÑзÑк Go, ÑазÑабоÑаннÑй коÑпоÑаÑией Google. Ðо даннÑм извеÑÑного IT-ÑеÑÑÑÑа Stack Overflow, в 2020 Ð³Ð¾Ð´Ñ Ð¾Ð½ воÑел в пÑÑеÑÐºÑ ÑамÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¯Ð ÑÑеди полÑзоваÑелей ÑÑого ÑайÑа, опеÑедив С#, Swift и JavaScript.
ÐаÑаллелизм Ð Golang
РпÑоÑеÑÑе пÑÐ¾Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð²Ñ Ð¾ÑвоиÑе базовÑе Ð·Ð½Ð°Ð½Ð¸Ñ Ð¸ попÑобÑйÑе напиÑаÑÑ Ñвой пеÑвÑй код. Ð ÑезÑлÑÑаÑе Ð²Ñ Ð½Ð°ÑÑиÑеÑÑ ÑоздаваÑÑ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ маÑÑÑабиÑÑемÑе ÑеÑвиÑÑ, ÑабоÑаÑÑ Ñ ÑазлиÑнÑми ÑÑеймвоÑками и библиоÑеками. ÐÑоме Ñого, Ð²Ñ Ð¿Ð¾Ð¿ÑобÑеÑе ÑÐµÐ±Ñ Ð² Ñоли админиÑÑÑаÑоÑа баз даннÑÑ .
ÐÑи ÑÑом код на Go легко пиÑаÑÑ, модиÑиÑиÑоваÑÑ Ð¸ обÑлÑживаÑÑ. Go â пÑоÑÑой ÑзÑк, но позволÑÐµÑ Ð´ÐµÐ»Ð°ÑÑ Ð¾ÑÐµÐ½Ñ ÑложнÑе веÑи. Ðа нÑм можно бÑÑÑÑо напиÑаÑÑ Ð²ÑÑоконагÑÑженное, многопоÑоÑное, кÑоÑÑплаÑÑоÑменное пÑиложение. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ ÑÑеÑа пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑзÑка â ÑеÑевое пÑогÑаммное обеÑпеÑение, ÑÑилиÑÑ Ð¸ бÑкенд. Ðногое можно ÑеализоваÑÑ, иÑполÑзÑÑ ÑолÑко ÑÑандаÑÑнÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ Go.
ÐÑобенноÑÑи ЯзÑка
ÐÑо знаÑиÑ, ÑÑо напиÑанное на Go пÑиложение вÑглÑÐ´Ð¸Ñ ÐºÐ°Ðº один полноÑÑÑÑ Ð³Ð¾ÑовÑй к запÑÑÐºÑ Ñайл. Ð 2020 Ð³Ð¾Ð´Ñ Google вÑпÑÑÑила веÑÑии 1.14 и 1.15 Ñ Ð´Ð¾ÑабоÑками компоновÑика и ÑÑнкÑии ÑазмеÑÐµÐ½Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. ÐоÑледним ÑÑабилÑнÑм Ñелизом на ÑекÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑвлÑеÑÑÑ Ð²ÐµÑÑÐ¸Ñ 1.17.6, поÑвивÑаÑÑÑ Ð² ÑнваÑе 2022 года. ÐдновÑеменно Ñ Ð²ÑпÑÑком обновлений ведеÑÑÑ ÑазÑабоÑка вÑоÑой веÑÑии ÑзÑка â Go 2.
РазÑабоÑкой и ÑазвиÑием ÑзÑка занимаеÑÑÑ Google, Ñак ÑÑо он в ближайÑее вÑÐµÐ¼Ñ Ð½Ð¸ÐºÑда не денеÑÑÑ. Ðолее Ñого, ожидаеÑÑÑ ÐºÑÑпное обновление, пÑизванное ÑеÑиÑÑ ÑÑÑеÑÑвÑÑÑие недоÑÑаÑки ÑзÑка. ЧÑÐ¾Ð±Ñ Ð¸Ð·ÑÑиÑÑ Goland, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑойÑи кÑÑÑÑ Ð½Ð° GeekBrains. ÐÐ°Ð½Ð½Ð°Ñ Ð¾Ð±ÑазоваÑелÑÐ½Ð°Ñ Ð¾Ð½Ð»Ð°Ð¹Ð½-плаÑÑоÑма ÑвлÑеÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ из лÑÑÑÐ¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð³Ð¾Ñовки ÑпеÑиалиÑÑов в ÐТ и диджиÑал. ÐÑбой желаÑÑий Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð²Ð»Ð°Ð´ÐµÑÑ Go и полÑÑиÑÑ ÑеннÑй пÑакÑиÑеÑкий опÑÑ. ЯзÑк Go бÑл Ñоздан в Google как алÑÑеÑнаÑива C++ и доволÑно бÑÑÑÑо занÑл ÑÐ²Ð¾Ñ Ð½Ð¸ÑÑ.
Ð ÑкоÑее вÑего, джÑÐ½Ð¸Ð¾Ñ Go-ÑазÑабоÑÑик ÑÑÐ°Ð·Ñ Ð¿Ð¾Ð¿Ð°Ð´ÐµÑ Ð² ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Ñ Ð²ÑÑокой инженеÑной кÑлÑÑÑÑой, где его бÑдÑÑ ÑазвиваÑÑ Ð¸ где он ÑÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑÑо ÑÑиÑÑÑÑ. Ðднако лÑÑÑе вÑего Go ÑаÑкÑÑваеÑÑÑ ÐºÐ°Ðº ÑзÑк пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¸Ð½ÑÑаÑÑÑÑкÑÑÑой. СамÑе попÑлÑÑнÑе инÑÑÑÑменÑÑ Ð² ÑÑой облаÑÑи напиÑÐ°Ð½Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ на Go â Kubernetes, Docker и Prometheus. ÐлагодаÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾ÑоÑноÑÑи ÑзÑк Golang Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ñиложений Ñ Ð¼Ð¸ÐºÑоÑеÑвиÑной аÑÑ Ð¸ÑекÑÑÑой.