[Tutor] [Semi-OT] Yes or no on using a Graphical IDE?
steve at pearwood.info
Sun Sep 16 04:48:01 CEST 2012
On 15/09/12 22:51, leam hall wrote:
> Hey all, not trying to contribute to the flames of one graphical IDE over
> another. I'm just trying to figure out if they are worth the learning
> curve? I have been doing most of my work in vi and the graphical IDE I'm
> supposed to use for a class keeps adding crap that I have to erase, and I
> have to move my hands to use the GUI parts instead of just typing.
> Is there a point in which a GUI IDE becomes more of a help than a hindrance?
Certainly. But where that point is will depend on personal taste and what
other tools you have. If your only tools are Notepad and command.com on
Windows, then an IDE will seem like a *really excellent idea*.
On the other hand, if you have a rich set of powerful editors and command
line tools, then you have a full Development Environment right there, and
adding Integrated doesn't really add much.
It might even subtract. A single Integrated DE can only have a single user-
interface, which may not suit your tastes and ways of working. Having a rich
set of independently configurable tools makes it easier to find your own
personal sweet spot.
So don't knock the power of an Unintegrated Development Environment. Or
rather, a very loosely integrated one, since the integration is done via
There are many IDEs for Python, and I suppose some people must like them:
Back in ancient days when I was programming on an Apple Macintosh, I
found IDEs to be *very* useful.
To start with, the original Apple Macs had no command line and weren't
multitasking, so everything was a GUI and if you wanted to run an
compiler and an editor at the same time, you needed to have an integrated
compiler/editor. I used Lightspeed Pascal, later known as THINK Pascal,
and it was excellent.
It was also before the term IDE was invented, so I never thought of myself
as using an IDE, I thought all compilers were the same. I was in for
rather a shock when I learned that they weren't.
The editor was fast and responsive, and automatically formatted my code
as I typed. It could pick up syntax errors automatically. There was no
interactive shell, like Python has, but Pascal doesn't really watch that
paradigm very well, and you could run your application live in the IDE
and set break-points to inspect variables using a powerful integrated
In my opinion, a good GUI integrated debugger makes or breaks an IDE: I
don't use debuggers enough to learn all the obscure commands for driving
it from the keyboard, so for me the choices are: (1) a good GUI debugger,
or (2) print statements in the code. Currently I use (2).
THINK Pascal didn't have anything like "Intellisense" or code refactoring,
but this was back in 1990 so the technology wasn't really up to it.
Another IDE I used, also back on the Macintosh, was Hypercard, which was
a combined GUI-builder app and runtime environment. The IDE part was even
more primative, but the model of a GUI builder where you can run code is
*fantastic*, and I've never seen anything that comes close since.
I recently decide to start looking at some Python IDE's to see what I'm
missing out on. To start with, forget IDLE that comes with Python. In my
opinion, it's worse than useless. But apparently, some people like it.
Heaven knows why.
I also looked at Spyder. What I found was that it is feature-rich, but
on my laptop the editor was not *quite* responsive enough. I'm not a
touch-typist, but if I were, I would probably notice the lag.
But absolutely deadly in my opinion is that Spyder tries to flag syntax
errors, programming bugs, and style issues as you type. That's not a bad
thing in itself, but there is a second or two lag between me typing
something and the editor flagging lines with little coloured flags and
what-not. As a consequence, as I type I'm constantly being distracted by
bling appearing and disappeared all over the page (not just on the line
In my opinion, if as-you-type code analysis isn't instantaneous, it is
worse than useless. Some feedback needs to be immediate, within a tenth
of a second, or else must be on-demand only.
More information about the Tutor