@P747

Go — замена PHP в плане многопоточности и производительности?

Добрый день!

Те кто пробовал язык Go в работе, так ли он хорош как про него говорят? Что вам понравилось/непонравилось в нем?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
bingo347
@bingo347
Бородатый программер
Как и руби, go - это write only language...
Легко и быстро прототипировать. Когда нужно опробовать бизнес идею и выбросить на рынок MVP еще вчера - лучше языка и придумать сложно. Но вот поддерживать потом это больно и дорого...
Очередной раз скопипастив проверку на ошибку или проброс ее дальше, начинаешь молиться на тех людей, кто придумал DRY и проклинать авторов go, за дизайн этого языка.
И вот вроде лучик хорошего, вместо наследования нам пытаются продать композицию, только сделана она через одно место и Вы легко потеряете за ней контроль.
Полиморфизм? Я их знаю 3 вида. И я считаю, что полиморфизм - это как раз тот инструмент, который позволяет делать нам по с учетом DRY, SOLID и прочих красивых аббревиатур... Вот только в go нет ни одного из них... Вместо него Вам дают ужасную утиную типизацию. Серьезно... Когда мне говорят, что в JS утиная типизация, я смеюсь и говорю, что в JS прекрасная система типов и предлагаю посмотреть на go, так как если Вы хотя бы 10 минут изучаете чужой код, то Вы уже как минимум 3 раза спросили себя, какой калека написал здесь interface{} вместо типа...
PHP хороший язык. Он позволяет писать как говнокод, так и весьма красивое и правильное ООП. Мне лично не хватает в нем ФП, но жить без него там можно. PHP7+ весьма быстр, а с некоторыми аддонами может в многопоток... Не так просто как в go, но может...
Стоит ли та простота прототипирования и верчения горутинами нескольких человекожизней поддержки кодовой базы чуть сложнее хелловорлда? Решать Вам...

P.S. Если Вы действительно уперлись по производительности не в IO (БД, диск, сеть и т.д.), а в Ваш любимый php/js/python/java/C# - go Вам не поможет, Вы словите абсолютно те же stop-the-world от gc, в добавок Вы словите издержки на работу шедулера, рулящего Вашими 5 тысячами горутин на 4 потоках cpu... (вы еще не знали, что гипертрединг зло? посчитайте ченить cpu-зависимое на go в нескольких потоках...). Если Вы действительно уперлись в производительность своего ЯП - посмотрите в сторону C++ или Rust. Если не уперлись - переписывать все на хайповый go точно не стоит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Senior .NET developer
Почему не .Net Core ?
Рантайм весит ок 100мб Освоить после PHP будет относительно легко.
И нормальная IDE вам не даст сильно накосячить.
Из плюсов нормальная многопоточность и ассинхронность из коробки.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы