Выбор для backend GO или PHP?

Хочу сделать бекенд для приложения (расширения для браузеров), пока еще не определился будет ли websocket или стандартные get запросы к серверу, но я рассчитываю что в минуту может быть 10-20 тысяч запросов. Вот собственно и думаю что использовать GO как бы круто и тд но в реальных условиях и в крупных нагрузках я его ни разу не использовал.
PHP просто проверенный временем и не более.

Думал по поводу nodejs и передумал, дальше фронтенда он не уехал. и писать на нем сложные приложения а потом тестировать и дебажить можно афигеть от этого ужаса
  • Вопрос задан
  • 8871 просмотр
Пригласить эксперта
Ответы на вопрос 5
@grinat
Нода вообще никакого отношения к фронтенду не имеет и в браузере не выполняется. Если вебсокеты, то php весьма и весьма сомнительный выбор. Если нода, то там в большинстве случаев на js просто биндинги для либ на c++. А go это язык со своей спецификой, если будешь его в духе php использовать, т.е. рефлексия, позднее связывание, передача interface{}, то он будет работать со скоростью php.
В фаворитах тут разумеется go и nodejs, но вопрос в том как ты будешь на них писать.
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
1. Нагрузку меряют в RPS - requests per second.
Ваши страшные "20 000 запросов в минуту" превращаются в скромные 300 rps.
Правильно написанный код на PHP без проблем держит 600-700 rps на одном сервере.

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

3. В любом случае если у вас реально будет нагруженный проект - есть смысл сразу думать про возможность полноценного горизонтального масштабирования. Это существенно усложняет разработку, но реально решает проблему. Любые пляски вокруг языка, конкретной базы итд - это предтечи вертикального масштабирования, а не горизонтального.

4. С учетом выше изложенного - абсолютно пофиг на чем писать.
Go - стильно, модно, вакансий очень мало, требования в них высокие - но з.п космические.
PHP - все прямо наоборот, вакансий море, требования не высокие, з.п... разные.
Как менеджер, я для проектов выбираю PHP. Что выбрать вам - дело дальнейших ваших планов.
Ответ написан
Комментировать
marperia
@marperia
Дизайнер, программист, писатель
Я, как фанат го, настоятельно советую Falcon.
Во-первых, на кастрированный (по сравнению с явой и плюсами) язык будет очень непросто перейти, минимум месяц уйдёт прежде, чем вы напишете что-то поддерживаемое.
А во-вторых, Falcon — это потрясающий MVC-фреймворк: быстрый, похож на PHP, с хорошей внутренней архитектурой и возможности писать хорошую поверх него, что среди PHP-фреймворков довольно редко встречается.
Ну и по поводу ноды... Не хочу вступать в холивар, но нода — ассинхронный кал. Почему? Например, вот: https://medium.com/@jdan/i-peeked-into-my-node-mod... И всё это ассинхронно, а с этим надо уметь работать. Горутины рулят.
Ответ написан
kentovsky
@kentovsky
php, js, mysql разработчик
php7 быстро летает 20 тыщ запросов не проблема и учить GO не нужно.
если хочешь еще быстрее можно использовать фрейворк Phalcon он написан на Си и постоянно висит в памяти, работает еще быстрее (для Phalcon4 надо использовать php7.2)
Но как писал человек выше, все может упереться в базу, и как будет спроектирована база многое зависит.
Ответ написан
Комментировать
Dejurin
@Dejurin
Software engineer
Добавлю свои 5-коп.
Стал вопрос переписать веб-сайт на с PHP на Go. Все потому, что сайт обновляется каждую минуту, генерируется "на лету", имеет много языковых версий, и в целом очень много страниц. При обходе гугл роботом сайт начинает тормозить.
Так как сайт динамический, PHP обрабатывает Frontend и Backend, генерирование страниц на PHP затея дорогостоящая. Если бы PHP обрабатывал только Backend оставил бы как есть.

Вывод: если вам нужно получить много req/sec (Frontend и Backend) я бы все таки выбрал Go (AERO, GIN), если только Backend PHP достаточно (Phalcon или какой-то роутер фраймворк).

На заметку: PHP Micro & Router Framework Benchmark
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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