Beyond Basics: Yury Zaitsev Explores Computing Language’s Versatility from E-commerce to Space Exploration
Python — why has this versatile tool become essential in modern technology? 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.
Understanding its purpose and capabilities
— Simply put, Python is a high-level software framework in which you can write almost everything. It has been around for a while. The first outlines of what would become this platform 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. Version 2.0 really hit its stride, and became a very popular scripting environment that developed rapidly. The current 3rd version was released in 2008.
Why is this tool used, and what can it accomplish?
— In theory, this computing tool can be used in any situation in which a scripting 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. Most of it is written in C++, but about 25% of it is still Python. In reality, though, it is not always advisable to use the latter.
What is it good for?
— Scope of Python — the areas in which it 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 do people utilize Python?
- This solution is used in a variety of areas — development, test automation, data analysis, machine learning. This means that with a good understanding of this tool, you can build your career flexibly and switch between these areas if you choose.
- Python is concise, elegant, and uses a very simple syntax. A program written in it 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 tool and the large number of free ready-to-use modules allow you to write and test programs very quickly. And fast means cheaper, so this framework 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 it as one of its main solutions, 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 this language, but they actively use it.
- In games such as World of Tanks and EVE Online, the server part was written in it.
Should I start learning it?
— 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 it, 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?
— 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 this platform?
- 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 it 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.