What’s the best programming language out there? This is probably one of the oldest questions in computer science, and pretty much an obsolete one as well. The reason for that is that it really depends on the goal of the comparison, why are you asking in the first place is what determines the answer.
Nevertheless, we can actually determine which languages are not better than others in specific areas. While it’s really troublesome to say which languages have an edge over another, it’s much less troublesome to say which one doesn’t have an edge in certain areas of comparison.
So without further ado, let’s dig into our topic which is Why C# and python can’t replace C, C++, and Java. We’re definitely talking about some big names here who have been trading places and changing for many years now. let’s take a quick look at the popularity scale before we jump to the comparison.
Popularity scale:
According to September tiobe, the top 10 most popular programming languages are as follows:
- Java: 12.667 percent
- C: 7.382 percent
- C++: 5.565 percent
- C#: 4.779 percent
- Python: 2.983 percent
- PHP: 2.21 percent
- JavaScript: 2.017 percent
- Visual Basic .Net: 1.982 percent
- Perl: 1.952 percent
- Ruby: 1.933 percent
And here’s Pypl’s ranking, which is based on different criterias than tiobe’s. You can check other rankings like IEEE’s ranking or GitHub’s, yet they all hover around roughly the same ideas.
- Java: 22.4 percent
- Python: 17.0 percent
- PHP: 8.7 percent
- C#: 8.1 percent
- JavaScript: 8.0 percent
- C++: 6.8 percent
- C: 6.1 percent
- R: 3.7 percent
- Objective-C: 3.5 percent
- Swift: 2.9 percent
There are many criterion that go into the popularity equation, such as how many developers/ courses/ tutorials are out there and so on, but this popularity scale will do for now. It shows that Java, C, and C++ have got a very wide community that doesn’t seem to be dwindling before the newcomers.
Performance Showdown:
Sometimes when you develop a piece of software, maximum performance is essential. Performance differs greatly from one language to another, in ways you can not imagine. The highest performing languages are compiled languages. Check this graph to see how different languages performed differently in the same programs.
Notice how python lags the pack when it comes to performance:
One of the things that make C and C++ this strong is their memory management. The ability to allocate memory and being able to go one level deeper and closer to the machine allows the code to be much more efficient. It’s true that it’s a big responsibility and a huge burden on developers but sometimes it’s needed. Heavy applications like game engines are mostly developed using C/C++ and sometimes Java or C#, only a few uses python. Also, C/C++ can affect the hardware level of the device since they are lower level languages. Most embedded systems use C++, and those who use python need a lot of optimization to match C++’s performance level.
Some applications of machine learning require maximum efficiency from the program since the processing unit’s architecture or the used algorithm could be very complex, or just the amount of computations to do is huge. That’s why even when python is the patron of machine learning and AI, there are certain areas where C++ is a must, thanks to memory management and STL again.
Python’s dynamic typing:
There’s a lot of arguments with and against the security level of dynamic typing. For those who do not know the difference between static and dynamic typing. Static typing is when the type constraints are ensured during compilation time, while dynamic typing is when the type constraints are ensured during run-time. You can read more about the comparison here. In a nutshell, statically typed languages are somewhat safer which makes the adoption of Python in critical applications for companies quite a questionable decision.
C# adoption out of windows:
As it so seems, C# adoption out of windows is very low. That is the main factor in it having a lower ranking throughout all popularity metrics than the other languages we talked about. C# is fundamentally close to C++ and Java, and it supports development across a variety of platforms but it’s still not a good argument, at least for developers to adopt it over Java or even python.
Communities:
While Python is has got quite a strong community thanks to its wide adoption, C# isn’t as popular. In Fact, it’s the lowest one of the five languages we’re talking about. Communities actually dictate a languages strength. For instance, Javascript took a massive leap when the contributing community started to release many frameworks used in web development. The bigger the community the more guides and help there is and then the more people are attracted to adopt the language and the cycle continues.
Will someone ever knock them off their throne?
Many experts actually predicted that the days of C/C++ and java are well over. It’s just that there’s not a suitable candidate to overtake the reign yet. You can point at a language and be able to explicitly say why this language won’t qualify for a top three seating. However, some languages are showing promise. Go, for example, is starting to take huge leaps towards the top, climbing just above C last year in GitHub’s “most used programming languages ranking” . It’s a compiled strongly typed language with a lot of support from its creator, Google.
Summary:
It’s not all black and white or good and bad as many people try to perceive it. The world is an ever changing place and needs rise and fall periodically. Remember that at the end, we are just doing computations with these languages, and these computations are based on the CPU’s architecture. For all we know, we might be switching to a totally different technology very soon since we are reaching Moore law’s limit.
Development will always continue, but who will be the big three then? Who knows?