Какой выбрать язык для бэкенда мессенджера (Python/Java/Node.js)?

Разрабатываем мессенджер под Андроид и iOS. Почти готово MVP, серверный стек php 7, symfony 3, mysql 5.7, doctrine-orm, websockets, REST, SOAP, nginx. И тут от нас отваливается бэкендщик. Все сходятся во мнении что PHP для нашего проекта отстой и нужно переписать серверную часть сразу с намеком под масштабируемость. Нужно менять стек.
Ерланг и Руби не рассматриваем - мало разработчиков. Что посоветуете?

Мнения:
- если мессенджеру нужно обрабатывать большое количество одновременно общающихся между собой людей, то здесь лучше подойдёт WebSocket, а это значит бекэнд должен быть демоном, а PHP для этого плохо подходит;
- Node.js хорош в плане производительности, но ужасный callback hell и ООП;
- Python – хороший выбор, но больше используют как склейку;
- Java – хороший выбор, жрет много памяти, строгая типизация=большое время разработки;
  • Вопрос задан
  • 3072 просмотра
Пригласить эксперта
Ответы на вопрос 5
sim3x
@sim3x
то здесь лучше подойдёт WebSocket
нет

Node.js хорош в плане производительности
нет
но ужасный callback hell и ООП
нет

пишите, на том на чем умеете

Погуглите "пуш уведомления" и firebase
Ответ написан
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Писать на том что знаете.
А вообще коль бэкенда уже нет так зачем вообще идти по костылям и граблям которые уже давно прошли? Чем не устраивает xmpp\matrix.org\irc. Сервера\клиенты есть на любой вкус и язык и пиши только плагины\расширения. хочется вот прям совсем много чего по другому сделать так есть готовые либы для клиент\сервер от них же. Решены проблемы с кластеризацией под *овердохера* клиентов, решены проблемы секъюрности. why not как говорится или же цель пройтись по всем граблям и вместо наращивания фич заниматься пилилкой ядра и базовых вещей?
Ответ написан
Комментировать
Если вы возьмёте следующего бэкендщика такого же [цензура] "знатока" стека, как предыдущий, он вам накидает такое же [давно], и не спасёт ни Python, ни Java, ни Node.js.
Дело не в языке, а как его применять и в связке с чем.
Масштабируемый прототип бэка для обмена сообщениями поднимается на любом языке за несколько недель, даже на PHP (хотя, конечно, PHP совсем для других задач, и тут да, лучше без него. Но можно и на нём, лишь бы человек был хороший).
TL;DR: найдите сначала толкового бекендщика, он сам вам скажет, на чём будет писать.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
"PHP для этого плохо подходит"
Какой онлайн предполагается быть? У нас 100 тысяч пользователей отлично жило на fastgci c PHP и mysql.
Потом сделали кластер для mysql, а для API так и не понадобилось.
Ответ написан
Комментировать
@nemoisfree
callback hell в node.js победили
есть koa.js который построен на async\await , у него большое комьюнити и к нему есть мидлвары для работы с socket.io

пример async функции

async function superFunc(url) {
try {
let result = await fetchData(url); //здесь промис
} catch(e) {
console.log(e);
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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