From: Lothar Scholz Date: 2005-01-02T02:58:38+09:00 Subject: Re: Ruby and Smalltalk like environment?Q 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