Where is Python in the scheme of things?

Rob Knapp myddrin at myddrin.com
Thu Oct 5 01:12:30 CEST 2006


On Wed, 2006-10-04 at 16:21 -0400, gord wrote:

> What is particularly disappointing is the absence of a Windows IDE, 
> components and an event driven paradigm. How does Python stand relative to 
> the big 3, namely Visual C++, Visual Basic and Delphi? I realize that these 
> programming packages are quite expensive now while Python is free (at least 
> for the package I am using - ActivePython).
> 

Ok, this is probably a little long but I always enjoy telling this story
and I think it will answer you question in terms of usability.

I got started using python on windows, back when I was largely a VB & VC
++ developer (6.0). (With a little java, some php and bunch of other
less important languages.)  I was working on a large project (developing
a videoconferencing suite), and we had several options for how our
proprietary protocol would handle relay selection for each connection.
The system used a STUN-like relay system and we knew performance would
be significantly enhanced if this connection was routed through a relay
"close" to one party or the other. However, there is a distinct
disconnect between "close" in the real world and "close" on the
internet... and that can change from moment to moment based on the
conditions between the two points. So we came up with three or four
different algorithms for it and the discussion (as developer discussions
sometimes do) devolved into a flamewar.  So, I decided to write a
program that would simulate each algorithm, and then subject that
simulation to various network effects.  

Having heard over and over and over how great python was, I decided to
write it in that. I scheduled 2 days to write the simulator, and it took
me less than an hour!  (Mind you, that was learning the basics of the
language and writing a simulator.) I called a meeting, ran the simulator
through its paces and well all decided on a solution.

Few weeks later, we needed to embed small scripts into the system....we
played with a bunch of different languages and ended up deciding on
python.  Then we needed something that would let us actually put
together a UI and actually let us embed that UI in activex controls,
java applications, VB programs, etc.  Again, we looked at the options
and chose python.   This time using PyQT to provide the UI widgets,
event driven programming and so forth.  One of the deciding factors was
that if we really needed to optimize any part of the UI code, we could
re-implement that subsection in C/C++ for an extra speed boost...which
we never had to do.

So basically, that one little simulator took a pure C++ project and
turned it into a bunch of C++ modules held together by python glue.
Which ended up giving us a really flexible AND maintainable design.

Since then I've pretty much been a dedicated python developer, except
for those places where there is a very specific need that python doesn't
meet... which is surprisingly rare.  

There are a few IDE-like python editors that run on windows, BlackAdder,
Eric, and a bunch of others.  (If I forgot your favorite, I'm sorry....)
The real advantage here over, say the Visual Studio stuff,  is that you
can choose which one you want, rather than being stuck with an
development environment that may or may not suit your working style.
(After using python for a few months, I basically stopped using IDEs as
I found it more productive for me personally to use Emacs...)

Between that and the language's emphasis on developer productivity,
there is a world of difference between python and the big three.  (Which
ever big three you pick.)  

I was a pretty productive programmer with VB/VC++/etc, usually one of
the most productive members of whatever team I was on.  But now that
I've made the switch to python, I'm several orders of magnitude more
productive in terms of actually writing the code.  Which means that I
can take more time to design my code for easier maintainability in the
future.



> Please discuss where Python shines.
> Gord
> 
> 




More information about the Python-list mailing list