Python evangelists unite!

James_Althoff at i2.com James_Althoff at i2.com
Wed Dec 5 17:46:06 EST 2001


Peter Milliken wrote:
>Just like you can produce large programs in C++ (but I wouldn't personally
>:-)) - just out of curiousity, why was the C++ version of the product
>replaced by a Jython version? Too difficult/expensive to update to the new
>requirements?

Yes, those were factors.  But actually, the market (for large,
sophisticated ERP/Exchange systems) has changed pretty dramatically the
past couple of years.  In the early-to-mid nineties customers in this
market wanted/expected C++ servers talking to Windows/MFC/C++ clients.  In
the late nineties the market shifted dramatically to where customers
demanded Java-based servers interacting with HTML in web browsers (or Java
desktop applications in some cases).  Java was seen by many in this market
as providing
- better portability across different kinds of servers,
- increased interoperability between services from multiple vendors,
- better leverage of "plumbing" and advanced transaction services (using
J2EE containers),
- better productivity, reliability, and subsequent lower cost of ownership,
among other things.  This market today is nearly 100% Java.  C++ based
products don't sell anymore (again in this specific market).

>Any ideas of what the maintenance costs of the C++ version were in
>comparison to any other language?  Was the Jython version cheaper, more
>expensive or the same in terms of productions costs as the C++ version?

I don't have accurate measures but most of the developers here believe that
our new Java/Jython-based system yielded 5X to 10X productivity increases
in development over the equivalent/previous C++ system and that the
maintenance ratio is at least as good.

>What were the problems encountered by the various teams using Jython? It
has
>always interested me what the selection process is in choosing a language
>for a project - do you know how and why Jython was chosen? Was it because
of
>popular aclaim or was some formal comparision of various languages
>performed? If there was some formal selection process, what languages were
>considered? What features of Jython caused it to be selected? i.e. what
>features where missing in the other languages under consideration.

The biggest problem with using Jython was convincing the team to use it.
My experience is that developers are very interested (with good cause ;-)
in populating their resumes with experience that is directed at the center
of the market.  At the time we started this new technology our C++
developers were far more interested in putting Java on their resumes than
Python.  Since I was the CTO and Senior VP of development, though, I
basically dictated the choice of Jython.  Of course, to be fair, I sold the
concept by first developing (with my own rusty hand) a prototype system in
a month that amazed and dazzled all the C++ developers.  They were
astonished to see that such a system could be created by one (old and
cranky ;-) person in such a short amount of time.  The other factor that
helped in our case was the fact that the technology -- by market demand --
had to be Java *and* we were convinced that we needed a scripting language
as part of our technology.  I sold Jython as being the best possible
scripting language for Java.  The reason *I* was sold on Jython was because
of its being a complete, dynamic (not statically type-checked), OO language
that interfaced seamlessly with Java.  I like to view Jython/Python as a
"high-level, application language" and Java as a "low-level, systems
language".  :-)

Jim






More information about the Python-list mailing list