From: Lyle Johnson Date: 2003-08-06T23:02:31+09:00 Subject: Re: newbie question from a smalltalker Gavin Sinclair wrote: > I'd like to read about how the Smalltalk environment fits together > like this. All I know is the joke about it having an image problem. I've only played around with Squeak Smalltalk, but I assume that all of the Smalltalk environments follow the same basic approach. All of your code -- everything -- exists inside the core Smalltalk "image" that you referred to. When you start up Smalltalk, this image is loaded into memory. As you make changes (i.e. adding and removing classes or methods) the image is updated. At any time, you can identify (for example) all of the classes that implement the "foo" method, because they're all right there. When you shut down Smalltalk, the image is saved back to disk. It's a very interesting approach, and different from any other programming environment I've worked with. > IntelliJ and Eclipse both do a brilliant job at code refactoring and > navigation for Java - probably as good as any Smalltalk environment. > However, if an add-on can do this for Java (whose static typing makes > it possible), yet it can also somehow be done for non-statically-typed > Smalltalk, then there's hope for Ruby. I suspect the Ruby-in-Ruby > interpreter is the key. You may be right. I haven't used IntelliJ or Eclipse either, but I'm assuming that they work with a project-based approach, where a "project" is a collection of a particular set of source files and build a database of classes and methods based on those. And we'd need to do something similar for Ruby.