Мова програмування Go: перспективи, плюси та мінуси

  • 6 августа, 09:55
  • 8367
  • 0

Go - це мова програмування, яка була розроблена корпорацією Google. Її  ще називають «Golang» - скорочення від «Google language». Це компільована і багатопотокова мова, реліз якої відбувся в листопаді 2009 року, а найсвіжіший випуск 1.6 датується лютим 2016 року. Однією з ключових фігур, які брали участь у створенні Go, є Роб Пайк, відомий розробник мов програмування, а також операційних систем, в даний момент працює в Google. Виступаючи на одній з конференцій, він зазначив, що мова Go - це спроба перейняти кращі сторони таких мов, як C ++ і Java.

У цій статті ми спробуємо розібратися, наскільки популярна мова Go, чи є у неї перспективи розвитку і що про цю мову думають самі програмісти.

Застосування Golang

Мова Go розроблялась, як мова для створення різних високоефективних програм, однак більшість програмістів сходяться на думці, що найкраще вона підходить для створення веб-додатків (в якості back-end). При цьому Go дає можливості писати і інші проекти, наприклад, Docker, InfluxDB і Kubernetes. По суті, застосування мови Go обмежується трьома основними напрямками: мережеве програмне забезпечення, консольні утиліти і бекенд.

Однією з відмінних рис мови є оригінальна система типів: в мові відсутнє наслідування (один з принципів об'єктно-орієнтованого програмування). Також в Go використовується скорочений синтаксис визначення змінних і синтаксис анонімних функцій.
Ще одна особливість цієї мови - паралелізм, який полягає в тому, що будь-яка функція може бути виконана одночасно з іншою.

Так як Go є однїєю з молодих мов програмування, регулярно виникають обговорення доцільності її використання.

Плюси мови Go

У мови Go є кілька позитивних рис, що виділяються програмістами, які на ній пишуть.

По-перше, це її простота. Мова Go розроблялася в якості заміни C: її висока продуктивність майже порівнянна з мовою С, але більш простий синтаксис дає можливість розробляти програми набагато швидше (наприклад, як на Python). При цьому багато розробників вивчають цю мову після Python або PHP або використовують дві мови в зв'язці (Python / Go і PHP / Go). Спрощений синтаксис полегшує не тільки написання свого власного коду, але і читання коду, написаного іншими програмістами, що особливо важливо в командній роботі. Ця особливість Go, в свою чергу, веде до іншого важливого факту: швидке освоєння Go дозволяє перевести увагу з вивчення самої мови на вивчення програмування в цілому.

Програмісти постійно порівнюють мову Go з іншими мовами: на її користь свідчить той факт, що, наприклад, в PHP існує 67 ключових слів, а в Go їх всього лише 25.

Тут необхідно зробити відступ і сказати про те, що бажання створити просту мову програмування народилося у розробників Google не випадково: спочатку вони задумували Go як швидко досліджувану мову, яку запросто можуть вивчити декілька не дуже досвідчених програмістів для того, щоб потім разом написати який-небудь додаток . Саме тому дехто вважає мову Go мовою, придатною для великих корпорацій, де в розробці продуктів братиме участь безліч різних людей. Як уже зазначалося вище, простий і зрозумілий синтаксис веде до того, що програмістам Go не потрібно вводити якісь інші стандарти, позначення або коментарі - вони і без цього чудово зрозуміють код один одного. Багатослівність Go радує одних розробників і засмучує інших, але саме завдяки їй код Go читається так легко.

Тому деякі компанії (наприклад, CrowdStrike) свідомо переходять з інших мов програмування на Go для того, щоб в подальшому більш легко розширювати пул своїх розробників.

По-друге, Go має велику кількість бібліотек, завдяки яким можна виконати практично будь-яке поставлене завдання. Багато що можна реалізувати, використовуючи тільки стандартну бібліотеку Go, яка легко читається, а також має гарну якість і швидкістю. На окрему увагу заслуговує ефективна взаємодія з бібліотеками мови С ; деякі відзначають, що Go-бібліотеки за фактом є просто обгортками над С-бібліотеками.

По-третє, Go це компільована мова, на якій можна швидко написати потрібну програму. Go має таку ж сувору статичну типізацію, як Pascal, але в той же час він має набагато більший прикладний характер (і це ріднить його з Python). Тут необхідно відзначити високу продуктивність Golang, яка характерна для компільованих мов. Також в Go значно полегшена кроссплатформенність.

Не можна не відзначити і чітку спрямованість мови: на відміну від PHP, на якій пишуть великі проекти, Go більше призначений для невеликих сервісів, які необхідно швидко впровадити і які повинні відрізнятися надзвичайної надійністю (так зване robust software).

Розгортка Go-додатка також виглядає набагато простіше, ніж розгортка програми, написаної на мові програмування PHP. Програмуючи на Go , ви можете створити артефакти для всіх операційних систем або архітектур процесора, вам не потрібно буде встановлювати Go на використовувані вами сервери.

Синтаксис Go може бути незвичний тим, хто до цього програмував на PHP або Python. Якщо розглядати код Go в порівнянні з PHP, то Go не має об'єктів або класів, зате в ньому є структура, а точніше тип, який містить іменовані поля:

type Circle struct
 
{
 x, y, r float64
}

Ще однією причиною, по якій Go завойовує все більшу популярність, є наявність go fmt - інструменту, який допомагає стандартизувати код. А використання go vet допоможе вам знайти можливі проблеми в коді. Іншими словами, автори мови Go спробували максимально спростити завдання розробки додатків на цій мові, особливо для новачків.

Саме тому багато на даний момент вважають Go одним з кращих мов програмування і радять вивчати його не тільки студентам, а й школярам. До речі, такий прецедент вже був: учитель навчив кілька 11-річних школярів писати і розбиратися в коді на такому рівні, що вони змогли написати генератор фракталів Мандельброта. А головне, для цього йому знадобилося всього 12-13 годин!

Мінуси мови Go

Як негативну сторону Go часто називають його малу на даний момент поширеність - дійсно, є куди більш поширені мови програмування, які використовуються для виконання більшості завдань. Чи означає це, що вивчати Go не варто? Зовсім ні. Існує безліч корпорацій, які використовують мову Go в своїх розробках. В першу чергу це, звичайно ж, Google Inc., а також Basecamp, BBC Worldwide, Canonical, DigitalOcean, Dropbox, eBay, Yahoo і багато інших компаній по всьому світу. Тому перспективи у цієї мови програмування точно є. Безумовно, програмісти Go можуть бути менш затребувані, ніж, наприклад, PHP-розробники, проте і конкуренція нижче, а значить, вище шанс знайти цікаву і добре оплачувану роботу.

Ті, хто намагаються вгадати перспективи мови Go, також говорять про інший мінус, який фактично протилежний попередньому пункту: через легкість мови, а значить, і низького порогу входження, кількість людей, що програмують на Go, буде рости в геометричній прогресії, при цьому якість коду і самі проекти будуть залишати бажати кращого. Схожа ситуація на початку XXI століття трапилася з PHP, коли на цій мові стало писати безліч початківців програмістів, які не дуже хвилюються за працездатність свого коду (і готових отримувати невелику плату за свою працю). Головна відмінність PHP від Go на даний момент полягає в тому, що PHP в результаті став повноцінною мовою з багатою інфраструктурою і безліччю фреймворків, без знання яких ви навряд чи знайдете хорошу роботу. Go ж позиціонується як проста мова.

Питання часто викликає система типів, відсутність дженериків, перевантаження операторів, можливості розширити ключові слова, а також багато іншого. Безумовно, Go не є ідеальною мовою, і при першому знайомстві з нею комусь можуть не сподобатися відмінності з більш звичною йому мовою програмування.

Висновок

Мова Go ще досить молода для того, щоб говорити про якісь певні перспективи. Однак вже зараз багато хто сприймає Go як сучасну або навіть передову мову, яка сприяє розвитку мов програмування в цілому. Навіть якщо ви вже довгий час є прихильником якоїсь певної мови програмування, Go може запропонувати вам багато нових інструментів, які розширять ваш кругозір або навіть викличуть бажання розробляти програми на Go. При цьому ви витратите мінімальний час на знайомство з синтаксисом цієї мови (аж до пари днів), тому, навіть якщо ваші очікування щодо Go не виправдаються, ви отримаєте цікавий і цінний досвід.


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все