LINUX.ORG.RU
ФорумTalks

В чём прикол использования go в качестве серверов (высоконагруженных)?

 , , ,


3

5

Я прочитал статью " Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go» " ( https://habrahabr.ru/post/337098/ ), и у меня создалось ощущение, что чувак умом тронулся. Go - хипстерский язык, на который вообще нет никаких стандартов (в отличии от XEP явы), на котором пишут обычно просто мелкие сервисы и утилиты.

Каким образом на go можно писать нормальные сервера, если:
1. это развивающийся язык => никакого энтерпрайза
2. либы отвратительного качества (и количества) => никакого энтерпрайза
3. go изначально проталкивался одним человеком, который упоролся, а гугл выделил ему ресурсы на создание языка.
4. зачем, если есть java для бизнес-логики?
5. зачем, если есть nodejs для вебни? Причём не знаю, почему автор гонит на производительность, на том же хабре была статья, где на nodejs делали http/https-балансер (прокси с ssl-терминацией и оркестрацией виртуалок в облаке, запуская и останавливая их в зависимости от нагрузки).
6. зачем, если есть rust для быстроты и низкого уровня?
7. зачем, если есть python для админских скриптов с кууууучей либ?

Также язык:
1. Не асинхронен.
2. Не предназначен для энтерпрайза.
3. Бинарный (но при этом нельзя использовать для системного программирования, как rust).
4. Неудобный перехват эксепшенов.
5. Плохо документирован.
6. Нету каких-то киллер-фитч, типа (как в той же nodejs) простая организация очереди, тредов (причём нормальных, а не green), позволяя быстро делать многотредовые прилоежния). Или специализация на определенных задачах (например, как php и nodejs на вебне).

В чём соль? Очередной хипстерский хайп или я, как обычно, не догоняю за современной модой, предпочитая классические решения (типа J2EE на IBM i)?

No trolling.

Перемещено beastie из development



Последнее исправление: ktulhu6662 (всего исправлений: 1)

Ответ на: комментарий от quester

Какие-то моменты да, выглядят стремно по сравнению со скриптовыми ЯП. Но не на столько как в других, сравнимых по скорости работы программы, языках.

Siado ★★★★★
()
Ответ на: комментарий от slovazap

Ага, чтобы уязвимость в каком-нибудь модуле осталась в системе навсегда. А использовани репозитория даёт консистентную, проверенную и заточенную под дистрибутив среду, при этом позволяя её гладко обновлять. За тебя половину работы сделали - пользуйся, нет - хочу pip'ом обмазаться.

Ну-ну. В реальной жизни ты при таком раскладе в лучшем случае получишь кучу протухших библиотек, с которыми ни один автор работать не захочет.

Vit ★★★★★
()
Ответ на: комментарий от Siado

Он взлетел из-за безальтернативности.

Это не безальтернативность, это богоизбранность :)

Vit ★★★★★
()
Ответ на: комментарий от Virtuos86

А что делает пример?

Там кнопочка «run» есть. Да и из контекста, если ты тред читал, должно быть понятно. Но если не понятно - то задача декодировать json строку и взять оттуда только несколько параметров. При этом параметры могут быть вложены

Siado ★★★★★
()
Ответ на: комментарий от Siado

Ссылку на плейграунд не дам, ибо использована сторонняя либа. Писал на глазок, код может и не скомпилироваться:

extern crate json;

fn main() {
    use json::{parse, Error};
    let json_data = r#"{"a":1, "b":2, "x":1, "y":1, "gg":435}"#;
    let parsed_data = match parse(json_data) {
        Error(err) => panic!(err),
        data => data
    };
    println!("{}", parsed_data);
    println!("{}", parsed_data["gg"]);
}

Virtuos86 ★★★★★
()
Ответ на: комментарий от Vit

В реальной жизни только этот подход и работает, а с кучей протухших библиотек ты остаёшься когда используешь pip и фиксируешь версии. А если не фиксируешь, остаёшься с поломанным проектом.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

У нас видимо разная реальная жизнь. Когда у тебя зависимостей больше чем полторы штуки, никто никогда в жизни тебе не запакетирует все что требуется, и множественные версии будут конфликтовать.

Если тебя так сильно волнуют вопросы безопасности, используй инструменты вроде https://snyk.io/ вместо того чтобы пытаться впихнуть непвпихуемое в пакеты.

Vit ★★★★★
()
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от Siado

Давно было дело, заржавел мой Rust. Никак не можно.
PS А уже и написали гляжу...

staring_frog
()
Ответ на: комментарий от Vit

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

Это вы с позиции своего недоделанного дистрибутива говорите, наверное. У меня во FreeBSD всё что мне было нужно, как ни странно, находилось, свежих и совместимых между собой и с системой версий. Сейчас вы от отсутствия аргументов конечно же скажете что у меня зависимостей те самые полторы штуки, но мимо.

множественные версии будут конфликтовать.

В репозиторий обычной не пихают множественные версии. А вот с pip на это наступить реально.

Если тебя так сильно волнуют вопросы безопасности, используй инструменты

Если вы не поняли, у меня уже есть работающий инструмент.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

В репозиторий обычной не пихают множественные версии. А вот с pip на это наступить реально.

Ваш волшебный рецепт называется «сидеть не легаси». Остальной пафос к делу не относится.

Vit ★★★★★
()
Ответ на: комментарий от slovazap

Я не раз наблюдал ситуации, когда зависимости тянут несколько версий библиотек. И ни фряха ни хамство зависимости волшебным образом не починят. А на микромодули еще и ментейнеров не напасешься.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Я не раз наблюдал ситуации, когда зависимости тянут несколько версий библиотек.

Такое редко, но бывает, и что? В портах их патчат так чтобы конфликтов не было. Ни pip ни кто то ещё ничего тебе не пропатчит.

И ни фряха ни хамство зависимости волшебным образом не починят.

Да вот в том то и дело что только фряха и починит.

ни хамство

Конечно, что ещё остаётся когда аргументов нет, а инфантильность не даёт признать свою неправоту и извиниться - только обвинить оппонента в хамстве.

А на микромодули еще и ментейнеров не напасешься.

Какие ещё микромодули? Мантейнеров, как видите, хватает, иначе фряха не была бы на первом месте.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Ни pip ни кто то ещё ничего тебе не пропатчит.

Там не надо патчить.

Конечно, что ещё остаётся когда аргументов нет, а инфантильность не даёт признать свою неправоту и извиниться - только обвинить оппонента в хамстве.

Я никого не обвиняю, просто констатирую что подобными высерами зависимости не чинятся. Но у вас определенно нервишки шалят, если опускаетесь до подобного.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.