Why use two server-side languages on the same system?

4

Why do I see many systems with two, up to three programming languages?

When I see a system that migrates from one language to another, I even understand, but why do many maintain two or three programming languages?

For example, I've seen people talking about companies using Python and Node.js.

What does Python do that Node.js does not?

Of course, I know the difference between the two languages, but in the general scope, it's almost the same thing.

    

asked by anonymous 07.01.2017 / 14:41

1 answer

6

These decisions usually occur more for the reason you have already identified. They started with a technology and identified that another might be more useful for some tasks. And it is common not to give to make the migration of everything. In general it is not even the language, which in this case could not even be, since Node.js is not even a programming language.

In most cases they have found some library or something ready using a technology different from the one they were using and find it easier to use that and to integrate with technologies than to do something of their own, carry what existed in a technology to another or even find something similar in technology already used.

This last point is important because often the choice is made only because the person who made it does not know other things that will give the same result in the technology he already uses.

There are also political-social changes in the teams that can direct the choices. Many people say they have to choose the right tool for the problem , but in practice decisions occur more based on the best tool is the one you know . What is not bad at all, usually gives better result use something that dominates even if it is not the most appropriate. As long as there is no exaggeration. The problem is when the team does not know how to properly use any technology. Even worse when you believe you know and not be true. Of course the change could be just because the tool was more correct.

Outside that tastes as well. You have no idea how many decisions are made based on technical criteria, or based on false premises.

Programming languages are able to do everything you need. It is only a question of adequacy and only analyzing concrete cases to try to respond appropriately. Apart from the fact that both are languages, their observation that they are almost the same thing is correct. Both should meet fairly well any project and both will bring some challenges.

In general what you can say is this. Of course each case may have a different reason and some are well founded. But most decisions have a bit of arbitrariness or at least non-technical motivations, if not by fad.

    
07.01.2017 / 15:36