[Twisted-Python] Bullets for the twisted proselytizer gun?
L. Daniel Burr
ldanielburr at mac.com
Fri Jun 9 12:44:59 EDT 2006
On Fri, 09 Jun 2006 07:02:50 -0500, Eric Faurot <eric.faurot at gmail.com>
> Hi all,
Hi Eric, let's see if we can provide you with some ammunition...
> I will probably have a chance to be in charge of a (commercial)
> project that consists in developping a platform for handling
> distributed content, with XML-flavored chips and webby services. I am
> also confident that my voice will be heard concerning the technical
> aspects of the project. My wish is of course to use twisted for that.
> But I will have to convince people with the tie and the money, who
> tragically are also the ones who are most sensible to buzzwords.
How true. I've worked for a few large corporations, in the energy and
pharmaceutical sectors, and management is always more comfortable
contemplating so-called "best-of-breed solutions", where said term really
means "whatever is popular in the media, supported by large companies, and
used by the competition".
> The LAMP case will be rather easy to deal with. I'll show no mercy.
> My concern is that the dreadful J2EE acronym has already been uttered.
> I have programmed a bit in java already, and I never liked it. I find
> it cumbersome and boring. Although I can certainly do that if I am
> forced to, I want to avoid it at (nearly) all cost. But I don't have
> enough experience to plead effectively against it. I doubt that
> intuition and aesthetic inclinations are really convincing arguments.
That's correct; management is already relying on subjective criteria
masquerading as objective requirements, so adding more subjectivity to the
discussion will only hurt you.
> So, I'd like to ask twisted enthiusiasts with better knowledge and
> experience of J2EE than I have, if they could provide meaningful
> points for advocating python/twisted over J2EE, pro and cons for each.
My experience, which is based on a number of projects for the corporations
I mentioned above, is as follows:
- Case 1
- A web-service application was written in Python, using twisted
and the SGMLOP parser (needed because it can parse non-xml markup).
This application was used by a search engine, to allow users to
search for portlets that might be useful in solving a problem.
When the user clicked on a search result, the twisted service
would connect to the chosen portlet, perform URL rewriting on
the portlet's markup, and present a preview of the portlet UI
to the user, from within the search results UI.
- Application was developed to a working state in 2 weeks.
- Bug fixes, refinements, etc, took another 2 weeks.
- Management decided to contract a large offshore J2EE firm to
rewrite the application in Java, so as to be compliant with
- Development of a working prototype took 1 month.
- Application was completed after 3 months, with slightly
- Cost was roughly twice that of the original application, despite
the reduced hourly rate of the offshore developers.
I've got more such cases, but not the time to type them all up for you.
Hopefully this one real-world example will give you some idea what kind of
advantages python and twisted can provide your management.
> My main argument so far is that I am *way* more fluent in python, so I
> am more likely to come up with a prototype quickly. Also, the
> flexibility of python makes early refactoring much easier, and it is
> always possible to reimplement things in another language once the
> architecture stabilizes. I also think python is more portable than
> java, but that would sound a bit anecdotal.
Fluency isn't a great argument, in that management will counter by
pointing out that there are a bazillion more J2EE developers than Python
developers, and therefore choosing J2EE would make it easier/cheaper to
find developers to support and maintain the application. Stick with
reduced development time and increased developer productivity as your main
points: Make it clear to them that 1 developer using python and twisted
can do more work, in less time. That's efficient for the business, and
management should see that as a viable alternative to the "throw bodies at
the problem" approach.
> Thanks for your input.
Hope this helps,
L. Daniel Burr
More information about the Twisted-Python