solovyov.net

Когда стоит использовать Go?

2 min read · programming, go

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

Так вот, когда? TL;DR: никогда.

Длинный вариант: если вам прямо сейчас нужно что-то скомпилированное и ждать Rust 1.0 нет сил, а OCaml выучить нет времени, то ок, конечно же, right tool for the job и всë такое (впрочем, мне кажется, что вы себя обманываете).

Во всех остальных случаях - уже можно взять Rust, они перестали менять весь язык полностью, и он уже рабочий, либо возьмите уже OCaml, не настолько он отличается. Единственный плюс Go перед этими языками - что в нëм может разобраться Python-программист за один вечер.

Горутины с каналами? В Rust есть green и std::comm, в Ocaml’е есть Lwt и Async. Типизация? Посмешище в Go типизацией назвать может только поклонник Java 1.0. Даже архиконсервативная Джава обзавелась дженериками 10 лет назад. Хендлинг ошибок? Одно из двух самых болезненных мест в Go, конечно. Не сравнить с языками, где типизация позволяет их нормально хендлить и обрабатывать, а не засорять весь код if err != nil.

Что там еще про Go можно сказать? Что по скорости он не джава, конечно, и даже не кложура, но хотя бы памяти мало использует? Ну так и раст с окамлом тоже не самые прожорливые языки.

Можно вспомнить, что два из трëх моих самых популярных проекта на гитхабе - gostatic и goreplace - написаны на Go. Ну так это ошибка молодости, хех. Я программировал на питоне и окамл мне казался слишком страшным, а с го я разобрался за один вечер. Ну так я и пытаюсь предостеречь всех тех, кто может сделать ту же ошибку. Just don’t do it.

P.S. Почему OCaml, а не Haskell? Хаскель ленивый и сильно сложнее Окамла. Если есть желание, впрочем, тоже ок, наверное. Я не против Хаскеля, ни в коем случае, я против луддизма.

If you like what you read — subscribe to my Twitter, I always post links to new posts there. Or, in case you're an old school person longing for an ancient technology, put a link to my RSS feed in your feed reader (it's actually Atom feed, but who cares).

Other recent posts

ngrok for the wicked
PostgreSQL collation
History snapshotting in TwinSpark.js
Code streaming: hundred ounces of nuances
Useful shell prompt