When it comes to enterprise applications, Java and .NET have been industry favorites. Though some of the most popular and widely used websites, such as Google, YouTube, Dropbox, Reddit, Pinterest, Instagram, Quora, Spotify, etc. are been built using Python, the use of this language for enterprise app development is only just starting to accelerate. The reason behind the relatively slower adoption of Python in the enterprise has been ‘reliability’.
Enterprise software need to have the flexibility to integrate with legacy systems and authentication systems, need customizations to fit the operating models and have numerous stakeholders that contribute to the development process. Thus, the development process of enterprise software becomes a lot more complicated than regular software development and hence demand ‘"enterprise grade" programming languages. While in its initial days Python did not meet the infrastructure demands of this enterprise grade scripting language, since the 2000’s, the Python community has worked relentlessly to gore it's open source libraries for web development and data analysis to be enterprise ready. Despite the large scale use of Python, here are 6 myths still making the rounds that impede Enterprise Python adoption:
1. Python is a Scripting Language – Only:
While Python can be used as a scripting language since it has a simple syntax and cross-platform support, it has to be noted that Python essentially is a general purpose ‘programming language’ that is flexible enough and can also be used for scripting. This easy to use language allows dynamic typing and thus functions effectively as both a programming and scripting language making it suitable for enterprise use.
2. Python is not Compiled:
One of the myths about Python Enterprise is that unlike Java and other such languages, it is not compiled. Contrary to this belief, Python Enterprise has a compiler that runs automatically and does not need a separate compiler toolchain as it compiles to a bytecode which is used by a virtual machine.
3. Python does not Scale:
This is one of the biggest myths surrounding Python Enterprise. If Python did not scale then why would companies like Dropbox, YouTube, Instagram, etc. with a massive user base be using it? Python lends itself easily to horizontal and vertical scalability easily as it is built with profiling and optimization in mind. In terms of the code development time, Python scales better since you do not waste time fixing segmentation failures, memory leaks or by writing 'makefiles' for compilation. Python does not have a performance ceiling but each Python runtime has its own performance capabilities that can impede or accelerate scaling depending on where it is used. At the same time, it should be pointed out that scalability issues stem more from the use of the wrong architecture and not from a programming language.
4. Python is Slow:
5. Python does not Support Concurrency:
Unlike popular belief, Python has great concurrency primitives. These consist of deferreds, futures, greenlets and generators. Along with this, Python also has great concurrency frameworks like Gevent and Twisted. Some Python runtimes, such as PyPy and Stackless, lend themselves very well to customizing runtimes for concurrency. Python also has a number of concurrency models in the standard library and home-grown solutions. Standard threading that utilizes the OS’s threading library, select-based concurrency, generator-based threads are some mechanisms to support concurrent tasks in Python. CPython is equipped with the global interpreter lock (GIL) that make it easier to use greenlets or OS threads without influencing other running processes.
6. Python is not Suitable for Large Projects:
Python has been used successfully for large projects, big teams and big jobs quite successfully. Bank of America uses 10 million lines of Python code in a single project. YouTube, Instagram, JP Morgan are other examples of large companies using Python extremely successfully for large projects. It has exceptional packaging characteristics and modularity and most of the scaling guidelines remain the same making it great for large projects. Additionally, it has strong conventions, tooling and code review capabilities that makes it easier to review and manage big items. It is also very easy to schedule speedups and perform fixed analysis of Python code before it gets checked in.
Good Python programmers are relatively lesser than PHP or maybe Java. While developing your enterprise application with Python, ensure that you hire experienced programmers who not only have good knowledge of the language but also have an in-depth understanding of the basics of programming.
In every myth surrounding Python, there lies hidden an implied strength. We hope that this blog has helped in dispelling these prevalent Python myths and have provided a new perspective towards the language.