Dreaming of new generation IDE

John Bokma john at castleamber.com
Wed Feb 3 21:08:35 CET 2010

Phlip <phlip2005 at gmail.com> writes:

> On Feb 3, 10:57 am, Adam Tauno Williams <awill... at opengroupware.us>
> wrote:
>> > Current editors suck because they can't see into the code and browse
>> > it - unless it's so statically typed it's painful.
>> ?  I edit Python in MonoDevelop  2.2;  and I can browse my file,
>> classes, etc...  So I don't know what you mean by "can't see into the
>> code".  It works pretty well.
>> Of course it can't tell that I've set x = {an integer}, as that only
>> happens at runtime.
>> > That's why I wrote this:
>> > http://www.oreillynet.com/onlamp/blog/2008/05/dynamic_languages_vs_editors.html
> You just said that your code browsing "works pretty well, except when
> it doesn't".
> Hence my blog entry. If your editor analyzed your code at runtime,
> instead of just static analysis, then it could see that x = an
> integer, or an object, no matter how dynamic your language.

In Perl:

my $x = ( 5, "hello", sub {}, [], {} )[ int rand 5 ];

what's $x? The answer is: it depends. 

Moreover, even if your editor analyzes your code at runtime (which is
certainly not always desirable) it might not be able to find out what
the type is of x, simply because it would take too much time to find it
out. (It sounds like you want an editor that solves the halting problem
;-) )

I agree with you that to /some extent/ and editor can do analyses, if it
does compilation as well (and even runs the code, but the latter is not
always desirable). I mentioned the Synthesizer Generator before, which
can do compilation on the fly, if you implement it (or if it has been
implemented for the language you edit with it). I've written a very
simple assembler in it, ages ago, which did assembling on the fly.

John Bokma                                                               j3b

Hacking & Hiking in Mexico -  http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development

More information about the Python-list mailing list