Pull to refresh

Месяц назад мы вместе с Хабром спросили у Go‑разработчиков, чем они живут, над какими задачами работают и где черпают полезную информацию о Go. В этом посте расскажем об основных инсайтах, а также узнаем, почему многие Go‑разработчики знают Python и мечтают выучить Rust.

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments13

Comments 13

Что-то тут не вяжется. Люди использующие Go как основной инструмент, собираются расширить свой стек изучив PHP... При этом в дополнении с Go изначально PHP использовали только 50... Кстати 50 чего? Человек, процентов? Нижняя ось не ясна.

А еще кое-где легенда по цветам не совпадает с чартом.

Спасибо, что подсветил ошибку в легенде — поправили

Шкала в людях. Да, PHP действительно кажется не самым перспективным языком для изучения в дополнению к Go, но у кого-то это в планах ¯_(ツ)_/¯

и жаль, что не все курсы и ютуб каналы подсветили :(

Чаще наоборот, в дополнение к PHP учат Go. Даже судя по вакансиям чаще вижу "PHP/Go разработчик" чем просто Go или Go в связке с другим языком.

Монолит сам себя не распилит.

За один только список ссылок огромное спасибо!

скудость стандартной библиотеки, которая приводит к необходимости
самостоятельно писать то, что в других языках уже реализовано «из
коробки».

Ну если не брать синтаксический сахар, то не такая она и скудная, и на самом деле хотелось бы более развернутых комментариев по этому утверждению

Приходят в го их питонов поэтому и дженериками не умеют пользоваться.

У нас 2 языка на постоянке в стеке очень разные по "духу" Golang и Kotlin.

Скажу так - меня лично НЕ бесит `err != nil` , гораздо больше бесит когда в ревью я вижу как Java/Kotlin разработчики любят класть болт на обработку ошибок или наоборот использовать исключения для передачи управления. В итоге я на Kotlin начал писать ближе к Golang (используя Result<T> и обязательную реакцию на статус ошибки в вызывающем коде)(правда сам Golang тут непричем, я к такому стилю в Kotlin начал приходить до практичкского исполоьзования Golang или Rust.
Поэтому как раз обработку ошибок в Go я как раз считаю очень и очень здравой.

Меня лично в Go по сравнению с Kotlin/Java/Rust/C++ раздражает какая-то нарочитая недоделанность генериков (и появились как-то не сразу, и появились какие-то недоделанные - нельзя делать Generic методы, только функции без ресивера). Вот они бы могли возглавить рейтинг недовольства.

А вот что прямо радует, без шуток - предельно быстрый, простой и полнофункциональный встроенный тулчейн - модульная система на базе GIT, внятный тестовый движок из коробки, cover, бенчмарки, профайлинг, линтер, документация - все из коробки без необходимости проведения вуду-ритуалов над Gradle как это обычно происходит в Jvm истории

Курс от МФТИ сейчас лежит на рутрэкере.

Удивительно что в курсах нет route256

Обьясните в какой момент становится необходимым rust, когда пишешь проекты на go?

Странное и повсеместное утверждение что синтаксис Go подобен С/С++ .. скорее уже Пасклю, Модуле, Джаве. Даже := взято оттуда! Кстати, если он Си-подобен, то где мои любимые union? :) (дженерики не предлагать). Горутины и каналы .. похоже, что Роберт Пайк притащил в язык Хоаровское взаимодействие процессов, забыв что оно впервые реализовано в Ада.. :) Что не нравится в Go:

  1. err != nil -- это да, "вне конкуренции". Кстати, группы разработчиков часто настраивают линтеры так, чтобы не обработанную ошибку нельзя было подавить через _!

  2. запятая в конце строк.. хотели избавиться от ;, зато наплодили запятых. Ни одна закрывающаяся скобка толко на новую строку не переносится.

  3. for _,item := range slice(map|array) {} 80% циклов с таким перебором .. именно так, скрипач не нужен!

  4. []interface{} -- зубная боль гошника, не смотря на то, что стандартная библиотека этим переполнена по самое не балуйся.

  5. Медленный runtime, использование пакета reflect в недрах стандартной библиотеки, что ещё снижает производительность.

  6. Отсутствие select над слайсом каналов. В Аде такое есть, однако..

  7. Тотальная передача по значению. Дорого и содержит острые подводные камни.

    Что нравится в Go:

  1. Простота и лаконичность синтаксиса. Это вам не Ада.. :)

  2. Небольшая стандартная библиотека, закрывающая (пусть и не эффективно) большую часть потребностей. В принципе есть всё, что требуется.

  3. Интерфейсы, отделенные от структур (объектов). Очень интересный и оригинальный подход в обход ООП. Та же "таблица виртуальных методов", но .. отделенная от класса. Очень переспективное направление, кмк.

ИМХО, как мнение к опросу, на который видимо опоздал.. не для споров. :)

Sign up to leave a comment.