10 years of Python development
This year's PyCon conference in Prague inspired us to look at the decade of life with Python.
In the past few days, PyCon first Prague conference was held and our backend team could not miss it - we, at COEX, use Python or rather Django since 2006. When one of our colleagues presented us Django 0.95 we were in awe by its elegance, speed and a new angle at solving the usual challenges of software development.
But we also hesitated as it was a major technological change in the form of a new programming language and the associated changes inside the team, processes, deployment, etc. At that time, we’re building web projects on our own CMS based on the then very popular PHP. The size of the community, the amount of documentation, existing libraries and projects were incomparable - but security, more advanced syntax, and the ability to build more robust systems tempted us to try Django in practice.
The first commercial project we decided to build on Django was an intranet application for a private university. We learned from it how to work effectively with forms, what database we should use, libraries etc. And since GIT was just starting out, we used the SVN version. Despite some inconveniences and beginner’s underestimation of estimates of delivery (yes, there was a lot to learn over the 10 years:) we’ve successfully completed the project. And it’s amazing that it’s still in full operation and already under the wings of the internal team of the client and it still works today, 10 years, which is a respectable age for the software application.
Python has since gone a long way. The scripting language becomes mainstream and the number of users increases linearly. Python Software speaker, Naomi Ceder (a member of the Python Software Foundation) said: Python's increasing popularity also increases diversity, and Python is also being used in areas previously dominated by the established development platforms supported by global commercial firms. As an example of the increasing use of Python, we can mention science projects, artificial intelligence, data analysis. Or, as Naomi added, "the time of flying cars is coming," and if parts of the software are written in Python, no one will be surprised and it would emphasize even more that Python can be used as universal programming language for almost everything.
What helped with Python's boom is undoubtedly a strong leadership in the form of Python Software Foundaton (PSF), which helps determine the direction of further development, helps organize conferences around the world, and unifies often fragmented development trends. We’re very pleased that the Czech community is also growing, we're seeing more and more projects on this platform and the second global Python conference was held here.
PyCon Prague 2017
This year's PyCon, started with already interesting keynote by Lilly Ryan on the topic of bugs. And how much today's world depends on software and what errors in applications can cause. Another interesting lecture was given by a Spanish developer Carlos de las Heras, who focused on the evolution of Django, web development and hybrid architecture.
And last but not least, our pythoneers also recall a talk about how to optimize Python code with C or C++ in the Cython variant to achieve dramatic performance optimization. More here.
At COEX, we’ve made dozens of applications in the past decade, and until recently we’ve used other platforms with advanced CMS for common presentation sites. In the last year, however, we decided to focus more on our own products and on more complex client applications, usually not requiring sophisticated CMS. We use mostly pure Django admin for managing backend information. If it's needed to work more intensely with a UX-based data management application, we choose either a separate user interface or a deeper adaptation of Django Admin (for example. Exapro success story).
For most new projects, we rarely use a classic admin (or Grapelli or Django Suit extensions), but with modern REST technologies, we chose Django Rest Framework, and system and content control is built on the frontend mostly using Angular2 (currently testing version 4:) and so on.
For projects outside of custom development, in 2015 we've created the Django Translation Manager extension that we use for multilingual projects. We've also released it as an open source on Github and it's also available within Pypi. This year, we would like to make some improvements for Django Translation Manager.
We’re very pleased to see how Python is used more and more in the corporate sphere, which was formerly the domain of Java and DotNet, thanks to Microsoft's strong position. From our own experience, we can confirm that applications that cost more than hundreds to thousands of hours spent on scalability or work with more data, Python and Django are the right choice. From e-commerce systems to mass mailing applications, or online streaming TV.
Do not hesitate to ask whatever Python questions you may have, or if you would like to join us or have a project to implement.