Implementing a Lisp Editor - Would like some advice.

I wasn't too sure if this was the best place to come with a question like this, but I don't have many (ok any) contacts in the Lisp (CL or Scheme) world that are as well informed and opinionated as the readers of this site.

I have read many times that the programming environments of the Symbolics machines were some of the best environments to work in when programming in Lisp. To my surprise, I haven't seen any modern environments attempt (or currently attempting) to reach this level of productivity. Or if they are attempting there is a magic missing from them. But more importantly I haven't seen any commercial company attempting the development of such an editor.

Now mind you my experience with these environments is less than 'nil considering the fact that the only reference I have to go off of are the Rainer videos. I feel like a kid trying to experience the true magic of the Wild West by only watching John Wayne movies. But I can deal with the lack of experience, but a commercial project cannot not be done without the voice of experience and/or customers. This is where some help you the readers of this site can possibly help me, if willing.

I have two problems, one is the runtime. My first instinct jumps to mzscheme, because of its rather large install base across universities. I truly enjoy programming in Scheme, and see many competitors in the CL market that I am not to sure I could contend with. So my first question, with consideration from a strictly pragmatic viewpoint, is which environment is better for the user, or rather which language is better suited for what job. I know people have their preferences, but I guess I would like to know why they lean one way or the other. Or if both are used, which language is used for which types of jobs.

The second question concerns the graphical front end (more appropriately the 'product' piggy-backing on the language). I was enchanted with the graphical environment of the Symbolics machines, and just recently discovered that this set of widgets was a standard called CLIM. I also recently found out that McCLIM is a nice project that is working to create a LLGPL version of the standard.

As you can imagine finding this only put more decisions into my head. The choice was easy when I was only dealing with MrEd. I am looking for recommendations as to which road to travel, or rather to present some options I may not be seeing. On one side I feel that I could use MrEd, and strictly develop the entire environment in Scheme using its libraries. I am sure that I could use the FFI to call CL environments if the customers wished us to offer a CL version of the editor. My concern (due to lack of experience with MrEd) is that I won't be able to get the same 'Symbolics magic' from MrEd that may be possible with CLIM.
On the other hand, it is also possible to develop the editor using CLIM and CL, and use the CL's FFI implementation to call mzscheme to evaluate Scheme code. Both are viable solutions, but I see a bigger problem.

The Lisp family of languages grants much power to its user on a metalevel. This was the main reason for me wanting such an environment; no IDE developer has been able to guess every need I have (hell I don't even know until I know) so I wanted a programmable environment like those of the past (the ones everyone seems to rave about). The bigger problem I mentioned above, when using the combined language is approach, is that potential loss of programmability. If the editor is in CL and I am only offering a Scheme product, then its possible that the editor wouldn't be programmable (without a CL environment thrown in as well) which defeats the purpose of working on such an editor.

I do apologize for the length of this posting and if the content is not suited towards this site. Thank you for taking the time to read it, and I appreciate any constructive comments or advice you may have.

Best Regards,

MJ Stahl

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

don't mean to be rude, but...

... ever used Emacs coupled with SLIME mode?

I don't think anything can do better as a programming environment for Lisp code. Though i don't know what the Symbolics environment was like.

What could be better?

Slime with more enhancements? ;)

I use Common Lisp, but I've a

I use Common Lisp, but I've always been impressed by DrScheme. However, if you want CLIM's cool stuff, you're going to need to implement CLIM in Scheme. Think of it as a graphical generalisation of the REPL.

On the other hand, there's a lot of work on graphical debuggers etc. being done using CLIM in Common Lisp, so part of your work would be done if you used Lisp.

Also have a look at Portable Hemlock, which is an Emacs-like editor written in Lisp.

Lisp Editors

climacs is written in CL and builds upon McCLIM.
Jabberwocky is written in Java.

Emacs+SLIME was already mentioned.
I think somebody wrote an Eclipse Plugin for Lisp, though I am not sure how far along it is.

Underlying feature

The underlying killer feature of both SLIME and CLimacs is that both make use of the swank remote-introspection protocol.