Enterprise Softwares with Python — Part 1

This serie of texts are intended to be for devs who are passing a hard time trying to migrate from old fashioned stack of languages to start using Python as the main language on future projects.

No, I'm not here to convince anybody why it should be done, hence, it's not my goal to go deep in the motivation for that, but I'm gonna highlight at least some reasons why it is a good idea.

Business Speed Vs. Core Speed

We all know that "old school" languages were intended to be as fast as it could. This is mainly because devices were not as fast as it is today and we needed to take care of core speed of our apps in the past. Delphi, for example, was a good "mix" of both business and core speed and because of that it received the title of RAD on it's IDE.

Today some things have changed, specially with the technologic advance at the hardware side, and some big companies realized that improve the infrastructure is more rentable then use financial resources with large dev teams to maintain projects based in "old school" languages. Well, if what I just said is not enough for you, take a look at the following facts:

FIRST, python is not a runtime. It is a a language and there is a lot of implementations with different performance characteristics being CPython the most commonly used. So, if you're chasing performance, you may take a look at other implementations like Cython or PyPy

SECOND, Python has alot of good success examples where it already beat some C++ and Java applications in performance affairs, without considering the fact that the code is hundreds of times smaller and comprehensible

Mahmoud Hashemi, Lead developer of the Python Infrastructure team at eBay/PayPal

Performance with Python is a myth that we need to bust right away

Learning Curve

If you already seen a .py file, you already realized how easy it is to read, learn and understand.

Thats mostly because they made Python to be as lean as possible and to complete tasks with fewer lines. Thats why Python is so straight forward when it comes to learning affairs.

Growth of the Job Market

Python has evolved alot in the last 15 years. If you take a look at TIOBE© Statistics you can see that Python has grown a lot from 2001 until now.

This growth reflects the number of developers on the labor market and that's a positive thing when CIOs are trying to decide if Python is viable or not.

Heading back to the content

In this first part, i'll try to explain how you can deal with static typing in Python. While I'm not a huge fan of static typing I thought that maybe it was important to show how it works in Python and how to avoid it by using Test Cases. So, have a seat an watch this 15 minutes video that i've prepared.

Static typing at Python?

While I don't see too much reasons to use static typing in python. Some people think that it make sense depending on the size of your project. After Python 3.5 you can use static typing but it has been built with the purpose of analysis, which means, the interpreter will accept the static code but will not interpret it. IMHO, the best approach will aways be the Test Unit. Tests are imperative while designing enterprise applications, no matter what kind of resources you're going to deal with.

In the second part I'll cover LDAP connection with Python and Django. Where I create a small Python app that queries information from Active Directory and then we can move forward and try to implement an authentication process using Django and Active Directory.

Well, I hope you enjoyed until now. I'll try to finish the next post soon an maybe you can come back after and check it out!

Bye! :)