A couple of us were speaking to an industry analyst the other day who was asking about our technology stack when he remarked:
“The selection of Python and Django three years ago was either truly visionary or borderline crazy, but it’s exactly what you would choose if you were to start today.” – Bernd Harzog, The Virtualization Practice
I’d like to take the credit associated with the visionary part of that statement, but the truth is that Python has been a solid, logical choice for enterprise development longer than it usually gets credit for. Python has been used for years at the core of intensive, production systems by everyone from Google to NASA, and it has performed admirably under the pressure.
Some might say that the choice of a back-end technology should be irrelevant to consumers of a product, but the fact is that a language, though unseen by end users, makes a huge impact on their experience. A language should inspire a development team to deliver functionality quickly and reliably and allow engineers to focus simultaneously on the dual goals of robust architecture and an excellent end user experience. In a similar way to how dogs and their owners tend to start looking like one another after years together, programmers’ thought patterns and behaviors are influenced by the attributes of the language and framework they use every day. For example:
- C programmers think overwhelmingly in computer science terms, at the expense of user experience.
- .Net teams tend to think excessively graphically, at the expense of creating architectures that are not as interoperable and ready for integration and scale as they should be.
- Perl encourages developers to think of the most obfuscated way of accomplishing a task, rather than the most transparent.
Just as dogs and their owners begin to look alike, developers begin to think in their "native" language (photos courtesy of Cesar)
In contrast to other options, Python influences programmers to constantly consider extensibility, simplicity of design, ease of installation/management, and the principle of least surprise, all through the example that it sets. It does this while enabling more rapid and responsive development than any other language I have used.
Though CloudBolt C2 was introduced later than some other cloud management systems, we have seen it leapfrog other solutions and gain acknowledgement as being easier to install, more flexible and scalable, and sporting a cleaner and simpler user interface than other products in the space. There are several factors that enabled us to surpass other solutions, but at the core of these is the Python programming language.