Навошта вам вучыць Go

Навошта вам вучыць Go
Крыніца карцінкі

Go — адносна маладая, але папулярная мова праграмавання. Па дадзеным апытання Stack Overflow, менавіта Golang атрымаў трэцяе месца ў рэйтынгу моў праграмавання, якія хацелі б асвоіць распрацоўшчыкі. У гэтым артыкуле мы паспрабуем разабрацца ў прычынах папулярнасці Go, а таксама паглядзім, дзе гэта мова выкарыстоўваецца і чаму яе ўвогуле варта вывучаць.

Трохі гісторыі

Мова праграмавання Go была створана кампаніяй Google. Уласна, яго поўная назва Golang - вытворнае ад "Google language". Нягледзячы на ​​тое, што ў анонсе мова была названая маладой, сёлета ёй спаўняецца ўжо дзесяць гадоў.

Мэта, якая стаяла перад стваральнікамі Go — распрацаваць простую і эфектыўную мову праграмавання, якая магла б выкарыстоўвацца для стварэння якаснага праграмнага забеспячэння. Роб Пайк, адзін са стваральнікаў Go, заявіў, што Go распрацоўваўся для праграмістаў кампаніі, якія адносна нядаўна скончылі вучыцца і ведаюць Java, C, C++ ці Python. Go для іх - мова, у якім можна хутка разабрацца і да якога хутка прывыкаеш.

Першапачаткова ён быў інструментам усярэдзіне Google, але з цягам часу выйшаў з нетраў карпарацыі і стаў здабыткам грамадскасці.

Перавагі мовы

У Golang ёсць вялікая колькасць плюсаў як вядомых, так і не вельмі.

Прастата. Уласна, гэта была асноўная мэта стварэння мовы, і яе ўдалося дасягнуць. У Go дастаткова просты сінтаксіс (з пэўнымі дапушчэннямі), таму прыкладанні можна распрацоўваць хутчэй, чым на некаторых іншых мовах. І тут ёсць два цікавыя моманты.

Па-першае, Golang досыць хутка можа вывучыць поўны пачатковец у праграмаванні – той, хто не ведае наогул ніводнай мовы і толькі збіраецца стаць распрацоўшчыкам. Аб Go можна сказаць, што ён амаль такі ж нескладаны (адносна, вядома), як PHP ці нават Pascal, але такі ж магутны, як З++.

Па-другое, Go можа асвоіць ужо "сфармаваны праграміст", той, хто ўжо ведае адну або некалькі моў. Часцей за ўсё распрацоўшчыкі вывучаюць Go пасля таго, як асвоілі Python або PHP. Далей некаторыя праграмісты з поспехам выкарыстоўваюць пару Python/Go ці PHP/Go.

Вялікая колькасць бібліятэк. Калі вам бракуе які-небудзь магчымасці ў Go, можна скарыстацца адной са мноства бібліятэк і выканаць патрабаваную задачу. У Go ёсць яшчэ адна перавага - можна без праблем узаемадзейнічаць з бібліятэкамі мовы Сі. Ёсць нават меркаванне, што Go-бібліятэкі - гэта абгорткі для C-бібліятэк.

Чысціня кода. Кампілятар Go дазваляе трымаць код "чыстым". Напрыклад, пераменныя, якія не выкарыстоўваюцца, лічацца памылкай кампіляцыі. У Go вырашаецца большая частка праблем фарматавання. Гэта робіцца, да прыкладу, пры дапамозе праграмы gofmt пры захаванні ці кампіляцыі. Фарматаванне кіруецца аўтаматычна. Падрабязней пра ўсё гэта можна даведацца ў тутарыяле Эфектыўны.

Статычная тыпізацыя. Яшчэ адна перавага Go, дзякуючы якому зніжаецца верагоднасць дапушчэння памылкі распрацоўшчыкам. Так, першыя пару дзён праграміст, які звыкся да дынамічнай тыпізацыі, ятрыцца пры неабходнасці аб'яўляць тып для кожнай зменнай і функцыі, роўна, як і для ўсяго астатняга. Але потым становіцца зразумела, што тут суцэльныя плюсы.

GoDoc. Утыліта, якая вельмі моцна спрашчае дакументаванне кода. Вялікім плюсам GoDoc з'яўляецца тое, што тут не выкарыстоўваюцца дадатковыя мовы накшталт JavaDoc, PHPDoc ці JSDoc. Утыліта выкарыстоўвае максімальную колькасць інфармацыі, якую яна здабывае з дакументаванага кода.

Абслугоўванне кода. Яго лёгка абслугоўваць менавіта дзякуючы простаму і лаканічнаму сінтаксісу. Усё гэта - спадчына Google. Паколькі ў карпарацыі велізарная колькасць кода для розных праграмных прадуктаў, а таксама дзясяткі тысяч распрацоўнікаў, якія ўсё гэта разбіраюць, тое з'яўляецца праблема абслугоўвання. Код павінен быць зразумелы ўсім, хто над ім працуе, добра дакументаваным і лаканічным. Усё гэта магчыма з Go.

Пры гэтым у Golang няма класаў (ёсць структуры, struct), няма падтрымкі ўспадкоўванні, што значна спрашчае змену кода. Плюс няма выключэнняў, анатацый і да т.п.

Што можна напісаць на Go

Практычна ўсё, за выключэннем некаторых момантаў (напрыклад, распрацоўкі, злучаныя з машынным навучаннем - тут больш падыходзіць усё ж Python з нізкаўзроўневымі аптымізацыямі на C/C++ і CUDA).

Усё астатняе можна пісаць, асабліва гэта актуальна ў стаўленні web-сэрвісаў. Акрамя таго, на Go варта распрацоўваць прыкладанні як для канчатковага карыстальніка, так і для распрацоўкі дэманаў, UI, ён падыходзіць для кросплатформавых прыкладанняў і сэрвісаў.

Запатрабаванасць Golang

Навошта вам вучыць Go
З цягам часу мова становіцца ўсё больш запатрабаванай. Акрамя тых кампаній, што прысутнічаюць на малюнку вышэй, з Golang працуюць Mail.ru Group, Avito, Ozon, Lamoda, BBC, Canonical і іншыя.

«Мы вырашылі маштабаваць бізнэс, нам важна пабудаваць прынцыпова новую тэхналагічную платформу, якая забяспечыць хуткае развіццё прадукта. Робім стаўку на Go з-за яго хуткасці і надзейнасці, а галоўнае – аўдыторыі праграмістаў, якая яго выкарыстоўвае», – заявілі прадстаўнікі Ozon у 2018 годзе, пасля таго як кампанія прыняла рашэнне перайсці на Golang.

Ну а што наконт даходаў Заработная плата Go-распрацоўшчыка ў мінулым годзе склала ў сярэднім 60-140 тыс. рублёў па дадзеных «Майго Круга». У параўнанні з 2017 годам гэты паказчык павялічыўся на 8,3 працэнта. У 2019 годзе, хутчэй за ўсё, рост працягнецца, паколькі распрацоўшчыкі Golang патрэбны вельмі шматлікім кампаніям.

Што далей?

Спыняцца ў развіцці Golang сапраўды не будзе. Запатрабаванне ў добрых адмыслоўцах, якія ведаюць гэтую мову, будзе толькі ўзрастаць, так што працу адмыслоўцу (пачаткоўцу ці профі) знайсці будзе нескладана. У прынцыпе, гэтае сцвярджэнне актуальна і цяпер, паколькі на рынку IT назіраецца пастаянны дэфіцыт распрацоўшчыкаў.

Go добры як для пачаткоўцаў праграмістаў, так і для профі, хто ўжо ведае адну або некалькі моў праграмавання. Вывучыць яго ці перавучыцца можа практычна любы праграміст.

Артыкул рыхтаваўся сумесна з выкладчыкам курса Golang у GeekBrains Сяргеем Кручыніным, за што яму вялікі дзякуй!

Крыніца: habr.com

Дадаць каментар