Задать вопрос

Golang и highload

1. — Какие преимущества даёт Go по отношению к альтернативам?

2. — Как скоро и насколько изящно решается его основная проблематика?

3. — Почему вы выбрали или не выбрали Go?
  • Вопрос задан
  • 7444 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
EugeneOZ
@EugeneOZ

Недавно Cloudflare писали статью о том, как они попробовали Go и теперь всё переписывают на нём. Отличный пример highload. А также Iron.io и Disqus.

1. Мгновенная компиляция, хорошая производительность, удобная параллелизация процессов.

3. Динамично развивающийся язык, уровень вхождения сопоставим со скриптовыми языками, всё больше проектов из highload его хвалят.

Ответ написан
Комментировать
eremeevdev
@eremeevdev
А вот тут bitly рассказывает их опыт с go
Ответ написан
Комментировать
ataraev
@ataraev
Ruby, Go
вот еще digitalocean
Ответ написан
Комментировать
voidnugget
@voidnugget
Программист-прагматик
1 - гораздо короче цикл разработки, хорошо проработан инструментарий и конкретные подходы к разработке, по сравнению с JVM языками и Rust / Python
2 - надо уметь в кодогенерацию, очень много кодогенерации... потому вопросы все решаются "шаблонно" и зависят от количества уже существующих наработок и качества выработки подходов к разработке
3 - быстрое TDD, относительно большое количество стабильных библиотек аналогов которых нет в других языках, есть подходы типа zero-alloc (0lloc) и gc-less конкретно для highload'a (стоит глянуть как работает fasthttp и как там происходит аллокация, на пулах и с ресайзом слайсов), в случае с JVM надо там во всякие disruptor'ы уметь и прочий морально устаревший бред... jmh не умеет нормально полить аллокации и мониторинг GC тоже местами поверхностный, а объектная модель незаурядно раздута (привет Project Panama).
С недостатков - монолитный и топорный Runtime, а 99% поделок сообщества и правок просто обесцениваются и игнорируются... тяжко, например, там какой-нить F-Stack прикрутить и т.д. без допилки компилятора и рантайма. Хотя в случае с JVM это почти невозможно. Про Python/Rust не могу сказать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы