Foot in mouth disease
Derek Thomson
derek at wedgetail.com
Sat Nov 2 09:08:01 EST 2002
Aahz wrote:
> She asked me what -- if any -- Java-based tools were used by
> the experienced Java programmers who made that claim. She thinks that
> those tools are superior to plain text editors (which are really all
> that's needed for Python).
Eclipse ... for about one day. Far too painful, so it was back to Emacs.
Really, I've yet to see any IDE that I liked, or did anything but limit
my productivity. They have the same problems all GUI's have - you can
only do what the designers *thought* you might want to do. And when
coding, that's a serious limitation. I use Emacs, because it's basically
just a Lisp interpreter with some built-in functions for text editing. I
can therefore program it do do *anything*.
[And sometimes I have to use Visual Studio when porting. I can't
understand how anyone puts up with it. Aside from being unusable, it's
full of bugs]
As for refactoring, Python's advantage here are it's dynamic typing, and
run-time flexibility. Try altering a Java application on the fly. It
can't be done. In Python you can, for example, muck about with a GUI as
it's running, to see what works and what doesn't. This is *great*.
Then there's the fact that it takes between 5-10 lines of Java to do the
same thing in Python, depending on what you're doing. Having a very high
level language, as opposed to a high level one, definitely helps
refactoring in that there's much less code to refactor. Look at the size
of Fnorb (*), compared to Java ORBs. Or just look at the size of the
Fnorb IDL compiler ... and it's even readable. I know which I'd like to
be refactoring.
(*) http://fnorb.org
As for the "tools" refactoring IDEs provide, I can get more powerful
results with the Perl "-i" option, which lets you modify files in-place.
I could rename a method to anything I pleased, consistently, just to
name a trivial example. But since I'm using a *language* to specify my
changes, I can do literally anything. You can't do that in an IDE,
unless the IDE authors create a Turing-complete language to specify
changes with.
(Yes, I know people are going to say I should use Python, but Perl's
honestly better for pattern matching and substitution from the command
line, mainly because regexes are always immediately available and for
all the neat command line switches. Like "-i" itself ...)
--
D.
More information about the Python-list
mailing list