Блог

From Online Stores to a NASA Rover: Where is Python Used and Why Should You Study it in 2022?

Python — what is this programming language? Why is it popular today and in what areas is it used? EPAM Lead Software Engineer, Yury Zaitsev, answers these and other questions below specifically for the Anywhere Club blog.

Yury Zaitsev

What is Python?

— Simply put, Python is a high-level programming language in which you can write almost everything. Python has been around for a while. The first outlines of what would become Python appeared in 1989, and Python 1.0 first saw the light of day in 1994. To be clear, this was very different from Python 2.0, which was released in 2000. In version 2.0, Python really hit its stride, and became a very popular programming language that developed rapidly. The current version, Python 3.0, was released in 2008.

What is the Python programming language for?

— In theory, the Python language can be used in any situation in which a programming language is needed: from developing a simple online store to a NASA rover. Truly. The Perseverance Ingenuity rover drone software was developed using F Prime. F Prime is a multi-component spacecraft modeling and software development framework created by NASA. It is written in C++ and Python. Most of it, of course, is in C++, but about 25% of it is still Python. In reality, though, it is not always advisable to use Python.

What is Python good for?

— Scope of Python — the areas in which Python is a superior tool are various and diverse. I suggest that the main areas in which it stands out are as follows:

Development of back-end web applications

These are online stores, online games, and streaming video services; examples include Django, FastApi, and Flask.

Solving scientific and near-scientific problems such as calculations, data analysis, and visualization. 

This category includes things like genome analysis and the calculation of the flight paths of bodies in space, implemented through tools such as Pandas, jupyter, and Plotly.

Machine learning 

Applications like face recognition, document recognition, and sales forecasting benefit from Python’s strengths. TensorFlow, Keras, PyTorch have proven themselves in this category.

Automation

Business processes, manufacturing, and smart home applications using AirFlow and Luigi.

Embedded systems

This includes on-board computers in vehicles and robot vacuum cleaners. You can find details here: MicroPython.

The downsides of Python are harder to identify. There are no bad programming languages, but there are misuses. If you try to come up with one downside, it will likely be speed. Out of the box, CPython is significantly inferior in performance to compiled languages ​​like C, because it is more high-level.

But:

  • High speed is not always needed.
  • Popular libraries for data processing where performance is important usually use C-extensions and run at nearly the speed of C.
  • Solutions like Cython, Numba, and PyPy introduce certain limitations, but they can greatly improve performance.

What kinds of things is Python not well-suited for and when is it better to choose a more appropriate tool?

Developing front-end web applications

Projects like Pyodide allow you to execute Python source code in abrowser via WebAssembly, but so far this is more of a hobbyist activity than a professional approach.

Mobile Applications

Frameworks like Kivy and BeeWare make it possible to develop full-fledged applications for Android and IOS, but doing so is not very convenient and this is not accepted in the industry.

Game development

Although there are game engines that support Python (Panda3D, Сocos2d, PyGame), C++ is better for AAA. It is, however, quite possible to write a visual novel using Python.

Why is Python popular?

  • Python is used in a variety of areas — development, test automation, data analysis, machine learning. This means that with a good understanding of Python, you can build your career flexibly and switch between theseareas if you choose.
  • Python is concise, elegant, and uses a very simple syntax. A program written in Python often reads like a coherent text in English. You can quickly learn the language and start working.
  • Another plus is the ease of development. The simplicity of the language and the large number of free ready-to-use modules allow you to write and test programs very quickly. And fast means cheaper, so Python is often chosen as the main technology when starting a project.
  • Which large companies use Python today?

    A huge number of companies around the world use Python. Some of the largest and most recognizable include the following:

    • Google uses Python as one of its main programming languages, Microsoft actively uses it for web services, and Amazon uses it everywhere.
    • Dropbox, Spotify, Instagram, and Reddit are all mostly written in Python.
    • Netflix and Uber are not fully written in Python, but they actively use it.
    • In games such as World of Tanks and EVE Online, the server part was written in Python.

    Should I start learning Python in 2022?

    — Python is now more popular than ever. Last year, it was at the top of the TIOBE index, overtaking C and Java. It is being actively developed, the syntax is expanding, and the “problems” often associated with Python, such as poor performance, are gradually being solved. There are also more and more open libraries in PyPI.

    How long does it take to learn Python?

    — It will take 3-4 months to learn the basics. Then, it is helpful to work “on the hook” for 3-6 months to see how everything works in practice.

    What do you need to do to get started with Python?

  • To start understanding Python, get used to the syntax, familiarize yourself with the functionality of the standard library, and delve into the standards and conventions — at least PEP8. It will not be superfluous to tighten the gaps in the basics of algorithmization and programming paradigms — OOP will be enough.
  • Then, it will be useful to understand the third-party libraries available on PyPI. Of course, you do not need to know the interfaces of all of the functions of each ready-made library thoroughly. It is enough to understand what popular frameworks exist, and in what situations they can be useful.
  • For dessert — databases (SQL/NoSQL) and cloud technologies (AWS/Azure/GCP). Although this may not be strictly necessary, in practice, most enterprise projects cannot be imagined without using them.
  • — Python is hard not to like: it is a very concise and simple language, it is written quickly, and it has a lot of “batteries”. Plus, if you ever find yourself getting bored in your current position, while continuing to use Python you can transition to work as a test automation engineer, a machine learning engineer, and even a data analyst.

    You can learn more about Python in the IT Beard Shorts issue on the Anywhere Club YouTube channel.

    Have a desire to discuss Python? Go in Discord.

    Go to Discord
    У топі