Python for Executives

I’m very happy with our choice to use Python as one of our core development languages. It has proven to be a great time saver, in overall development costs and allowing an excellent pace of changes.

When we started IT Structures we debated over using Java\Linux combo or .Net\Windows duo.  Python was pushed in as an “experiment” by Ronnie. Our collective experience was derived from C , C++,JAVA , the hard core programming languages of past decades.

Python Logo

We started with Java, as our core belief was that Linux is a much stronger server platform than windows and that integration with a large number of distributed servers would be much easier in Java.

It took us less than a month to throw Java\J2EE out of the window. It was just far too complicated to get a simple combo box done, too many library options, too many eco-systems which are magically incompatible.

We decided to move to .Net and IronPython, preferring the developer productivity over the server utilization. This was done two weeks before the deadline. The combination allowed us to finish the version in the original time frame with minimal delay.

IronPython is cool because Python can be used together with C# and .Net . We are using C# for the more “traditional” business logic and UI elements, while Python is used for orchestration of a highly sophisticated real time server environment. That way we enjoy the best of both worlds.

The main fears managers have around Python are: Risk, Recruiting, Performance and Immaturity. At this stage I can say we have overcome all these reservations.

  • Recruiting – It turns out that smart and innovative people are attracted by Python .Innovative smart people can also learn Python very quickly.
  • Risk – in one year we had only five cases where a Python specific bug occurred. We had many more ASP. NET, JavaScript, HTML and even Java specific problems.
  • Maturity – not only is Python very solid, so is IronPython. The code is stable, the smart features work, the community is responsive and the libraries are rich. The only downside is the IDE and Visual studio integration, but this is progressing as well.
  • Performance – Python flexibility allowed extremely fast optimizations at the system and algorithmic levels, without requiring premature optimization. The system and algorithm changes are the ones critical in a real world environment. Some issues are showing up, but it seems they can be solved with a reasonable cost.

As time passed time our confidence grew we started using Python in a more and more places across our service. Overall it was an excellent choice and well worth the risk. I would not go into the reasons for Python success in this post, but you can read about it around the web.

Tags: , , , , , ,

7 Responses to “Python for Executives”

  1. Ted Says:

    I like Python but I think you overlook something in your “Risk” point:

    – The use of Python in your software appears to be limited to certain tasks
    – C# and the rest are doing the heavy lifting
    – You haven’t used Python as long as you had with Java/C/C++

    If you use Python as heavy as the rest, won’t you hit its limitation as well eventually?

  2. ophirk Says:

    Thanks Ted.

    Maybe i was not clear enough . Python in our company does at least half, if not more of the heavy lifting. It is not limited to a small corner, quite the opposite.
    It is used to manage virtualization, networking and storage in a very large scale real time system and lies at the core of the service.From a software development perspective it is used for multi-threading, Object Relational Mapping, RPC , algorithms, API management, logging, network security and testing.

    Regrading your second point. I agree that a year of experience is not equal to ten years, but I I have the same faith in Python now as I had in C++ after one year following nine years working in C.
    Since our usage is in a live , complex system with real customers I’m quite confident we mitigated most of the risk.

  3. Vishwajeet Singh Says:

    You could have done this using Jython if I am not wrong 🙂
    why you eliminated Java without considering Jython ??

  4. ophirk Says:

    It was hardly maintained at the time, and fell significantly behind CPython versions. I understand it has changed since.
    Our main two main problems were in Java itself and not just Python integration.
    1. Eclipse crashed every hour.
    2. JSF was the best practice to write web pages , but was really strange and long way to write simple code.
    3. Connecting CPython to Java required an annoying RPC mechanism.

    Many people write great products in Java and Eclipse, but it seems there is a big learning curve which didn’t suit us.

  5. ophirk Says:

    Since I wrote this blog we had few serious performance problems in our python related code.
    I was a bit worried that my comments might have been too optimistic.
    The investigation has shown that in one places we were writing and pickling a single object to the log 777 times.
    That’s probably not a god practice in any language.

  6. Bookmarks about Algorithm Says:

    […] – bookmarked by 4 members originally found by ksbroz on 2008-11-14 Python for Executives – bookmarked by 6 members originally […]

  7. Five Minutes Past Noon Coffee 170 – DevHawk Says:

    […] Kra-Oz (aka Evil Fish) blogs Python for Executives. I like his “Risk, Recruiting, Performance and Maturity” model – four boxes, […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: