Squeak is the new Emacs

August 22, 2006

Squeak is a Smalltalk environment with fairly easy-to-use tools for building interactive applications (animation, sound, etc). Emacs is the venerable text editor that morphed into a powerful desktop environment. However, it lacks all the interactive media functionality present in Squeak. I believe that Squeak, or something similar, could be used to build a next generation Emacs. It would be trivial to duplicate much of the Emacs library because these simply manipulate text. With Squeak, one could add a UML or Visio-like tool for code generation. One could build animated models of software for verification. One could perform data visualization directly in Squeak (similar to Mathematica). All the neat wizards and things in other IDEs would be trivially built in Squeak; for example, database access wizards in Visual Studio helped zillions of VB programmers write IT applications. The breadth of things one could do with Squeak far surpasses what is possble with Emacs.

Most of the problems with Squeak could be fixed quite easily. First, the Squeak interpreter could be replaced with a JIT. Second, the environment is one large Squeak window, rather than lots of separate window frames (MDI vs. SDI). Third, there might be a problem with filing code in and out of the image. That is, one can add code, but I don’t know how one removes code from Squeak (e.g. unload the C# editing environment from my current Squeak session). You can’t do that in Emacs either, but we’re trying to leapfrog ahead of Emacs, not match its flaws. Of these, the only difficult problem is the MDI window. I prefer SDI, or at least multiple MDI windows. To be fair, Visual Studio and Eclipse (I think) are MDI. All in all, I think Squeak could be a much fancier and extensible IDE than Emacs or anything else out there.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: