Dreaming of new generation IDE

catonano catonano at gmail.com
Wed Feb 10 14:45:49 CET 2010


On Feb 3, 12:10 pm, Vladimir Ignatov <kmis... at gmail.com> wrote:
> Hello,
> I am sitting here for quite some time, but usually keep silent ;-) I

> Finally I develop a feeling that strong instrumentation / tools can
> bring us the best of two worlds. That I am dreaming on is an absolute
> new type/class of IDE suitable for Python and potentially for other
> dynamic-type languages. Instead of current text-oriented IDEs, it
> should be a database-centric and resemble current CAD systems instead
> of being just "fancy text editor". Source text should be an output
> product of that CAD and not a "source material" itself.

I don't know CAD systems, but I want to share my comments about this.

I self learned to program with Squeak Smalltalk at 17. Later, I worked
with VisualAge for Java, that was a Smalltalk IDE applied to Java.

Now, I can tell you that in Smalltalk IDEs the code is not written in
files. It's stored in a thing called "image".

You have these frames, in the first frame you have the classes, in the
second frame you have the child classes and in the third frame you
have the methods of the child class you selected.

A bigger frame showed the code of the single method you had selected.

You modified the method, hit ctrl-s and it was COMPILED and saved in
the image.

You had a frame in which you could interactively call your objects,
some of them represented things that were "showable" on the monitor
and you could see these things pop up as you instantiated them.

Then, you had some specialized browsers in which you could search, for
example, all the places a method was called in (a thing I have
difficulties with, in python, today)

VisualAge had its own management version system such that EVERY TIME I
saved a method, it became a VERSION and there was a specialized
browser for browsing the versions (the image tended to grow, that's
it) while the regular browser defaulted on the last version and there
was a tool for freezing a version as a milestone.

Today, I tried to understand the twisted.web.client code and I found 3
methods I couldn't find by who were called.

I asked on the mailing list and they suggested me where they were
called and that the tool for such thing is "grep".

So, you grep, you get a list of files, you open each one of them and
keep scrolling and switching from one file to another... endlessly.
Maybe I'm getting old, but I tend to get lost in the process.

I can't believe the code editing situation today is in a such sorry

Is this what you meant ?

If it's this, then it's not experimental at all, it's been done
already and been put apart.

Crap won :-(

You write:

> Instead of current text-oriented IDEs, it
> should be a database-centric

well, it seems you agree with Alan Kay, (the Smalltalk inventor) when
he wrote that programming is NOT glorified text editing.

He called it "direct manipulation" every method was a live thing you
could send messages to and the source code that implemented it was
just an attribute of the method.

So you could have had a World Of Warcraft like interface, to
manipulate your methods.

You know what I'm doing now ? I'm drawing the map of
twisted.web.client on a paper with a pencil :-(


More information about the Python-list mailing list