How much Python does the Web run?

This post has the intention to thoroughly answer and explain the following question:

How much Python does the Web run?

We have explained before that Python is general purpose language, but has gained a lot of traction over last decade in the field of web development. But how is Python use in web development and by how much?

We will take a look at the technologies associated and their statistics to answer this question.

logo

General Statistics

Up to June of the current year, according to the TIOBE Index Python is the most popular language, this ranking is based on the number of skilled engineers world-wide, courses and third party vendors. This answers on how much is Python being used, but what about the current systems, websites and platforms does actually run Python. Let's take a look at some other statistics.

Web statistics

The Web as we know it nowadays had an evolutionary process back from the 90s and a lot web technologies and programming languages have been implemented, adapted or created in order to build web services for Internet users.

This an important thing to discuss, Internet nowadays can be navigated from different operative systems and also from different devices or platforms.

For this article we are only considering those uses in which an Internet navigator used, leaving out of the context mobile applications or streaming devices.

Why is this? Well, because and even that Python can be used to develop mobile applications is not its major use for web development and also to keep a fair comparison with other technologies.

Python in the racing track

Accordingly to BuiltWith, 842012 websites currently are built with Python, but with these numbers Python only takes 0.41% of the market share, counting only active sites. In comparison to PHP which holds 41.40% of market share. Despites these numbers and accordingly with W3Techs, Python has more usage by high traffic sites than PHP. In short, performance is an option and an advantage on why to consider Python instead of PHP.

Web Python technologies

But, speaking about the use of Python in web development is speaking about the most popular Python backend frameworks.

Accordingly to Statistics&Data, Flask and Django are on the third and second positions, respectively, in the list of most popular backend frameworks, behind the most popular one which is Laravel. This popularity is measured based on the amount of stars each framework has on its github repository.

Backend framework features

The architecture of websites have evolved into different standard approach used nowadays, such as Single Page Applications (SPA), Progressive Web Applications (PWA), general Web Applications among others. But all of these approaches require that the server side development of these web services to apply some technique and methodologies to create resilient services, this requirement demands proofed technologies, and when we say technologies we are talking about framework and libraries, these turns into the following features.

  • Open Source
  • Simple Syntax
  • Routing
  • Debugging
  • Object Relational Mapper
  • Authentication
  • Authorization
  • API (CRUD)
  • Template Engine
  • Concurrency
  • Scalability

These are the most common features or capabilities that a backend framework must provide in order to develop nowadays challenging web services.

Let's explain a little of each one of these features, if you are novice to web development it will help you understand the scope of a web service.

Open Source

Nowadays technology is much more open that it used to be, the web is mostly built with Open Source technologies and the most popular framework are Open Source as well. This makes possible the contribution of anybody who wants to improve technology.

Simple Syntax

Learning a web framework and developing a web service must be easy, this requires that frameworks implement a declarative approach to set the parts of a web services, it could use a functional or object oriented approach and with the application of other language features such as decorators build a system in almost no time.

Routing

This feature is similar to the previous one, when defining the model or sitemap of a web application a good and clean routing setup is required.

Debugging

Framewoks should also show what goes wrong when a request to the server is being made and fails to produce the expected output, this way developer can debug and fix issues as well.

Object Relational Mapper

Database programming tends to use a lot of SQL query syntax, but when dealing with backend development is a priority to just keep one and only one programming language, so the framework must have a library or extension to perform queries to relational databases using the same language constructs, most often an object oriented approach.

Authentication

Authentication deals with the problem of only giving access to logged in users in web services.

Authorization

Authorization deals with the problem of only grant permission to the corresponding users when accessing special resources, these systems often use a role based approach.

API (CRUD)

First let's explain what CRUD means, is an acronym of Create-Read-Update-Delete, these are the actions that can be performed upon records on a database. Since the UI is developed using frontend frameworks, the UI must sync changes with the database through a connection layer called API, these are routes built in the web service that uses the following https verbs to match a CRUD action.

  • GET (READ)
  • POST (CREATE)
  • PUT (UPDATE)
  • DELETE (DELETE)

Template Engine

This feature deals with the capability of prerender data before returning response to the users, and this rendering is performed on an HTML template using a rendering syntax or library.

Concurrency

This feature handles with the possibility of processing multiple requests at the same time, when a web service has a high traffic it can be a problem to handle thousands or even millions of requests from users and bottlenecks must be avoided always.

Scalability

Traffic can be high or low depending on a lot of factors, but when this happens the web service must be able to scale accordingly ir order to optimize resource consumption, this way we minimize expenses and maximize profit.

What to learn

Currently, some of the most popular Python backend frameworks are listed and categorized below.

The main differences between the first two categories is that the frameworks in the first category are fully featured frameworks, meaning that they all have the most common features required to develop modern web applications, in the second category are frameworks that come with the minimum features required but can be extended with more features using adapted extensions, the advantage of these is that for some applications they require less disk space and can produce a web application in matter of seconds.

The third category are specialized frameworks since they already handle asynchronous execution, and the main advantage over the first two categories is really higher performance.

Flask

Our recommendation is to learn first a microframework, and very specific Flask since it is the most popular one, and leveraging the learning curve with the installation of extensions to add more features.

Django

Our second recommendation, once you have gained enough confidence with a microframework, jump to a full stack framework, and the most popular in this category is Django.

These two are also the most demanded skill for backend developer positions and job offers.

Job offers statistics

According to a survey made by StackOverflow back in 2020. Python was one of the most in-demand skills and if you search for open job offers available you will find more than 100k of online offerings.

Average Python developer wages

According to DAXX, Python has an average yearly salary of 107092 US dollars on USA and in Europe can be up to 65020 US dollars per year. In comparison with other programming languages is one of the most paid skills in the World.

Final notes

We have briefly explained the usage statistics on Python in web development and what are the options to implement web development with Python, we have also mentioned some recommendations on which technologies to start learning web development with Python, and finally we have concluded with the statistics on role and positions payments in the industry, so it is a really good time to learn Python and work with this skill.

We hope you have found this article useful and interesting.

0 Comments

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel