Перспективи мови го для програміста

Перспективи мови го для програміста

Стаття написана за мотивами однієї не дуже приємної розмови на останньому IT global мітапі в Пітері.


Мені подобається мова go. Він дуже простий, його легко вивчити (я перевірив це на практиці - його дійсно можна освоїти за одні вихідні). Горутіни, http-сервер і багато іншого прямо з коробки, легкість читання чужого коду. Євангелісти мови запевняють, що мова спеціально була створена для того, щоб будь-який новачок міг швидко вклинитися в проект і почати фігачити код. Тобто. все зроблено настільки просто, наскільки це можливо.

Відповідно, для бізнесу ця мова теж дуже хороша - береш всіх підряд, грубо кажучи, школярів і студентів, зовсім трохи навчаєш, і вуаля, у тебе команда. Спробуй таке перевірити з яким-небудь c++.

На мітапі прозвучав вислів «набрати м'ясо», який писатиме код. Це між іншим сказав євангеліст golang, який з усіх сил умовляв всіх перейти на го.

Стоп!

Він сказав... «м'ясо»??

Він так і сказав, мені не почулося!

І тут, як кажуть, мене накрило. Чи хочу я зробити go своєю основною мовою розробки? Тобто. стати «м'ясом»?

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

Ну гаразд, припустимо, гроші не найголовніше.

Але і тут go зі своєю гіперпростотою можливо ніколи не буде чимось захоплюючим. У чому challenge (крім як вивчити нову мову за вихідні)? Де архітектура, де головоломні патерни, про які можна посперечатися з колегами?

Ну тобто вигода мови го для бізнесу зрозуміла, а як щодо програміста? Яка мотивація на перспективу?

Насправді це сильно нагадує розвиток php в нульових роках. Тоді мова була надзвичайно проста, і за рахунок цього нею стали писати абсолютно всі. Кожен студент міг накидати глючний сайтик за копійку, не заморочуючись з ОВП, патернами, та й взагалі ні з чим.

Але! Php відтоді сильно ускладнився, покращився, зараз це повноцінна мова з розвиненою інфраструктурою і, насправді, вже чималеньким порогом входу. У мову напхали замикання, генератори, повноцінне ОВП, трейти, опціонально сувору перевірку типів тощо. Зараз, щоб знайти нормальну роботу на php, потрібно знати хоча б один рейкоподібний фреймворк.

Але го - не php. Він замислювався простим by design, а не тому що так вийшло. І на ускладнення вони не підуть ніколи.

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

Якщо вже дивитися на модні мови на перспективу, то можливо варто звернути увагу на rust або щось подібне. Там без розуміння концепції володіння не скомпілюєш навіть helloworld-оподібну програму. Ось де challenge!

Підведу підсумки.

Незважаючи на те, що я написав вище, мова мені все-таки подобається)

Загалом, поки що для себе я вирішив, що можливо буду використовувати мову го для якихось речей (наприклад, якщо буду каламутити який-небудь стартап), але напевно ніколи не зроблю її своїм основним, тобто першим рядком в гіпотетичному майбутньому резюме.

Власне, дуже цікаво знати думку тих, хто постійно пише на го, поділіться пліз, що вас мотивує на майбутнє. Це той рідкісний випадок, коли дуже хочеться поміняти свою точку зору на протилежну!