What criteria should be analyzed in the language choice for creating an application? Performance is everything? [closed]

1

I need to create an application that is the source of communication between several other applications with the database, that is, other applications will make requests for this application that will be created, and it will have a duty to relate to the database and send the result to the requesting application.

So I thought about creating it in some language other than C ++ (because it is the one I know the most so far) in order to learn a new language. So I ask: what criteria should I look at when choosing a language for creating a new application?

Another thing that has made me very worried is the impact it can cause using a language that has inferior performance to C ++. I think this way: the higher the performance, the better. So, if a C ++ code takes a 0.013ms to complete, what advantage would my me and my application have in using another language that can take 2,085ms or even more? And in online game servers, for example, MMORPG that has a whole system of level up, PvP and etc. Could this delay in code execution interfere with user playability?

    
asked by anonymous 06.04.2017 / 00:23

1 answer

3

On the performance it would be good to understand that what gives performance are good algorithms, the correct data structures, the proper implementation. A good programmer can do something faster in another language than a bad programmer can do in C ++.

Actually the chance of a bad programmer doing something terrible in C ++ and not even realizing it is greater than doing something so bad in a simpler, higher level language. I mean, there's a reasonable chance of a bad programmer doing in a simple and good language something almost comparable to a reasonably good programmer in C ++, at least at some points.

C ++ no longer performs automatically. It allows more performance if everything is done right. In some cases to get it right and having the best performance in C ++ gives a lot of work.

Not everything needs this whole performance, so it's a mistake to pursue a feature this way.

Actually, I'd even need to better define performance. Only in the text of this question do you have at least two different performance settings and you probably did not realize it.

A good programmer will make any language quick for what it needs unless there is really no way, but then it will have subsidies to define that it is not good.

Languages do not have speed, they have mechanisms that help to have speed or speed, if used correctly.

Of course, the delay can affect the gameplay. But there is a lot of something else that can affect more. And I honestly do not know if slow language can be 200X slower than C ++ in most things. Have languages will be faster on something.

Of course dynamic languages are probably out of the question because they have a big performance difference in many operations.

But if you want to do something in a browser , at the moment the only option is JavaScript.

Do you need to run on all mainstream desktop and mobile platforms? Certainly it can not be Delphi or Java, Swift (so far).

Need a monolithic executable? It can not be anything over .NET, so far, soon enough. Java is in the same boat, in fact today does not even run if you do not install the Java platform.

Need a complete ecosystem, a very active community? It can not be D, Rust, Go, etc. That is, it can not be anything very novel, nor very old that is already considered legacy.

Would any functional language be appropriate? I have no way of knowing, there are cases where they are great. You have to learn to program again, everything is different. There are cases that they behave terribly.

This can only be done in concrete case with clear requirements, and is not the case of the question.

You have to have the requirements before, then see if the languages serve them all. Probably none at all. So you have to see which ones meet the most important ones and in greater numbers.

In conclusion, choosing language is the easy part of doing something that requires maximum performance. And if you trust what you read on the internet the choice will probably be wrong. There are a lot of people trying to sell their fish shown that their preferred language is better than the others, and many can be quite convincing, often because he believes in that. Benchmarks lie.

    
06.04.2017 / 00:59