Comment I posted here : http://discuss.fogcreek.com/newyork/default.asp?cmd=show&ixPost=3721&ixReplies=41
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. 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.
---- Have you tried Komodo at ? http://aspn.activestate.com/ASPN/docs/Komodo/3.0/ ? It might be what you're looking for. (SJ)
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 interpretted, so you still don't have the compile stage interupting the flow.
ManageAbility on the horrid truth that Eclipse may be locking people into JavaLanguage : http://www.manageability.org/blog/archive/20030405%23why_eclipse_demolishes_other_alternative/view
: I wonder why it was discontinued?
JohnathanEdwards on language vs tool people : http://alarmingdevelopment.org/index.php?p=8#more-8
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/java_getset_not_that_harmful_version_control_for_refactoring_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
|PythonLanguage||Useful but only small bursts of work||Komodo for serious projects|
|JavaLanguage||Nothing||Emacs was pretty bad. Eclipse is OKish but way too slow. Processing is a great environment for Java ... nearest thing to the VB experience|
|VisualBasic||N/A||VB6 OK, Visual Studio 2008 with VB.NET ... lousy experience|
|C||Maybe EmacsEditor is good for those who know||CodeBlocks seems ok when it works|
|Erlang||OK 'cos it's so small anyway||Probably would help, but still looking for one with syntax colouring,|
|ClojureLanguage||Emacs with ParEdit is beautiful||haven't tried in anything else|
See also :