In a

recent entry
, Nelson argues that "Python is good enough on Windows to
replace Visual Basic":

Between wxPython, pyGame, and the win32all extensions you have all the
doodads you need to build Windows apps.

Then he illustrates his point by explaining a little application he wrote in
Python for his own use.

Unfortunately, he’s missing the point.  The strength of Visual Basic has
not much to do with the language itself, nor with the tools.  The reason
why Visual Basic is so popular is COM.

Visual Basic is rarely used to write standalone applications, but the fact
that you can reuse all the Office application (and a lot of others) from
"outside" is a Windows feature that Linux and all other Unixes have never been
able to achieve, despite commendable efforts. You have to hand it off to
Microsoft, who truly enabled "component-based computing" as soon as 1995, when
the first usable versions of COM appeared.

Here we are in 2003, with some stellar Java applications that we use every
day and love.  How many of them can be scripted from the outside? 
Where do I turn to if I want to reuse, say, IDEA’s code editor?  How about
Rational Rose’s UML designer?  Or even a simple HTML renderer?

Component reusability cannot be retrofitted.  It has to be built in,
from the ground up.  When I am writing a Java application and I have
identified a component that might be of interest to other users/developers,
there should be a simple way for me to expose a simple API that can be looked up
and invoked from any language.

Before everyone points me to Jython and similar initiatives, yes, they are a
good start, but nowhere near a true reusable component model similar to COM. 
Until we see such a model in the JDK, we will never have true component reuse in
Java.