Hello Avi,

AB> However, he did say "working at it", so it's possible that he's
AB> referring to something that hasn't yet been released.  If so, I'd love
AB> to hear more.

The idea is to extend an interactive console like irb with more
features, giving you at least a small part of the things possible
with smalltalk. The ideas are from an older IRB thread.

First you must write a startup file that contains all the require
statements for all libraries and files you want to include into your
"image". After loading this the console runs into the usual
eval-execute loop, waiting for interactive commands or signals from
the editor and other tools (like the mentioned class browser).

After receiving such a signal the console checks which of the required
files are modified and then they are reloaded.
But only the parts of the file that contains method/class/module definitions
are executed.

Modifying code during runtime is not very dangerous - even language
like Java/C++ have a edit/continue feature in state of the art
debuggers. Changing the data structure/global variables is much more
difficult. To get this right the i played with the following idea:

Source files can have two special sections marked by comments, for
example

##=> Once
All code after this special comment is executed only after an
explicit reset operation (console restart).

##=> Reload
All code after this line is executed on each reload.

So if you must define/modify some global data you can simply place
them into this sections and write them in a way that they are handled
correctly - this is a task for the programmer and not the ruby
environment.

With tools like parsetree and the introspection/reflection features
of ruby it's not very difficult to write a class browser that can show
the object space and synchronize it with the text found in the source
files. Coding conventions are very usefull here to give good results.

And please remember that the goal is not to make ruby a smalltalk with
a different grammer, it is to make development more interactive.


-- 
 Best regards,                        emailto: scholz at scriptolutions dot com
 Lothar Scholz                        http://www.ruby-ide.com
 CTO Scriptolutions                   Ruby, PHP, Python IDE 's