Код
#статьи

Спорный язык, похожий на PHP: зачем учить Go

Почему кодить на Go намного быстрее, чем на PHP или C#, стоит ли с него начинать и почему это следующая ступень развития PHP-разработчика.

tesla / youtube

Сергей Пешалов

об эксперте

Senior-фулстек-разработчик, в основном пишет на PHP, но для личных проектов использует Go. Последние четыре года живёт в Краснодаре и работает удалённо.


Ссылки


Go — молодой язык программирования, который разработали в Google. Чаще всего на нём делают бэкенд. Go почти такой же производительный, как C, но его простой синтаксис помогает писать код намного быстрее.

Мне нравится, что Go похож на PHP, но при этом в нём есть защита от дурака, работа с сокетами и многопоточностью. Я бы не стал писать на Go большой корпоративный монолит, но он хорошо подходит для моих проектов.

Почему я выбрал Go

Go — не первый мой язык программирования. В школе я учил Perl, в университете — Delphi и Pascal, потом заинтересовался вебом и перешёл на PHP. После учёбы кодил на JavaScript, немного на Java и Scala. Сейчас я Senior-фулстек-разработчик и пишу на PHP.

Про Go я узнал на одной из конференций по PHP. Там обсуждали, что в PHP нет асинхронности и многопоточности: чтобы решить специфическую проблему, нужны библиотеки или сторонние инструменты. Один из спикеров посоветовал: «Если на PHP что-то сделать не получается, возьмите Go».

Я попробовал Go, мне понравилось, стал изучать его глубже. Сначала рассматривал Go как инструмент, который закрывает ряд пробелов PHP — например, работу с сокетами и многопоточностью, — потому что Go умеет всё это «из коробки».

Освоить язык было несложно. Когда у тебя есть опыт в программировании, новые технологии учишь быстро. Первые языки я осваивал ещё по учебникам и англоязычным книгам, поэтому сейчас для меня разобраться с чем-то новым гораздо проще — всё хорошо задокументировано. На сайте Go есть небольшой курс — после него можно спокойно писать микросервисы.

Главные плюсы языка

Мне нравится, что в Go всё просто и быстро, а в коде трудно сделать ошибки. Вот основные преимущества Go:

Лаконичный синтаксис. Для одной и той же задачи код на Go будет короче, чем на PHP. Многие вещи делаются элементарно. Например, не надо указывать, публичный метод или приватный: если он назван с прописной буквы, то публичный, если с маленькой — приватный. И таких удобных моментов довольно много.

Поднять сервер на Go совсем просто — в две команды заставляем язык слушать нужный порт, затем берём метод main и внутри разворачиваем третью команду.

Защита от дурака. Go задуман так, что программисту трудно выстрелить себе в ногу — этого не даст сделать компилятор. В отличие от С-подобных языков, здесь компилятор сам управляет памятью, потоками и блокировками. Обычно вам не нужно ни о чём думать.

GoLand, которая стоит у меня, автоматически проверяет код — если там есть неиспользуемые переменные, она предупреждает: «Удали этот мусор».

Go похож на PHP

Из-за С-подобного синтаксиса Go напоминает PHP, поэтому код довольно удобно читать. Если раньше вы писали только на PHP, то сможете прочитать код на Go. Зато после PHP те же Scala и Ruby похожи на Python. Смотришь и думаешь: «Блин, что это такое? Дайте мне лучше Java».

Одним из прямых конкурентов Go я считаю Node.js, потому что это лёгкий и быстрый фреймворк и на нём собирают те же веб-сервисы. Go занимает ниши и других языков. Например, зачем долго писать проект на Java, когда проще всё сделать на Go? Но для большого корпоративного монолита я бы предпочёл взять Java.

Стоит ли начинать программировать с Go

Go — своеобразный язык. Учить его после других языков программирования очень просто, но для старта он подойдёт не всем.

Если вы планируете работать в классическом ООП, то после Go придётся переучиваться. В языке есть структура и модули, но в нём нельзя создавать классы или использовать наследование. Если эти возможности вам нужны, тогда для старта больше подойдёт PHP — у него С-подобный синтаксис и есть типизация. В языке легко разобраться, и уровень вхождения у него точно ниже, чем у Java.

Go — хороший выбор, если хочется быстро начать и не заморачиваться с ООП. Чтобы выучить C# или С++, нужно долго сидеть и набивать шишки, но в Go хватит короткого курса.

Я не могу дать универсальный совет вроде: «Сначала учите PHP, а потом — Go». Нужно понять, что вы хотите писать, сравнить цены на курсы, узнать зарплаты в своём регионе. Так вы легко выберете язык. Если собираетесь делать приложения на iOS, лучше сразу учить Swift.

Неважно, какой язык вы решите выбрать как первый. Если хорошо в нём разобраться и год поработать на проекте, вы легко выучите другой. Хуже, когда люди решают стать программистами и сразу покупают курс за 100 тысяч рублей. В учебнике за тысячу рублей будет то же, вопрос только в самомотивации.

Вывод

Иногда о Go плохо отзываются те, кто пишет на C#, C++ или Rust, — мол, любое приложение на Go стрёмное и кривое. Я не согласен, потому что это вкусовщина: одним язык нравится, другим нет. Кто-то из хейтеров вообще просто завидует, ведь на C# он будет писать проект неделю, а на Go всё делается намного быстрее.

Мне очень нравится Go. И, хотя на работе мне приходится писать только на PHP и взаимодействовать с базами данных (ClickHouse и MySQL), на Go я собираю небольшие сервисы. После PHP язык Go понравится многим — и, на мой взгляд, это одна из ступеней развития PHP-разработчика.


Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие.
Каталог возможностей
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована