+ 5
Python is a beautiful programming language, try it. Python is simple, fun, powerful
2 Answers
+ 2
Pythonâs only real advantage is itâs âreadabilityâ, which actually completely stops in big projects. Dynamically types languages may be good for learning, but in a big project, all it will do is cause confusion because you will not be able to remember everything that your code is doing, you will have to check the return type, what is in the functions, and also search through the entire code to find a comment explaining code that you wrote ages ago. Speaking of comments, the main argument used by Python developers is that all of the uncertainty with dynamic languages should be explained through comments and âPythonicnessâ, but those are just ways to avoid a serious problem. Everyone complains about the complexity of a language like C or C++, but they must be doing something right because the unreadability is not bad enough for anyone to come up with âCicnessâ.
If you are doing a big project, Python is a nightmare. Donât believe me? Do your own research.
Another argument supporting Python is its massive standard library, and I will admit that it does have that advantage, but so does C++. Not to mention, most of this standard library wonât be used in a small project where Python would actually be easier. Also, you donât even need a huge, diverse language for a big project, you could do it in assembly if you wanted.
+ 2
Now that Iâm done disproving all of Pythonâs 2 advantages, why should you use another language? Speed. I know that in most cases, a language as slow as Python is fast enough for almost all projects, but the problem is that if you use a language with just enough speed as you think you will ever need, you are leaving no room for expanding. What if you think of something that could greatly improve your project but it is also very slow and requires going through a ton of information? It would be awful in Python because now, your code will be too slow. In a decent language, you would be able to add feature upon feature and not worry about speed, even use threads if you really had to. Also, what if your code runs fast enough for what you intended for it to do, but then you or someone else wants to use it for a performance critical reason or if it works with data, they want it to work with a lot more than it really can at a reasonable pace? You would not be able to use it, you would have to make a version in a better language.
This problem applies to machine learning and data science as well. Machine learning is a growing area with very high demand, and is using Python regularly. Itâs growth is greatly outpacing computers, and eventually, computers just will not be fast enough to deal with the massive processing power required for high quality AI. The companies that run into this problem first will quickly see that if they canât get better computers, they will need faster languages. Now, there are tons of unemployed Python developers who havenât practiced in C or C++ in decades, while the C and C++ developers, who would be more than capable of learning a high level language if they needed, took the jobs in AI development. So, what about data science? This already happened, not even assembly on a super computer is fast enough for what scientists are currently trying to do, they are waiting for quantum computers to be ready so they can keep going.
C++ machine learning library:
http://mlpack.org/benchmarks.html