Python and JavaScript rule the roost

blog post cover: Python and JavaScript rule the roost

According to the latest TIOBE index (the leading indicator of programming language popularity) a change in the leaderboard of programming languages in the world has taken place. The long ruling emperors, Java and C, both had to acknowledge Python as the new king of the rankings.

JavaScript, the unconquered prince of the web browser remains in 7th place in the TIOBE index, but a look at another popular survey conducted among StackOverflow users, JavaScript is the most commonly used language. Different surveys present different results, yet there is one indisputable conclusion – Python and JavaScript rule the roost.

What are the reasons for such a state of affairs? What does it bode for the future, and what does it mean for other languages? Will Python and JavaScript soon replace the need for other languages? This article addresses these questions, skimming a bit through history, seeking the reasons for those languages’ popularity.

Python – the long story short

Python was initially released in 1991 by Guido van Rossum, who shouldered the full responsibility for the project up to July 2018, when he decided to step down from the leading Python developer position. Throughout that time, the Python world has enjoyed 2 major releases and a whole host of enhancements. Following the decision of the father of Python to step down from the board, a Steering Committee was elected from the core developers. As in every democratic world, the people are able to influence the direction of further Python development. This is done via Python Enhancement Proposal (PEP), the use of which enables proposals for new features to the Python core library. Such as a proposal is then reviewed by the Steering Committee and accepted or declined. In the moment of writing, the latest available Python version is 3.10.

Python features

When any somewhat experienced developer begins to learn a new language, the first set of questions that pop out are about the specifications. A quick description of Python features will satisfy such questions before they are asked:

  • Python is a high-level language – it handles pointers and memory management, so that the code written is closer to how humans think;
  • Python is dynamically typed – unlike statically-typed languages, for example Java, in Python you do not have to define whether a value is a string, boolean or number, some other kind of object, Python does that for you internally;

Intentionally, I will not dwell on the dispute that has been popular among Python developers, namely: whether Python is an interpreted or compiled language, simply because these days the line between interpreted and compiled is no longer as clear as it was when such terms were coined. Truth be told, it’s also misleading to consider programming languages to be either interpreted or compiled, as different implementations of languages may do different things. These days you can find both C interpreters and JavaScript compilers (Rhino engine). The one thing that is relevant is that it takes a bit more work and time for the computer to process human readable Python code than it would take for the same code written in C++.

The purpose of this short introduction to Python features is then to shed more light on that particular issue. In the world of IT, everything is a matter of compromise and everything comes at a price. As pointed out Python does a lot under the hood for the developer, in hiding the complex and mundane aspects of programming. The end result is of course brevity both in terms of code readability and delivery of business value, but comes with the price of Python being much slower than C or C++. That poses the question of how Python has become so popular despite the innate slowness?

Python – main reasons for being the number one

The slowness may have been one of the reasons why Python was not so widely adopted earlier on. After all, it was brought to life 30 years ago, in a period when hardware was expensive and had a limited capacity. Over recent years both have been becoming substantially more powerful and cheaper. With the dawn of the cloud era, when one can bring to life a powerful virtual machine instance just to execute a resource savvy script, to drop it and just pay for the time the instance was alive, nobody pays that much attention to resource management. Delivering business value and delivering it fast is the key aspect of today’s world.This is where Python shines bright and stands out from the crowd.

Easy to learn – human-readable syntax

One could still argue that code written in Python would execute slower on the same machine than a similar program written in native C. I dare to say, so what? Would the end user really see the difference of milliseconds? This is of course not to say that performance and using the maximum potential of the underlying infrastructure is not important. It is of the highest importance, but one needs to look at the whole spectrum of performance. Writing a verbose and optimized code in C is time-consuming, while delivering the same functionality with the use of robust and concise Python code takes a lot less time. In today’s world, rapid delivery corresponds directly to market advantage. Moreover, from my experience, I can say that less code results in two very important things:

a) more profound “code reviews” – does the story of a developer doing a code review of 30 lines of code and noting 10 issues, and the same developer doing a code review of 300 lines of code and spotting only one, ring a bell?

b) easier maintenance – we as developers spend more time reading and analyzing the code, than actually writing it;

Python offers a very friendly human-readable syntax. It is very similar to computer instructions written in English. The loved and hated “indentation rule” introduced in PEP8, which determines the beginning and the end of a code block, gives the impression of reading prose rather than code, when going through lines of Python. This is why so many developers starting their careers decide to go with it. The basic syntax is easy to grasp and at the same time very powerful. For the very same reason it is often chosen by people not directly related with programming, such as academics or scientists from different fields.

Versatile and powerful

Python comes with “batteries included”, which means that the basic pack of libraries is very ubiquitous and offers methods which relieve the developer from writing a lot of boilerplate code. The ease and speed of coding entices its use for prototyping, where we want to quickly check if the rubber meets the road. On top of that, it is a mature language with strong support from a wide community, which results in a plethora of useful libraries in different fields, saving us the developers plenty of time. It is a versatile general-purpose language that is being widely adopted in such areas as:

  • automation and scripting – a perfect tool becoming increasingly in-demand in the DevOps field;
  • web development – with the use of frameworks such as Django;
  • Big Data analysis – prior to conducting any big data analysis, one needs to clean and organise it into useful data sets by transforming it. This cumbersome task is a breeze with the use of Python libraries, such as Pandas or NumPy.
  • Machine Learning and Artificial Intelligence – those are the hot buzz words nowadays and the demand for developers experienced in those areas has sky-rocketed in the last couple of years. Python with the use of Tensorflow, Keras and Pytorch stands out from the crowd, allowing scientists to focus on their day to day tasks, instead of focusing on technology aspects.

The success of Python lies in its versatility and especially good fit in the data manipulation and analysis areas, which is in high demand right now. Nowadays, companies build their competitive advantage based on conclusions and predictions extracted from the data. Python helps in doing this quickly and reliably.

Python and JavaScript rule the roost - Python Features

JavaScript – stepping outside the (web browser) comfort zone

JavaScript was created at Netscape Communications in 1995, and shortly after its release more and more browsers began adding JavaScript support. Initially it was not a great or secure language, but how could one expect that from a language that was developed in just 10 days. Shocking, right? Internet and web based content was in its infancy back in those days. The people behind JavaScript strongly believed that adding a bit of liveliness to the static and simple HTML pages would attract people to the web. JavaScript was meant to be simple, so that designers who already knew HTML would have no problem in adding some animation to the static pages. With the passage of time it has been widely adopted by the browser world and has become an irreplaceable part of it (if you think differently, try blocking JavaScript in your browser for a day).

A significant moment took place in 2008 when Google released a fast JavaScript Engine called V8 and built it into their Chrome browser. Web based applications noticed an increase in performance, which consequently brought even more attention to the JavaScript ecosystem.

Another breakthrough moment for JavaScript took place in 2009, when JavaScript stepped outside of its (web browser) comfort zone and the first version of Node.js, a server-side scripting version of JavaScript, came to light. This has brought JavaScript to a whole new level. Developers could now use one language to write both client and server sides of the application. Moreover, it allowed the code to be executed on the server and be rendered in the browser. That feature is a cornerstone of every major JavaScript framework (Angular, React and Vue).

With the dawn of ECMAScript 6 (an official name of JavaScript) in 2015, the language has undergone a major upgrade to make it more mature, robust and developer-friendly. This version has enabled JavaScript to catch up with the other big players in the market. If by chance you come from the Java ecosystem, ECMAScript 6 was (in my humble opinion) a similar milestone to JavaScript as Java 8 was to Java.

When it comes to contributions to the language development and evolution, one has to also pay a tribute to Microsoft, who developed and released Typescript to the open-source community. It is a perfect fit for large applications, facilitating class-based object oriented programming, as well as optional static typing, it being a superset of JavaScript. The benefit of static typing is that it allows you to catch a lot of typing errors during transpilation, before they are spotted at runtime.

Prospects for the future

With the growing popularity of topics such as Artificial Intelligence, Machine Learning, Data Science and the concept of Software as a Service (SaaS), where software is made accessible over the internet via the browser, there is no doubt that Python and JavaScript will continue to grow and chew into even more chunks of market share. What about other languages? Does it bode poorly for other languages, like Java or C++? Personally, I think that despite the fact that their market share might shrink in the upcoming years, there is no way that such well grounded languages would be annihilated totally. C++ is widely adopted in game development, in micro-controllers in the Internet of Things area, and constitutes the building blocks of operating systems. Similarly, Java, allowing code to be written once and run practically everywhere, facilitates the creation of powerful and efficient applications for mobile phones, remote processors, micro-controllers, wireless modules, sensors, gateways, consumer products, and practically any other electronic device. The maturity and security has allowed Java to become deeply rooted especially in the fintech area.

At the same time, I would like to encourage every developer to step aside from their daily routine and play with both Python and JavaScript. Trying out a new programing language might not only turn out to be a lot of fun (especially if you are getting rusty) and unlock new potential areas (like DOM manipulation with JavaScript, automation with Python), and at the same time it may show how well known issues in your language are solved in the new language. On top of that, it makes one more attractive in the job market. Additionally, constant learning and exploration is, after all, what is in the developers’ DNA.

Summary

Despite being different, JavaScript and Python have one thing in common: circumstance. Both languages owe their current market share and popularity to a certain course of events or facts that has taken place and intertwined with their history. For Python, it was the development of hardware, the price reduction of computing power and a data savvy world. Combined with the code brevity and writing simplicity, it paved the way for Python to be one of the most popular server side languages. When it comes to JavaScript, as mentioned earlier, it was not a great language at first, but found its niche in the market, by being widely adopted by the browsers and building on that. By moving to the server side, JavaScript has chewed into a bite of a new market chunk.

Both Python and JavaScript prove that the key to being a successful and widely adopted language these days is versatility.

    Let’s stay in touch!

    Sign up for our newsletter! You will receive a balanced portion of technological knowledge that you can easily transfer to the business world. In addition, once a week, a press with carefully selected information will be waiting for you!

    You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices please view our Privacy Policy.