The interpreted programming language Python was created in the late 1980s by Guido van Rossum as a successor to the ABC language. This versatile and popular programming language is both simple and scalable. Its name is inspired by a famous series of Monty Python skits.
This object-oriented language is used in particular by Google, YouTube, Mozilla, CERN, and NASA. Its many strengths and easy learning made it very popular while its source code is available under the GNU license. Python and its huge standard library are accessible for most platforms at no additional cost.
Available on all operating systems, this language can be used for processing form information, storing information in databases, managing email, or even creating browser cookies. It is compatible with virtually all types of databases.
The different versions of Python
Since Python 3 was released in 2008, the two versions have coexisted. Indeed, many projects are still using version 2. However, the switch to version 3 has accelerated in recent years due to the announced discontinuation of Python 2 support for 2020.
Python 2.7Released in 2000, Python 2 is the most popular and widely used version of the programming language. Its ease of handling and use made it very popular, which led to its integration into a multitude of projects. The many libraries developed for Python 2 have also contributed to its success.
Extremely versatile, the Python language has been adopted in a large number of projects, and its more intensive use has started to show errors that cannot be corrected by simple updates. Python 3 therefore appeared in order to remedy this. However, due to backward compatibility issues, Python 2 support for version 2.7 has been maintained until late 2019, to ease the transition.
Python 3A real evolution, Python 3 is carrying a great clean-up and many new features of great use. Managing Python 3 is easier, the language is more powerful and easier to use. However, choices were made during its development that severely affected its backward compatibility with Python 2.7 as we saw above. In fact, most of the programs and libraries developed for Python 2 do not work with Python 3. This situation led to the cohabitation of the two versions of the language for about ten years.
During this period beginners were advised to use Python 3 and Python 2 users to continue using it. Things continued to evolve in the background, however. December 31, 2019, was thus announced as the deadline for support for version 2.7 and most third-party libraries have finally been migrated to Python 3. So much so that today there is no valid reason to continue to prefer using Python 2.
Who is using it?
Google, Yahoo, Nokia, IBM, and NASA use Python in their multi-million or billion-dollar applications and projects. Both Microsoft and Apple offer full support for Python in their operating systems and development platforms. Many websites, such as YouTube or Grono.net, are written in Python.
NASA has been using Python in its applications for many years. One well-documented implementation is the use of Python applications to manage shuttle launch controls.
YouTube - The popular video site is mostly Python. The creators of the website (purchased by Google) emphasized the flexibility offered by Python, as well as the quick implementation of new functionalities through clear code that is easy to extend and update. Google uses Python in many of its applications and services and offers Python libraries for many of its services and APIs.
Python is also used by many local companies and you don't need to work at Google to be able to use Python. Internet applications and data processing are now large domains of this language.
Why is Python so interesting?
Python is a cross-platform, versatile, and open-source language that is commonly used in data science. Easy to learn and use, it enjoys great popularity. Among its strengths is PyPI which is a very mature package manager and the fact that Python allows you to create more functions using fewer lines of code.
Python is a simple, powerful programming language known for its ease of learning. Its portability to a large number of operating systems, its simple syntax, its free access and its ability to adapt to both complex projects and simple scripts make it the language of choice for getting started in programming. Python is currently the 3rd most used programming language in the world and experts estimate that it could become the first language within 3 or 4 years.
Python is taught at many institutions, and there are many free and paid courses available online. In addition, this language has a large community, which is particularly active in mutual aid and the sharing of sources of learning.
Characteristics of Python
The python language is distinguished by its portability to a wide variety of operating systems. It is a high-level language that allows you to do object-oriented programming but also to create small scripts.
Python is an interpreted, readable, and concise language. That is, its code is interpreted at runtime, so it does not require going through a compilation step. Python is a language that has attracted a wide variety of computer scientists with very different profiles. Over time, this has given birth to many very diverse bookstores.
It is also a free language, extensible, which does not stop evolving and which can be used in commercial projects.
Versatile and cross-platform, Python is widely used in data science but the use of this language is not limited to this field.
In fact, with Python we can do:
scripting and automation,
you can create applications or websites like Youtube,
do 3D modeling and animations with Blender,
develop certain game elements such as Battlefield II or Civilization IV,
design software and desktop interfaces like Ubuntu, BitTorrent, or DropBox)
but you can also create applications on Android with the Kivy library.
Python is very good at software engineering, but its specialty is really data processing, and its uses in science are increasing as a result.
Thus the use of Python in Machine Learning (Deep Learning) continues to develop, it is used in particular in robotics and in fields such as visual recognition, audio, or machine translation. But it is in artificial intelligence that Python really shines since it has become the reference language in this field.
Modules are therefore files made up of one or more handy functions. Indeed, the fact of splitting a program into several smaller files facilitates its maintenance. The modules thus created are files containing definitions and instructions. These files have the name of the module with the extension .py.
Note that modules can import other modules or be executed as scripts.
Where does Python work?
Applications are written in Python run on many systems such as Windows, Linux / Unix, or macOS. It is available on Android with some limitations. There are also Python implementations in Java (Jython) and .NET (IronPython) that work wherever these platforms are available. MicroPython is a special minimalist Python implementation for microcontrollers that allows you to easily script electronics (microcontroller - something much simpler than the processor in your smartphone or computer).
Each Python implementation implements the same syntax and part or all of the Python standard library. This means that simple Python scripts will run on any implementation (although you can run into some differences or limitations fairly quickly).
Python - The main Python implementation
Jython - Java implementation that allows the use of Java classes
IronPython - implementation in .NET and integrated with this platform
MicroPython - implementation for microcontrollers
Circuit python - MicroPython in a more friendly version for learning programming and electronic control
Zerynth - and electronics scripting platform based on a specialized Python implementation
You will almost always use the default implementation for Python programming on a computer. Jython and IronPython are quite a niche projects for those working on Java and .NET platforms to complement their suite of tools and scripting languages. In the case of electronics, for example, Raspberry Pi, you will use regular Python, but on selected microcontrollers, it will be CircuitPython (MicroPython) or Zerynth.
What can Python be used for?
Python can be used to create websites, desktop applications running on users' computers, including games. You can also use Python in network applications or scripts, e.g. generating statements and reports. It is also popular with scientists and people involved in data processing and machine learning. It's a versatile programming language, but it's not for everything either.
Creating dynamic websites is very easy and effective thanks to very good frameworks such as Django, Flask, or the Zope/Plone/Pyramid harvester. Python has found application in the effective and quick creation of modern websites rich in functionality. Thanks to a comprehensive collection of modules and libraries, ease of testing, and code readability, websites written in Python can achieve the same state and set of functionalities faster or cheaper than previously used languages and platforms.
The Google App Engine platform for distributed web application hosting is based on Python (as well as other languages) and offers web applications the same scalability as the company's applications and services. No manual server administration and easier infrastructure expansion and scaling. The cloud automatically scales to the traffic generated on the website. App Engine has some limitations in terms of available technologies or databases, but not Google Cloud Hosting based on Kubernetes and Docker (although using this platform requires some knowledge of how it works and how to manage and configure it).
Services and social networking sites are currently the basis for many websites. With Python, you can easily use the API / services of websites such as Twitter, Facebook, Google applications (Maps, Docs, and others), NASA, YouTube, weather and stock services, and many others. Libraries implementing OAuth login for the purposes of Django, Flask, or other frameworks will allow us to add login using social networking sites on our website. Data return APIs will allow us to retrieve and process various types of data - e.g. current weather, statistical data, financial data, etc.
Desktop applications running under key operating systems (MS Windows, macOS, Linux) can also be easily written in Python using libraries such as PyQt5, PyGTK, wxPython, or the built-in tk_inter library. With py2exe you can create ready-made applications (exe) for MS Windows systems, and with py2app ready applications for macOS. It should be noted, however, that desktop applications are not so often written in Python.
Python scripts and applications are also useful in scientific or financial applications where data processing and generating charts, summaries, PDF files, Excel sheets, and the like are needed. Using Reportlab, we generate PDF files and format all reports contained therein. Matplotlib offers various types of graph generation. Scipy offers implementations of various algorithms for complex Python calculations. Pillow provides graphics processing (such as scaling, sharpening, rotating, etc.), and xlwt and xlrt save and read Excel sheets. Plus powerful computational libraries like NumPy.
Games are not Python's forte - some game engines can be scripted in this language to make a working and complete game, however, Python is not supported by the most popular engines. Also, scripting game engines are only a part of game development, so if you want to specialize in game development, you will learn about various tools and languages. Not every programmer creates game engines in C or scripts in a scripting language, but the great advancement of games requires specialization and openness to various technologies, tools, and competencies.
How to get started with Python?
Installing Python on Linux - Guidelines for Linux users using Python on this system (Python installation from repositories, installation of add-on modules from PyPI)
Installation and configuration of Python under MS Windows - We install the Python interpreter under MS-Windows
Installing Python on macOS - Overview of the possibilities and additional Python libraries available on Mac OS X
Introduction to Python programming - A Python describing its syntax and the basics of using it with examples of simple scripts.
The pros and cons of Python
Python is a mature programming language, which is in its 3rd major version. Easy to learn, it enjoys great popularity because of its many qualities. However, like all languages, Python is not perfect.
Easy to learn and use.
Popularity and a huge community.
Adapted to many types of projects (science, web development, artificial intelligence).
Very wide variety of bookstores available.
Interpreted and object-oriented language which benefits from great portability.
3rd most used language currently.
Potential to become the 1st programming language within a few years.
Slower than low-level languages (like Java or C).
The ease of learning Python can make it difficult for a novice programmer to learn another programming language.
What is a Python host?
We talk about a Python host because although this language is used more and more for the development of web applications, not all hosts are Python-compatible. To have the status of a python host, hosting must be able to offer a "Python-friendly" environment.
Regarding shared offers, they often do not offer Python support due to the impact that its use can have on the resources shared with another hosting. Even when this support is provided in shared hosting, it is sometimes the version offered that is too limited or incompatible with your project.
When it comes to hosting on VPS, cloud, or dedicated servers, you may encounter limitations regarding the versions available.
Why should you use a Python host?
Your selection criteria for a Python host will necessarily take into account the type of project you are developing. You may want to use your hosting for a Framework (Django, Flask, pyramid, etc.), for one or more applications, or even a persistent process. For each of these cases, the prerequisites differ.
A Python host for frameworks
The announcement of support for the Python language is not self-explanatory enough. You will need to deepen your research, and question your host, in order to know what are the limitations of this Python hosting and is the use of a Framework authorized.
If you intend to use a specific Framework, you are advised to inquire beforehand to find out if this Framework is supported. And in the case where it is supported, to what extent.
As Python 2 and Python 3 are not backward compatible, the version installed by your host may not be compatible with your project.
A Python host for applications
If you want to host a Python application, you will have to make sure that in addition to being compatible with your Framework, your hosting is able to run a WSGI server (Web servers Gateway interface). This is a standard interface between web servers and the web application framework. This standardizes the communication and exchanges between the server and the Framework, which makes it possible to write portable Python Web code, which can be deployed on any WSGI-compatible server.
A Python host for persistent processes
Persistent processes are by their nature quite resource intensive. This is the reason why many hostings do not allow them and especially shared hosting, even when the latter announced that the allocated resources are unlimited. If you are on shared hosting, you will therefore need to check with your host to find out if this is allowed on their platform.
If you need to run persistent processes without any constraints, we recommend that you opt for a VPS, cloud, or dedicated server.
What to look for in a good Python host?
Before choosing your Python hosting, make sure that it is able to support Frameworks, Modules, that it supports FastCGI or SCGI mod wsgi, that you can have Shell access, and that the Python language and its interpreter are up to date.
Compatible versions of the Python interpreter
It is important to make sure that the interpreter is up to date, and that it is what you need. Because your host may not be in a hurry to update it if demand is low.
Note that depending on the permissions granted by your host, it is possible in some cases on shared hosting to update the version of Python and the interpreter using an SSH terminal.
The Shell is an encrypted system-to-system connection interface, which allows you to open a Command Line Interface on another machine and which will allow you to write and execute scripts there.
Access to Shell is essential. It is not possible to host a Python project without this access. It is therefore required for the development and administration of your Python project.
Speed and bandwidth
As we have seen previously, some Python projects, such as persistent processes, can be resource-intensive. You must therefore ensure that your shared hosting or your server (VPS, cloud, or dedicated) is able to provide the resources necessary for the proper functioning of your project. When it comes to bandwidth, everything will depend on your project and the traffic it needs to generate. Note, however, that a very large number of hosts offer unlimited bandwidth.
Support and installation of modules and libraries
This is another important point that can be the cause of great frustration if you don't do some checking first. Indeed, some hosts may have very restrictive regulations regarding the installation of additional modules and libraries.
Thus, some hosts will proceed without question to any installation request, as quickly as possible. But other hosts put in place rules about which add-ons they allow and in some cases they will simply refuse the installation of any new untested or untrusted add-ons.
Compatibility with persistent processes
If you already know that your project will include permanent processes, it is strongly recommended that you turn to host on a VPS, cloud, or dedicated server. You will still need to make sure that your server has sufficient resources for your persistent processes.
If you do decide to go for shared hosting anyway, make sure your host accepts persistent processes and what the resource limits are.
The quality/price ratio of the service
In general, if you want to obtain maximum Python compatibility and good performance, you will need to opt for hosting on a VPS, cloud, or dedicated server.
Several cloud hosting plans should also be able to satisfy you. When it comes to classic shared accommodation, few will be able to completely satisfy you with regard to the quality/price ratio of the service.
However, it is still possible to find a good Python host within a range of reasonable prices. But again, it all depends on your project and its needs, because that is what should influence your choice the most.
Alternatively, if your resource requirements are limited or you just want to test a few scripts, you can go to a free Python host.
What about free Python hosts?
The free Python host and a good solution to test or start a small project. Most of these hostings will allow you to use scripts or develop a web application using a Python web framework. The free offers of these hosts are generally intended to allow you to test their service before upgrading to the full paid version.
Unless your project is really small and resource-efficient, free Python hosting is unlikely to be enough for you in the long run.
Web programming with Django
Following the market, Python also offers great options for Web programming. Currently, the most famous framework for this is Django, and about it, To begin, let's see in detail, what exactly it is:
Django is a free and open-source framework for web development at such a high level that it already brings us, programmers, an ORM solution, simplifying data access in the database as much as possible.
Another differential is the administration interface provided by him, Django Admin. Thus, when creating a domain class, for example, we can request that the functionalities related to a CRUD of that class be created automatically. This reduces our work considerably, leaving only small customizations, if necessary. Likewise, it simplifies user management, access control, among other administrative tasks.
Interestingly, in Django, we do not program with the MVC architectural pattern, but with the MTV pattern, which has similar characteristics to its most famous “relative”.
Despite the popularity of the Python programming language, there aren't really many serious and comprehensive hosting offers. For now, you will probably be forced to turn to a more expensive solution than traditional shared accommodation.
Indeed, these platforms are not yet optimized to offer complete Python hosting at low prices and meeting all the expectations of developers.
If you want to be able to develop your Python project, without being hampered in your development by hosting that is not completely compatible with this programming language, you will have to turn to more expensive formulas, such as cloud hosting or servers.