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