I believe Lisp is an excellent language to build user facing programs.
If you capture the primitives of editing your program at the most granular elementary level, then there is no need to do this bolted on "scripting language" stuff later.
I think it's currently an under explored area of program building.
For some time I've wanted to make a nice raster editor (pixel art) program that would be similar to Emacs in the amount of power the user is given.
(Emacs Lisp now contains a large subset of Common Lisp including EIEIO - a lite CLOS)
I think the worst I've seen (bit of a tangent here) is something like GIMP the art editor which /technically/ supports Scheme but the bindings are generated from C automatically so it's VERY unlispy (and limited - they grabbed the problem too high).
The most unfortunate Lisp I've used in a program is in AutoCAD which is little more than BASIC in parens (and in some ways weaker).
No local binding (No Let, No prog etc. - save "/ foo bar baz" which is like "&aux foo bar baz" in CL). No arrays. No list mutation. No splicing quote.
At one point I thought about making a toy Metacircular Evaluator and liberating it from itself. :)
Essentially as I understand it, AutoCAD's designers got it for free off a bulletin board and the author was never paid only to find out they were using it later.
I have an email some place where he discusses it with me.
Later versions he wrote started getting more features but AutoDesk never had the inclination to fix their very shoddy early version.
Anyway a bit of a ramble but user facing tools are something I'm interesting in and I have a very specific need to implement them as a language first with a high level of granularity exposed.
This "scripting language" stuff people do today is a very weak and limited form of what could be if programs were dangerously Lisp first.
- Ryan