Мова Go від компанії Google свого часу стала справжнім проривом серед традиційних серверних інструментів. За що її так люблять розробники і до чого тут блакитний ховрах? Розбираємося в особливостях Golang разом з Сергієм Штріплінгом, який давно плекає теплі почуття до цієї мови.
Що таке мова Go? І до чого тут ховрахи?
— Мова Go — компільована, суворо типізована, Open Source мова програмування. Співробітники компанії Google, які створили її, зіткнулися з очевидною проблемою: мови на зразок Python легко опанувати, проте вони доволі повільні, а C і C++ — спритні, перевірені часом, але щоб їх освоїти до Junior-рівня потрібні роки.
За словами одного з авторів Go, першочерговою метою мови було вирішення внутрішніх завдань компанії Google. Вони хотіли знайти рішення, яке дозволило б їм ефективно долати свої локальні проблеми, а також швидко навчати практикантів і переводити їх у розробку. Врешті у них вийшла мова Go, яку можна легко опанувати без досвіду в інших мовах програмування і відразу писати production-ready код для задач Google. Інші розробники, після публікації Go в Open Source у 2009 році, радо прийняли мову завдяки її простоті, безпеці та надійності. За 10+ років існування Go надбала свої традиції, корисні бібліотеки і практики розробки, які й досі дозволяють гоферам у всьому світі створювати зручний і конкурентоспроможний софт.
Допитливий ховрах з кумедними зубами — неофіційний символ мови Go. Власне, тому Go-розробників називають гоферами: англійське слово Gopher так і перекладається — ховрах.
Чому варто обрати Go?
— Не дивлячись на свій невеликий вік, Go — зріла мова. За нею стоять серйозні фахівці, які від самого початку заклали надійний фундамент, який визначив правила розвитку Go. Як мова вона добре пропрацьована, тому в її вивченні не виникає особливих труднощів. Однак, у медалі є зворотній бік — Go дуже багатослівна і прискіплива в плані синтаксису. Іноді вам потрібно прописувати найпростіші функції максимально явно. Хоча це дратує, але, між нами кажучи, це дуже правильний підхід, який прищеплює дуже корисні звички: відслідковувати всі помилки, стежити за імплементацією інтерфейсів і оформленням коду, продумувати архітектуру додатків. Будь-яка мова має свої особливості, Go — не виключення.
Go пропонує величезну кількість базових інструментів, які зручно налаштовувати. Вона не намагається стати мовою для будь-якого завдання, але добре вписується в свою нішу — серверні та частково системні додатки. Чи користуватиметься Go попитом? Звичайно. Вона ще не досягла піка своєї популярності, компанії щойно встигли з нею познайомитися і зрозуміти, де Go може замінити інші мови. Вже сформувалися практики і традиції розробки, створено необхідні бібліотеки, які не лише полегшують роботу розробника, але й відкривають нові можливості для зростання.
Чи підійде Go в якості першої мови для знайомства з IT?
— Традиційно інженерам-початківцям рекомендують вивчати Python або Javascript, але Go також чудово підійде для входу в ІТ. Як я вже казав, мова формує корисні звички, які дуже допоможуть у кар’єрі інженера. Також, нагадаю, что Go від самого початку розроблялася для інженерів-початківців, а тому навіть для недосвідченого ока код виглядає максимально зрозумілою. Це об’єктно-орієнтована, функціональна, проста і гарна мова, яку можна досить швидко опанувати. Кажуть, що найкраще підійти до Go, коли знаєш C.
За що можна полюбити Go?
— Go має багато переваг, завдяки яким кількість її прихильників збільшується з року в рік, а попит на фахівців зростає. Мовою користуються багато великих компаній, включаючи таких гігантів, як Google, Twitter та Uber. Серед очевидних плюсів я б відзначив:
- Суворість
- Простоту (як в опануванні, так і у виразності)
- Швидкість
- Читабельність
- Компіляцію і типізацію
- Величезну пакетну базу
- Добре задокументовані бібліотеки
- Постійний і стабільний розвиток
- Відсутність виключень, наслідування, класів, анотацій, конструкторів
- Високу продуктивність
Ну і ховрашка, звичайно!
Go-розробник — який він?
— Терплячий! Думаю, ви зрозумієте це на другій сотні ```if err != nil```. Через особливості синтаксису мови, гофер природньо прагне академічності та структури, любить KISS (від англ. Keep it stupid simple :) і не боїться сюрпризів — мова постійно змінюється. І ми разом із нею.
Чи можливо вивчити мову самостійно?
— Самостійно цілком можливо опанувати основи, якщо паралельно зависати у спільнотах розробників, таких як Hackerrank, Habr, тематичні канали в Reddit, тощо. Втім, не дивлячись на зовнішню простоту мови, при самостійному вивченні Go можна проґавити важливі деталі, про які знають більш досвідчені розробники. Добре мати поруч когось, хто зможе переглянути твій код, допоможе розібратися в системах, вкаже на помилки і пояснить їх.
Як отримати перший досвід роботи?
— Питання про перший досвід роботи схоже на питання про курку та яйце — щоб отримати досвід роботи, потрібно працювати, а щоб працювати, треба мати досвід роботи. Необхідно «йти в поле», але ж куди? Ще одне неявне ускладнення: чи можливо повністю влитися в процес і зрозуміти «як воно працює» самотужки? Моя відповідь — навряд чи. Це завдання ми намагаємося вирішити в Лабораторії EPAM після закінчення зовнішнього етапу програми, де гофери-початківці виконують робочий проєкт під керівництвом менторів, досвідчених розробників, дотримуючись звичних для команд практик, стикаючись зі складнощами у прийнятті рішень та їх наслідками. Думаю, це можна назвати гарним першим досвідом, і як показує практика EPAM University, формат Лабораторії є запорукою гарного старту в обраному напрямку. Так і Job Offer не за горами!
Поради Go-розробникам-початківцям
— Краще відразу привчати себе до правильних практик, тому спершу не бійтесь помилятися і просити допомоги у менторів і колег. Розвивайтеся, частіше відвідуйте профільні ком’юніті та обмінюйтеся ідеями і решеннями з іншими розробниками. Десь буде складно, десь незрозуміло, але головне — не лінуватися, старатися і не кидати все на півдорозі. Як кажуть мудрі люди, тяжко у навчанні — легко у бою! Будьте наполегливі, це окупиться.
Цікаво розвиватися у Go, переймаючи кращі практики у досвідчених наставників? Підпишіться на поштову розсилку, щоб одним з перших дізнатися про відкриття програми та почати свій шлях в IT-індустрії з трендової мови Go!