This article is reprinted from the public account AI100 (Rgznai100).


Who will be the first development language in the era of AI and big data? This should have been a matter beyond debate. If three years ago, Matlab, Scala, R, Java, and Python were all in the running, then three years later, the trend is very clear, especially after Facebook opened source PyTorch two days ago. Python’s position as the top language in the AGE of AI is pretty well established, and it’s only a matter of who comes in second.

 

But there is still some noise in the sound market. A young woman interested in studying data science recently told me that a friend suggested she start with Java because big data infrastructure like Hadoop is written in Java. Coincidentally, IBM developerWorks last month Published a personal blog (https://www.ibm.com/developerworks/community/blogs/jfp/entry/What_Language_Is_Best_For_Machine_Learning_And_Da Ta_Science? Lang =en), using data from indeed, a job listing site. The article itself is objective, fair and realistic, but when it comes to China, some critics misinterpret the original meaning, saying that Python’s dominance has not been established, and the winner is still unknown. Learners should not blindly follow the trend, but should make sure that all bets are placed on it.

 

I want to make it clear here that having Python in the basket is not only safe but necessary for developers looking to join the AI and big data industry. Or to put it another way, if you want to work in this industry in the future, don’t think about anything and learn Python with your eyes closed. Of course, Python is not without its problems and shortcomings, and you can and should have another or several languages that work with Python, but Python will hold its place as the first language for data analysis and AI, no question about it. I even think that, as a result of Python secure in this position, because the future needs a large number of practitioners, the industry more as Python is rapidly becoming a global big programming language of choice for an introductory course teaching of primary and secondary schools, the open source dynamic scripting languages have a lot of opportunities in the near future to become the first programming language in the true sense.





Discussing the merits and demerits of programming languages has long been a topic of debate, dismissed by veterans. But I think Python’s ascension is a big deal. Fifteen years later, please imagine, if all knowledge workers under the age of 40, no points both at home and abroad, from doctors to construction engineer, from the office of the secretary to the film director, from the composer to sales, can use the same kind of programming language basic data processing, call the cloud API, artificial intelligence control of intelligent robot, and then communicate with each other, This collaborative network of universal programming, then, will have implications far beyond any programming language wars. For now, Python is the most promising candidate to fill this role.

 

Python was a surprise winner because of its obvious shortcomings. It is grammatically idiosyncratic, which many veterans find unaccustomed; “Naked” Python is slow, ranging from tens to thousands of times slower than C for different tasks; A single Python program cannot execute concurrently on multiple cores due to a global interpreter lock (GIL); Python 2 and Python 3 have been running in parallel for a long time, and many modules need to be maintained in two different versions at the same time, causing a lot of unnecessary confusion and trouble for developers to choose. Because Python is not controlled by any one company, and no technology giant has been willing to support Python, its core infrastructure has received very little investment and support compared to its widespread use. To this day, Python, 26, does not have an official standard JIT compiler, compared with the Java language, which received a standard JIT within the first three years of its release.


Another fact is even more telling. The core code for Python’s GIL was written in 1992 by Guido van Rossum, the language’s creator, and for eighteen years no one changed a single byte of this crucial code. Eighteen years! It wasn’t until 2010 that Antoine Pitrou improved GIL for the first time in nearly two decades and only used it in Python 3.x. That is to say, most developers using Python 2.7 today have every piece of code they write still tied to a piece of code from 26 years ago.

 

Speaking of Python’s shortcomings, I recall a small anecdote that happened to me. I wrote in an article years ago that I was a Python fan and not a Ruby fan. About two years ago, a netizen came to me on Weibo and blamed me. He said that he had been focusing on Python and kept away from Ruby because he had been misled by my article. As it turns out, he is fluent in Python, but recently he learned Ruby, which was so beautiful and sweet that he was overjoyed and realized angrily that HE had been misled by me and had missed out on the most beautiful programming language in his prime. I didn’t have much to argue with him at the time, and I don’t know if he has made the transition today from being a Python back end, big data analytics, machine learning, and AI engineer to a Rails fast developer. I just think it’s not easy to really know the value of something.

 

Python is one of those racers with all the faults that have made it to the front of the pack, but even a few years ago, few people believed it had a chance to take the crown. Many thought Java’s place was unshakeable, and others said everything would be rewritten in JavaScript. But today, Python is already the first language of data analysis and AI, the first hacker language of network attack and defense, the first language of introductory programming teaching, and the first language of cloud computing system management. Python has long been one of the dominant languages for Web development, game scripting, computer vision, Internet of Things management, and robotics, and has the opportunity to rise to the top in multiple areas as Python users grow in anticipation.

 

And don’t forget that the vast majority of Future Python users will not be professional programmers, but people who use Excel, PowePoint, SAS, Matlab, and video editors today. In the case of AI, let’s first ask: where is the main population of AI? If we were to talk about it statically today, you might think that AI would be dominated by AI scientists at research institutions, machine learning experts with PHDS, and algorithm experts. Dividend syllogism but last time I mentioned lee “AI” clearly tells us that as long as a little bit long our sights, back three to five years, you will see the whole AI industry working population will gradually formed a huge pyramid structure, the AI is just a little bit of the top scientists, 95% or more of the AI technology personnel, All will be AI engineers, application engineers and AI tool users. I believe these people will almost all be swept away by Python and become a huge reserve force for the Python camp. These potential Python users are still outside the technical community, but as AI applications grow, millions of teachers, corporate employees, engineers, translators, editors, doctors, salespeople, managers, and civil servants will flood Python and AI, armed with industry knowledge and data resources in their respective fields. Profoundly change the whole IT, or DT (data technology) industry’s overall pattern and outlook.

 

Why was Python able to come from behind?

 

In general terms, I could easily list some of Python’s strengths, such as the simplicity and elegance of the language design, programmer friendliness, and efficiency of development. But I don’t think that’s the root cause, because some other languages don’t do badly in this regard.

 

Others argue that Python’s strengths are its wealth of resources, its solid infrastructure of numerical algorithms, ICONS, and data processing, and its ability to create an ecosystem that attracts a large number of scientists and experts in various fields. But I think it’s the other way around. Why did Python attract people to use it and build such a good infrastructure? Why doesn’t PHP, the best language in the world, have libraries at the level of Numpy, NLTK, SK-learn, pandas and PyTorch? Why is it that the JavaScript boom has been followed by a patchwork of libraries, while Python’s libraries are thriving and well-organized enough to maintain a high standard?

 

I think the bottom line is this: Python is the only major language that has a clear strategic position and is sticking to it. By contrast, too many languages constantly erode and obscure their strategic positioning with tactical unprincipled diligence, only to end up doing the same.

 

What is Python’s strategic position? In fact, it is very simple, is to make a simple, easy-to-use but professional, rigorous general assembly language, or called glue language, so that ordinary people can easily start, put together all kinds of basic program components, coordinated operation.

 

By sticking to this position, Python has consistently prioritised the beauty of the language over its quirks, developer efficiency over CPU efficiency, and horizontal expansion over vertical depth. Long-term adherence to these strategic choices has led to a rich ecosystem in Python that no other language can match.


Anyone willing to learn, for example, can learn the basics of Python in a matter of days and do many, many things with an input and output ratio that is probably unmatched in any other language. For example, Python is slow, so people use C to work with it when developing frequently used core libraries. As a result, real programs developed in Python run very fast, because it is likely that more than 80% of the system’s code is written in C. On the other hand, if Python doesn’t give in and insists on speed, the result is likely to be several times higher naked speed, but no one will have the incentive to develop C modules for it, and the end result will be far less fast than hybrid mode, and most likely the language will become more complex as a result, resulting in a slow, ugly language.


More importantly, Python is wrapper, composable, and embeddable enough to wrap complexity in Python modules and expose beautiful interfaces. Many times, a library itself is written in C/C++, but you’ll find that calling that library directly in C or C++, from environment configuration to interface calls, is a lot more cumbersome than wrapping it in Python one layer at a time, which is cleaner, faster and prettier. These features are a great advantage for Python when it comes to AI. Python has also used AI and data science to climb to the top of the programming language ecosystem. Python is tied to AI, and for them, whether e-commerce, search engines, social networks, or intelligent hardware, the future is just data cows, electronic nerves, and execution tools down the ecological chain, all at their beck and call.

 

For those unfamiliar with the history of programming languages, Python’s strategic positioning may seem cynical and unenterprising. But it turns out that it is difficult to be simple and rigorous, easy to use and professional at the same time, and it is even more difficult to stick to the positioning of glue language.


Some languages, from the outset, are for academic rather than practical purposes, and the learning curve is too steep for the average person to approach. Some languages, too dependent on the commercial support of their backers, may enjoy great success in good times, but their survival may be in doubt once they are put into the doghouse. Some languages are designed with a clear assumption that they’re either designed to deal with massive concurrency, matrix arithmetic, or web rendering templates, but once they’re out of that scenario, it’s not easy. More languages, just achieved a little success, can’t wait to become all-around champion, desperately in all directions to extend the tentacles, especially in enhancing the ability to express and improve performance, often too aggressive, at the core language changed beyond recognition, and finally become no one can control the behemoth. Python, by contrast, is a success story in the design and evolution of modern programming languages.

 

What makes Python so clear about its strategy and so committed to it is that its community has built an exemplary decision-making and governance mechanism. Guido van Rossum (BDFL, Pythoners all know what this means), DavidBeazley, Raymond Hettinger and others are the core of this mechanism, and PEP is the organizational platform. It is democratic and orderly, centralized and enlightened. As long as the mechanism itself holds, Python will continue to rise smoothly for the foreseeable future.

 

The most likely challenger to Python, of course, is Java. Java has a large audience, and it is a very clearly strategic and committed language in its own right. But I don’t think Java has much of a chance because it’s essentially designed for building large complex systems. What is a large complex system? A system clearly described and constructed by man whose scale and complexity are exogenous, or given from outside. The nature of AI is a self-learning and self-organizing system, and its scale and complexity are endogenous as a mathematical model grows by itself with data feeding. Therefore, Java most of the language structure for big data processing and AI system development appears to be not strong, you are strong here do not use, here you need to do things up. Python has long been known for its simplicity in data processing. Compared to two Java and Python machine learning programs with the same function, a normal person can tell by looking at them that the Python program must be more refreshing.

 

Around 2003 or 2004, I bought a Python book written by a Brazilian. He said he firmly chose Python because as a child he often dreamed that the world would be ruled by a boa constrictor. I felt sorry for him. I could have dreamed of such a horrible scene. But today, maybe he was just like Anderson, the programmer in the Matrix, who accidentally traveled into the future and peered into the truth of the world.




Guys, what do you think about Python becoming the number one language in artificial intelligence? Are you secretly glad you chose Python as your first development language? Or are you ready to take Python as your next big idea and use it on demand? Or was it unmoved and the heart was going for the more touching “ta speaks TA”?


Whether you want to get started or get advanced in Python, Turin’s comprehensive Python booklist is your backstop. Check out the Turin Python Booklist.