Comment I posted here at JoelOnSoftware
I have a PythonLanguage story which I'm a little bit shocked by.
I've always liked ScriptingLanguages. I like PerlLanguage a lot. Then last year I thought I'd get into Python, and was converted within an afternoon. There's no doubt this is a beautiful, easy and stress-free language. I've written several smallish programs in it over the last year.
However, in the last couple of months I've been writing a desktop app. (This was SdiDesk) in Windows. When I started, I looked at Python and VisualBasic. I started playing about in both environments. But somehow VB took off and suddenly, a couple of months later, I've found I've been happily writing the code in VB. I have days when I think about switching and re-writing, but basically I'm locked in.
I still think Python is a better language. It has far more good features than VB. My VB code is undoubtedly longer than the equivalent Python. The string processing is clunkier. And the lack of inheritance a big drawback.
And yet, somehow, in practice, it hasn't mattered. The code flows easily enough. The language's failings don't hold me up. I get round lack of inheritence using helpers and strategies. The string processing works out OK.
But I think the best explanation I ended up in VB is this : A good IDE counts for a hell of a lot. And the VB IDE has stuff I don't have in the Python IDEs I've tried.
Particularly, auto-completion of function names, and the prompting of the required arguments is a huge productivity boost. (Maybe because I have lousy short-term memory for such things.) The integration of the form-editor and the code behind the controls is still a lot better than, say, PythonCard. And, generally, it does feel more integrated. (ActiveState PythonWin for Windows does auto-complete and argument fill-in. –BillSeitz)
I'm sure decent Python IDEs exist, or are around the corner. And I hope I will be switching one day. But right now I'm kind of surprised I've been so happy in VB.
GlamorousToolkit is at the cutting edge of development environments.
Build your own tools to query / analyse and manipulate your code base.
JonathanEdwards on language vs tool people : http://alarmingdevelopment.org/index.php?p=8#more-8
Another interesting point. I'm generally against strong-typing (AgainstTyping). And I love Python's lack of typing. But I realize that I appreciate the write-time support that types give me in the VB IDE. Not sure how to transport that to Python. (Actually, there are Python IDEs with some code-completion. And there is even talk of OptionalStaticTyping for Python, though it isn't popular.)
Also the reason I don't find the typing a pain in VB is because it's interpreted, so you still don't have the compile stage interrupting the flow.
BillDeHora on what PythonLanguage needs in a good IDE. (And suspects that's why Guido is thinking about OptionalStaticTyping) : http://www.dehora.net/journal/2005/01/javagetsetnotthatharmfulversioncontrolforrefactoring_harmful.html
Debuggers, wizards, code generators, code folding, code tidy, syntax checking, tree views, all that stuff normally associated with an IDE, are not the key productivity boosters. The facilities a good IDE gives you that count are:
- easy testing,
- version control
See also :
Backlinks (23 items)