Подходит ли Golang для новичков

Подходит ли Golang для новичков

Последнее время язык программирования Golang ворвался в отрасль и стал захватывать все большие сферы применения. Поэтому многие стали подумывать – а не переучиться ли мне на Golang-программиста, а также появились многочисленные курсы: «Как стать Go-программистом». В этой статье я разберу причины, по которой молодым разработчикам не стоит обращать внимание на Golang, а лучше выбрать другой язык программирования.


Для чего был создан Golang

Язык Golang был создан в недрах корпорации Google опытными разработчиками, для решения своих внутренних задач. Цель, которая стояла перед создателями Go — разработать простой, эффективный и понятный язык программирования, который мог бы использоваться для создания качественного софта в рамках микросервисной архитектуры многочисленными разработчиками Google.

За основу бралась парадигма, что вот есть опытные и высококлассные разработчики Google на Java, Python и C++, которым нужно дать более эффективный инструмент.

Т.е. язык изначально предполагал, что им будут пользоваться опытные специалисты, которые будут решать задачи Гугла, а это далеко не самые простые задачи. И код этих решений будет проще поддерживать, чем код на C, C++ или Java.

Где используется сейчас Golang

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

Например, есть сайт, который получает от пользователей гигантские объемы фотоматериалов. Этот сайт на уровне бекенда отсылает фотографии в микросервис на Go, который в несколько потоков проводит разметку и сжатие фотографий и выплевывает их обратно. И микросервис на Golang делает это эффективнее, чем аналогичный сервис на Java, и при этом его разработка идет гораздо проще и быстрее, нежели писать его на C++. Вот для таких задач Golang подходит лучше всего.

Любые попытки писать какие-то полноценные бизнес-решения на Golang приводят к тому, что программистам приходится придумывать многочисленные велосипеды, которые уже теряют всякий смысл, проще взять ту же Java.

Как используется Golang в России

Допустим у нас есть компании типа Avito, Badoo, Cian, Домклик, у которых вся бизнес-логика написана на php или python. Руководителей этих компаний устраивает скорость разработки и внедрения новых фич, однако какие-то тяжелые операции начинают требовать слишком много серверов для выполнения, а их архитектура начинает быть переусложненной.

Тут они решают, а давайте мы возьмем эту сложную логику, вынесем её в отдельный модуль на Golang, который будет работать эффективно и сэкономит нам кучу денег на серверах и сделает код основного проекта на php/python проще.

Идея хорошая, поэтому они размещают вакансию, где ищут человека, который знает одновременно и php и golang. Почему так? Потому что им нужен человек, который разберется в существующей работе модуля на php и сможет переписать его на golang. И объективно человек с такими возможностями должен быть уровня middle+.

Почему Golang не подходит для новичков

Как вы уже поняли из статьи выше, на Golang решаются сложные задачи, которые объективно потянет лишь опытный разработчик, который помимо Golang знает другие языки программирования.

Поэтому, даже если вы сумеете как-то выучить Golang на достаточном уровне, вам все равно не найти работу, так как знание одного Golang будет недостаточно. И это объективная реальность, можете сами посмотреть вакансии и понять, что к чему.

Почему Golang подходит middle-разработчикам

Если вы уже опытный разработчик уровня middle+ (3-4 года опыта) и вас по какой-то причине не устраивает ваш текущий стек (php/python/java и так далее), вы можете уделить время Golang и перейти в другую компанию на него. Ваш опыт до изучения Golang сыграет сильно вам в плюс, и зарплата будет повыше, ибо на Golang нужно решать челенджовые задачи.

Стоит ли изучать Golang новичкам

Если вы новичок, то выберите для старта более понятный язык программирования: php/python/java/c#, а к Golang вы всегда сможете вернуться, когда дорастете до мидла и будете уже готовы решать сложные задачи в рамках гигантских проектов.

Помните, что Golang – не самый лучший и эффективный язык программирования, он просто решает лучше всех узкоспециализированные задачи, для которых был создан. Для множества задач он будет далеко не самым лучшим выбором.

ссылка на оригинал статьи https://habr.com/ru/post/540014/

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *