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

Server-Sent Events (SSE), but with POST
ngrok for the wicked, or expose your ports comfortably
PostgreSQL collation
History Snapshotting in TwinSpark
Code streaming: hundred ounces of nuances