[Tutor] Const on Python

Ricardo Aráoz ricaraoz at gmail.com
Fri Mar 7 14:36:59 CET 2008

Alan Gauld wrote:
>> In commercial practice sometimes "political" considerations make for
>> crazy decisions, e.g. witnessed by me:
>> 1.) a new web service needs to be developed.
>> 2.) the policy of the company is that all developers need to know C
> ++/Java.
>> snipped... desire to use Python/Erlang
>> 5.) The project lead makes him to do it in C++ anyway. Would make 
>> the
>> scheduling of the group way to complicated if you could not assign 
>> any
>> developer to every ticket coming in.
>> That's the moment where you start scratching your head.
> Actually I'm with the lead here.
> The cost of developing a new feature is a tiny proportion of total
> life cost of code - often only 5-10%. If Erlang is already being
> used that might make some sense, but of the developers all know
> Java/C++ then one of those makers more sense. If every
> modification needs to wait for a Python/Erlang developer to
> come free that would push the lifetime costs up dramatically.
> Its not a matter of politics but of business and TCO.
> I routinely build prototypes in Python, a few of which have been
> "good enough" for the users, but nonetheless we have had
> them rewritten in Java because thats what we use in house.
> Nobody upgrades the Python version on the servers, only a
> handfull of developers know Python. So it makes commecial
> sense to rewrite the app in Java where anyone can fix/modify
> it than have an app in Python than only a select few can
> work on and costs a fortune in upgrades over the 10 years
> or more the app may exist for.

That would be true if you assume that your business practices are 
established and should remain unchanged. But the essence of business is 
change, if developers all know Java/C++ you could gradually retrain them 
to learn Python. Then development costs would go down, you would have 
Python people for maintenance, and you might keep a core of your more 
experienced Java/C++ programmers available for optimizations in which 
you would need to interface Python with C++ functions. Now that would 
make business sense, if you accept that development practices don't 
necessarily have to be frozen. Of course all this would depend on the 
particulars of the business at hand.

More information about the Tutor mailing list