RE: Potential IDE project
I was thinking about this whole editor thread last night. I am really annoyed with GNU emacs too, and would love to have an non-commercial alternative. The trouble is, I think, the 'lisp curse' more than anything else. We (lispers, collectively), really need to focus on community building more than software building.
Climbing down from the soapbox, perhaps contributing / reviving an existing editor project is the best way forward? I had a look again at Dylan Deuce and it seems like a good target. The editor has a good pedigree (in that it was designed and built by some ex-Symbolics folks), is a 3rd gen design and it seems DUIM was ported to common-lisp by Duncan Rose.
Regards,
- Steve Nunez
-----Original Message-----
From: 73budden . [mailto:budden73@gmail.com]
Sent: 9 August, 2017 19:25
To: emacstheviking <objitsu@gmail.com>
Cc: Gerry Weaver <gerryw@compvia.com> Steven Nunez <snunez@mapr.com> Lisp Hug Lispworks <lisp-hug@lispworks.com>
Subject: Re: Potential IDE project
Hi all!
I'm slowly developing my Lisp IDE for about 2 years already. I tried to "advertise" it in 2015, but received nearly zero feedback, so I translated most of its parts to Russian and stopped further advertising.
Key components are:
1. SWANK. Hence we have most of tools which present in SLIME (some with lower quality, some are better than in SLIME).
2. Some lisp-specific editing commands are borrowed from the fork of EMACS-like HEMLOCK editor, so knows something about CL. E.g. there is "indent sexp" command.
3. Written in a client-server architecture. Server is your lisp image (with IDE server sources loaded), client is a separate GUI application written in tcl/tk. Initially I tried to use tk wrappers for tcl, but quickly rejected that. Writing client in pure tcl is much easier and allows to use all tk components. Wrappers suggest rather narrow set of widgets and anyway when problems arise, you have to learn tcl/tk. Also there are some more or less "debuggers" for tcl, which allow to diagnose things with ease.
4. Permissively licensed.
Site is here https://bitbucket.org/budden/clcon_en , but it contains nothing essential today.
Main branch is here: https://bitbucket.org/budden/clcon
Some screenshots are here
https://bitbucket.org/budden/clcon/wiki/Screenshots (some old, some in Russian).
Generally, everything is still in deep alpha quality, but I use the environment on a daily basis and almost never use EMACS.
Main current features are:
- supports only SBCL. Some effort is needed to port
- tested under Windows and sometimes under Linux
- every tool is in its own Window - like Lispworks IDE
- no minibuffer, REPL is used instead to enter complex editor commands not listed in menu (no command completion yet)
- multi-tabbed text editor with notepad-like look and feel
- some lisp navigation commands (next/previous sexp, up sexp, mark sexp)
- support of (in-readtable) form (missing in SLIME)
- REPL with persistent history and search through the history
- find in files with mutliple result windows (missing in EMACS)
- go to definition
- go to package definition, go to asd system definition (better than in EMACS)
- inspector
- debugger (stack, locals, inspect locals, eval in frame, return from frame, invoke restart)
- thread list (with debug)
- integration with cl-hyperdoc
- compilation error browser, errors are sorted by severity (seem to be missing in EMACS)
- list of definitions in the file (some quick hack with regexp)
I can say definitely that "clcon" is incomparably more advanced than ABLE and LispIDE. It is weaker than Lispworks on EMACS. I never seen slimv, jabberwocky and so on.
Most of UI and some portions of source code are now in Russian, but if actual collaborator would appear, I can fix that and prepare English version.
I'm spending a very little resource on the development in a last year, but some things are to be done:
- fix race conditions in the editor (some work is done, but more to do)
- support CCL
- improve performance of matching paren highlight
- find and replace in files
- automatic window placement
- multiple editor windows (for now we have "open in another editor" menu item)
- auto-completion for editor commands
- improve editor bookmarks (now they are just prototype)
- IDE programmer's guide (just add more examples indeed)
- finish inspector GUI (now it misses some essential things)
2017-08-09 12:01 GMT+03:00, emacstheviking <objitsu@gmail.com>:
> One thing I considered but never did (no time as ever) was to convert
> the swank protocol to Google Buffers format.... has anybody done that
> already maybe? Then it would open up the protocol to a whole raft of
> platforms, tools and more importantly, hackers!
>
> :)
>
>
> On 9 August 2017 at 09:51, Gerry Weaver <gerryw@compvia.com> wrote:
>
>> Hi Steven,
>>
>>
>> Yes. I have tried it. I was actually going to look into whether it
>> would be practical to write a C++ client for swank. Although, the
>> setup was pretty fiddly. I'm definitely going to use it as a
>> reference though. One thing I really want is the ability to send the
>> current editor buffer contents to headless remote images and deploy
>> images to remote machines from the IDE.
>>
>>
>> Thanks,
>> Gerry
>>
>> ------------------------------
>> *From:* Steven Nunez <snunez@mapr.com>
>> *Sent:* Wednesday, August 9, 2017 3:20 AM
>> *To:* Gerry Weaver; Lisp Hug Lispworks; Rainer Joswig
>>
>> *Subject:* RE: Potential IDE project
>>
>>
>> Gerry,
>>
>>
>>
>> Every tried slime/swank? Worth a shot if you like minimal GUI IDEs.
>>
>>
>>
>>
>>
>> *From:* owner-lisp-hug@lispworks.com
>> [mailto:owner-lisp-hug@lispworks.com]
>> *On Behalf Of *Gerry Weaver
>> *Sent:* 9 August, 2017 16:16
>> *To:* Lisp Hug Lispworks <lisp-hug@lispworks.com> Rainer Joswig <
>> joswig@lisp.de>
>> *Subject:* Re: Potential IDE project
>>
>>
>>
>> Hi Rainer,
>>
>>
>>
>> I have used the LispWorks IDE for a few years now. I was trying to
>> avoid criticizing it here, because I feel like it would be
>> disrespectful on a list dedicated to "LispWorks". I think the
>> LispWorks folks have done a commendable job on their IDE. Having said
>> that, as with all things, you can't please everyone. Unfortunately, I
>> find myself unable to get completely comfortable with it. I guess
>> when I'm switching back and forth between different IDEs (Visual
>> Studio, QtCreator), LispWorks ends up feeling a little cumbersome. I
>> mainly use Linux for Lisp development, so maybe that would matter for
>> my case. I whole heartedly agree with you on the less is more aspect
>> though. I want a lean, smooth, fast environment that gets out of the
>> way. I think I would end up writing a lot more lisp code, if I had an
>> IDE like that. I am more than happy to give up some functionality for
>> anything close to the lean, smooth, fast feel. I do feel that all IDE
>> windows and features should be a configuration option. I like IDEs
>> that let me git rid of the stuff that I don't want. I'm definitely
>> not a Java kind of guy and I don't care much for any of that world
>> (even though I've been forced into it a few times). Have you seen
>> QtCreator and other apps written with Qt? What are your thoughts
>> about those apps? I've looked around quite a bit and I haven't been
>> able to come up with a better choice than Qt so far. My current Lisp
>> development environment is Sublime Text and a terminal with a REPL
>> ;-). I've used the LispWorks IDE for debugging a couple of times, but
>> I don't need it very often (even though it is pretty cool).
>>
>>
>>
>> Thanks,
>> Gerry
>> ------------------------------
>>
>> *From:* owner-lisp-hug@lispworks.com <owner-lisp-hug@lispworks.com>
>> on behalf of Rainer Joswig <joswig@lisp.de>
>> *Sent:* Wednesday, August 9, 2017 2:38 AM
>> *To:* Lisp Hug Lispworks
>> *Subject:* Re: Potential IDE project
>>
>>
>>
>> Remember that the LispWorks IDE is already cross platform and comes
>> with an Emacs-like editor. Note also that LispWorks comes with the
>> source code for the editor.
>>
>>
>>
>> It is also useful to give feedback to the LispWorks developers, since
>> it may help them to see which features would help and integrate it
>> into the product with new versions.
>>
>>
>>
>> Personally LispWorks is my first choice for writing Lisp code and
>> also some other editing tasks. I have GNU Emacs and also the Aquamacs
>> variant of GNU Emacs.
>>
>>
>>
>> I like the light-weight editing in LispWorks and the look&feel on the
>> Mac.
>> One can easily add too much visual clutter and too much functionality
>> to an editor. Do we really need code folding? I never use that in GNU
>> Emacs. I don't even need paredit or similar. What I use is the
>> s-expression based commands in LispWorks and the mouse support, incl.
>> mouse copy.
>>
>>
>>
>> What I would prefer is slick look & feel. Smooth scrolling, nice
>> fonts, more visual UI for the editor in menus (there are some useful
>> extended commands which are hard to find), quick command overviews, I
>> would like to be able to have all information in editor windows
>> clickable (like the external format -> click on it to change it),
>> some improvements in error handling for example when using unicode
>> formats, etc.
>>
>>
>>
>> I think usability is very important and sometimes less is more. I
>> don't need much syntax highlighting and some people were reporting
>> improvements turning it off in their IDEs.
>>
>>
>>
>> In the Java-World there are big IDEs like Netbeans, Eclipse and IntelliJ.
>> They have much more features than just for Java development. Even
>> though they have lots of useful features which could be reused, I
>> would not like to use them for Lisp development.
>>
>> It's also that I don't like their visual appearance. They don't look
>> slick and native. They have too many distractions and I don't like
>> the multi-multi-pane window layouts...
>>
>>
>>
>> Regards,
>>
>>
>>
>> Rainer Joswig
>>
>>
>>
>>
>> Am 09.08.2017 um 09:08 schrieb emacstheviking <objitsu@gmail.com>:
>>
>> I too have been where you are. The real *truth* is that there will
>> never be a single perfect LISP IDE because we are all different with
>> different views, preferences etc.
>>
>>
>>
>> My cure was a simple series of steps:
>>
>>
>>
>> studying the source code for emacs!!!
>>
>> study the source code for paredit mode carefully!
>>
>> learn to use paredit mode effectively
>>
>> learn to use SLIME effectively
>>
>>
>>
>> Unless you have LW (I do but rarely use it even though it is free)
>> and live and breathe in it, Emacs *is* the best ready to go solution IMHO...
>> you just have to really make the mental effort to learn all the short
>> cut keystrokes for all the helpful stuff for manipulating
>> s-expressions, navigation.
>>
>>
>>
>> All the best though, I'd certainly be interested BUT what language do we
>> write it in ? ;)
>>
>>
>>
>> I ask that because LISP might not be the best cross-platform GUI
>> providing solution... perhaps Clojure would do the job coupled with
>> say J4GL... if you are going to write a good UI ight as well go
>> game-level on it, that was my plan!
>>
>>
>>
>> :)
>> All the best!!!
>>
>>
>>
>> Sean Charles
>>
>>
>>
>>
>>
>> On 9 August 2017 at 07:27, Gerry Weaver <gerryw@compvia.com> wrote:
>>
>> Hi Steven,
>>
>>
>>
>> I hear you and you are right. It is a daunting task. It's just that I
>> recently realized that I could continue dreaming or actually start doing
>> something about it. My initial goal would be fairly modest. I would just
>> try to get a syntax highlighting editor going with some kind of project
>> based file management. I'd force myself to use it exclusively, so that I
>> would continue to be motivated. I plan to dedicate a certain amount of
>> time
>> each week to the project. I really don't know where it could end up at
>> this point. The remote image thing would be a very high priority though.
>> Never the less, Rome wasn't built in a day as it were ;-) Thanks for your
>> response.
>>
>>
>>
>>
>>
>> Thanks,
>> Gerry
>>
>> ------------------------------
>>
>> *From:* Steven Nunez <snunez@mapr.com>
>> *Sent:* Wednesday, August 9, 2017 1:17 AM
>> *To:* Gerry Weaver; Lisp Hug Lispworks
>> *Subject:* RE: Potential IDE project
>>
>>
>>
>> I don’t like emacs either. Perhaps you share my dislike of emacs in the
>> true sense of the word: GNU Emacs. There have been emacs-like editors
>> that
>> are very good, like xmacs for instance, that would probably be able to do
>> much of what you want.
>>
>>
>>
>> The McCLIM guys were at one point trying to create such an editor, you
>> might check over there. You’ll need help, it is a monumental task.
>> There’s
>> also the Dylan editor; that might make a good starting point. I’d love to
>> see some investment, time or money, in those editors.
>>
>>
>>
>>
>>
>> *From:* owner-lisp-hug@lispworks.com
>> [mailto:owner-lisp-hug@lispworks.com]
>> *On Behalf Of *Gerry Weaver
>> *Sent:* 9 August, 2017 14:10
>> *To:* Lisp Hug Lispworks <lisp-hug@lispworks.com>
>> *Subject:* Potential IDE project
>>
>>
>>
>> Hello All,
>>
>>
>>
>> I've been contemplating the possibility of writing an IDE for Lisp. I
>> know
>> that most Lisp developers use emacs, but try as I might, I have never
>> been
>> able to enjoy using it. I spend a fair amount of time using Visual
>> Studio,
>> so that could well be a factor. Anyway, I have been wanting a more
>> traditional IDE (in the other language sense) for some time now. I sorely
>> miss certain IDE features when programming in Lisp. Things like a snippet
>> library, code completion, code folding, etc.. One major feature I would
>> like to have is the ability to target multiple remote images. I would
>> probably use Qt and QScintilla as a starting point. I'm posting this
>> because I was wondering if there was anyone else who would be interested
>> in
>> such a thing? If I knew that there was interest, I would probably make
>> different choices when developing the project. I would also be interested
>> in hearing everyone's thoughts on the topic in general. I most certainly
>> don't mean to offend anyone who is using other tools or start some kind
>> of
>> holy war. I'm just trying to find out if there are any like minded
>> individuals out there.
>>
>>
>>
>> Thanks,
>> Gerry
>>
>>
>>
>>
>
_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html