Always consider nodejs
Imagine a project where all developers have one mindset, one language and can contribute to all parts. One big, happy, development family.
ts time to start a new project. You analyze your challenge, talk to the client and its IT staff and analyze some more. You realise that it’s up to you to choose platform. For once, the client doesn't have any specifications, and the IT guy trusts you. No CMS this time.
You think again, and have the opportunity to choose freely. You don't see an immediate reason to choose one over the other because this project doesn't seem to benefit specifically from either PHP, .NET, Java, Ruby, Node or whatever.
Why?
Lets imagine that you are creating a typical web solution. It might be a single page app, a normal website with a some more javascript, or a super complex, html5 real time game. You and the team, both backend and frontend programmers, like (or at least don't dislike) javascript. And of course, you aren't afraid of callbacks, events and nodejs.
At this point, you and your team, will benefit from the great strengths of nodejs as a backend platform. And I’m not talking about what makes nodejs specially great. Its not about the async aspect. Not about scalability. Not about its non blocking nature. These are all great, but there is a fuzzier reason to choose it.
Your team, from backend to frontend developers, can read the same code. They know the basics, they know the syntax and they can all contribute to the solution on both parts. You have one mindset together. All developers can contribute to all code. Everyone talks the same language. The understanding of the whole project increases. Add some event communication handling between server and client and suddenly even the messages back and forward are handled in the same way.
You get one unanimous (javascript) development party.
There are, naturally, situations when this doesn't matter. Or when you might like to separate frontend and backend more. And a situation when you can choose 100% free isn't that common, be it because of your client specs or the need for a CMS.
But if you happen to get in a situation like the one above, think about it.
So if:
- You like javascript
- You are comfortable with callbacks
- You have a team with javascript skills
- You aren't afraid of nodejs flexibility and responsibility Then your project will benefit greatly from nodejs because your complete team will:
- Be using the same language
- Have one mindset
- Be able to contribute to all parts