Python should try to displace Java

Christopher Blunck blunck at gst.com
Wed Aug 13 01:05:37 EDT 2003


On Mon, 11 Aug 2003 18:43:08 -0700, Brandon J. Van Every wrote:

> - Sun is about to die.  It has done nothing for anyone lately and has no
> further tricks up its sleeve.

Sun will be acquired but will not die.


> - Sun has failed to make Java live up to its claims of universality.  Java
> is for all intents and purposes simply a widespread programming language,
> not a portable computing environment.  Portable computing environments are,
> in general, a pipe dream as long as Microsoft is around.  It will always be
> Windows vs. open standards.

Disagreed.  Sun has done a great job for universality by promoting job
mobility.  For example, a couple of years ago, I as a WebSphere developer
could not obtain a position on a project using WebLogic or iPlanet.  But
now with the "J2EE Standards for Packaging", deployment is universal.  As
long as I understand the spec, I'm mobile across environments.  That
unifies the job market for J2EE developers, and creates a situation
whereby an employer has many *many* more potential workers to draw upon. 
That in and of itself makes Java a viable strategic platform.

To prove my point, I'll extend my argument to database access.  Awhile
back, there were thick and thin database drivers.  The thick drivers were
native and proprietary, but were gleefully fast.  As JDBC caught on and
became more robust, more and more vendors switched to thin clients that
implemented the JDBC spec.  When this happened, Java developers stopped
writing to the proprietary thick client interfaces and instead adopted
JDBC.  All of the sudden they became more mobile - they could now work for
another company using a different database vendor because they were
familiar with coding at the interface (or specification) level.

Sun has done a fabulous job of defining a specification, and providing an
reference implementation.  The suite of XML parsers is a perfect example. 
JAXP, JAXM, JAXB, etc etc etc are specs that a programmer familiarizes
themselves with by using the underlying implementations of Xerces, Dom4J,
Axis, etc.  But, because they code to a specification they are mobile.

So, can you take a piece of bytecode off a Windows platform and run it on
a Solaris platform?  Most of the time yes.  In some odd occasions you
cannot.  Big whoop.  But, the other benefits that Sun has provided via
Java far outweigh the downsides imo.


> - Java is proprietary.  Python is open source.  Open Source is the best shot
> that anyone has at competing with Windows.

Why compete with Windows?  What do you hope to gain other than personal
satisfaction?


> - Ergo, Java is the weakling of the litter for Python to attack.

Don't attack Java.  Please don't.
Python has it's place (I actually prefer to code Python over Java), but
don't turn it into what it's not - a martyr.  Let Python evolve as it
will.  It solves a *huge* amounts of problems in a pragmatic fashion that
other languages don't come close to.  Be happy that Python does that.  Do
you really want to have a "Python One" conference costing $2000 that is
filled with mostly mid level manager donkeys handing out their business
cards and giving away plush animals?  I don't.


...


In my opinion, where Python excels over Java is in it's usability.  This
goes back to the statement (was it Kevin?  or Skip?): "batteries
included."  Python's built-in types are top shelf and extremely easy to
manipulate and use.  Capitalize on those benefits.  Show coworkers how
they can gain efficiencies by exploiting the built-in capabilities of
python.  Lead by example, not by commanding an army of cavalry.  Python
has always been a grass roots effort (which may be why it is so
technically successful).  

You're not going to achieve the same level of penetration that C# and Java
have achieved - Sun and MS have thousands of marketing and salespeople
working around the clock at booking Java and C# as the "enterprise
development platforms".  Instead of fighting the beast head, subvert from
within (to quote Dana Moore from last year's PyCon).  Show people where
Python excels in areas that their Java or C# environments cannot touch. 
Make a MS wizard obey the commands of a Java applet by using Jython and
CPython.  Show people that you can implement 90% of a feature in 3 days,
and offer to gut it in 6 months when the Java or C# alternative rolls out.
Make a subtle joke about your coworkers giving you $100 to hold onto until
such time that they replace your Python implementation with a Java or C#
impelmentation.  That'll get them thinking.


In Summary -
Java provides benefits.  Java has weaknesses tho.  Don't go head to head
with Java or C# - you'll lose.  Instead, make use of the grass roots
history of Python and lead by example.

Best of luck Brandon - good post!!! :)

-c





More information about the Python-list mailing list