3

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

 3 years ago
source link: https://solovyov.net/blog/2014/when-to-use-go/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Когда стоит использовать 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? Хаскель ленивый и сильно сложнее Окамла. Если есть желание, впрочем, тоже ок, наверное. Я не против Хаскеля, ни в коем случае, я против луддизма.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK