D
D
Dmitry2017-06-16 14:14:59
Python
Dmitry, 2017-06-16 14:14:59

Which language to choose for the messenger backend (Python/Java/Node.js)?

We develop a messenger for Android and iOS. Almost done MVP, php 7 server stack, symfony 3, mysql 5.7, doctrine-orm, websockets, REST, SOAP, nginx. And then the backend driver falls off of us. Everyone agrees that PHP for our project sucks and we need to rewrite the server part right away with a hint of scalability. You need to change the stack.
Erlang and Ruby are not considered - there are few developers. What do you advise?
Opinions:
- if the messenger needs to process a large number of people simultaneously communicating with each other, then WebSocket is better suited here, which means the backend must be a daemon, and PHP is poorly suited for this;
- Node.js is good in terms of performance, but terrible callback hell and OOP;
- Python is a good choice, but more used as a glue;
- Java is a good choice, eats a lot of memory, strong typing = long development time;

Answer the question

In order to leave comments, you need to log in

5 answer(s)
S
sim3x, 2017-06-16
@sim3x

then WebSocket is better suited here
No
Node.js is good for performance
No
but terrible callback hell and OOP
no
write on what you know how
to Google "push notifications" and firebase

D
Dmitry Alexandrov, 2017-06-16
@jamakasi666

Write on what you know.
In general, since the backend is no longer there, why go on crutches and rakes that have long since passed? What does not suit xmpp\matrix.org\irc. There are servers\clients for every taste and language, and write only plug-ins\extensions. I want to do just a lot of things differently, so there are ready-made libs for the client / server from them. Problems with clustering for *overdocher* clients have been solved, security problems have been solved. why not, as they say, or is the goal to go through all the rakes and instead of building up features, engage in sawing the core and basic things?

V
Vasily Nazarov, 2017-06-16
@vnaz

If you take the next backend with the same [censorship] "expert" stack as the previous one, he will throw the same thing at you [a long time ago], and will not save either Python, or Java, or Node.js.
It's not about the language, but how to use it and in conjunction with what.
A scalable messaging backend prototype rises in any language in a few weeks, even PHP (although, of course, PHP is for completely different tasks, and yes, it’s better without it. But you can use it, as long as the person is good).
TL;DR: first find an intelligent backend developer, he will tell you what he will write on.

S
Saboteur, 2017-06-16
@saboteur_kiev

"PHP is not good for this"
What kind of online is supposed to be? We have 100,000 users who lived well on fastgci with PHP and mysql.
Then they made a cluster for mysql, but it was not necessary for the API.

N
nemoisfree, 2017-06-18
@nemoisfree

callback hell in node.js won
there is koa.js which is built on async\await , it has a large community and it has middleware for working with socket.io
async function example async
function superFunc(url) {
try {
let result = await fetchData (url); //promise here
} catch(e) {
console.log(e);
}
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question