On 4/29/16 Apr 29 -10:15 AM, Mark Green wrote: > There is already Cursive IDE for IntelliJ, maybe it could be extended to > Common Lisp as well as Clojure? > > My guess as to why things like slots/classes don't have special > treatment in the IDE is that they are macroed and doing so would make > any programmer-defined macro DSL become a "second class citizen" unless > they also defined an IDE extension for it which would be extremely > complicated.. unless there was some way of specifying IDE properties of > a macro inside its definition, but even that would complicate the > definition.. FWIW, Allegro CL has a partial solution to this problem. You can tell the lisp environment about definition-creating macros, and their Emacs Lisp Interface can use that information to find definitions. I've often wanted to see this ported to SLIME (but don't know enough about SLIME hacking to do it myself). Which brings me back to an earlier point: if we are talking about IDEs, we are leaving the realm of Lispworks-specific discussion. This discussion would be more productive in a CL-wide, or possibly a SLIME, forum. cheers, r _______________________________________________ Lisp Hug - the mailing list for LispWorks users lisp-hug@lispworks.com http://www.lispworks.com/support/lisp-hug.html
MarkThere is already Cursive IDE for IntelliJ, maybe it could be extended to Common Lisp as well as Clojure?My guess as to why things like slots/classes don't have special treatment in the IDE is that they are macroed and doing so would make any programmer-defined macro DSL become a "second class citizen" unless they also defined an IDE extension for it which would be extremely complicated.. unless there was some way of specifying IDE properties of a macro inside its definition, but even that would complicate the definition..
I think it's more because Lisp IDEs, ironically, are ultimately TEXT editors and not SEXP editors (including Paredit and similar). IntelliJ does a lot of parsing/compilation to infer things about your source code. In Lisp it should be easier to work with S-expressions directly and keep additional metadata, like this expression was loaded from file x at line y with this textual representation, but Emacs/SLIME work mostly on text, not code. Which is a shame.On 29 April 2016 at 17:15, Mark Green <mark@antelope.nildram.co.uk> wrote:MarkThere is already Cursive IDE for IntelliJ, maybe it could be extended to Common Lisp as well as Clojure?My guess as to why things like slots/classes don't have special treatment in the IDE is that they are macroed and doing so would make any programmer-defined macro DSL become a "second class citizen" unless they also defined an IDE extension for it which would be extremely complicated.. unless there was some way of specifying IDE properties of a macro inside its definition, but even that would complicate the definition..
Here is the point. When I use a commercial IDE, *I don't need to think* about these things. The IDE takes care for these details for me, and I'm doing what I wanted to do - to write a code. I don't need to think about how it is implemented in the _commercial_ IDE I'm using. As for macro DSLs, this is a part of compiler job to do and determine it for me, not my. It is a part of compiler _services_ it could provide me as a servant to make my life easier. Let it be not precise and not accurate - but there should be at least an _attempt_ to help me. And it is not a wet dream - IntelliJ IDEA does this stuff already for Java, which is supposedly the more inferior language. Mark Green <mark@antelope.nildram.co.uk> writes: > There is already Cursive IDE for IntelliJ, maybe it could be extended to Common Lisp as well as Clojure? > > My guess as to why things like slots/classes don't have special treatment in the IDE is that they are > macroed and doing so would make any programmer-defined macro DSL become a "second class > citizen" unless they also defined an IDE extension for it which would be extremely complicated.. unless > there was some way of specifying IDE properties of a macro inside its definition, but even that would > complicate the definition.. > > Mark > > -- Br, /Alexey _______________________________________________ Lisp Hug - the mailing list for LispWorks users lisp-hug@lispworks.com http://www.lispworks.com/support/lisp-hug.html
As far as I am concerned, it is not the language – I have written programs in many languages for different purposes. When the objectives of the program are met, the language
used is mostly inconsequential as long as I didn’t have to stand on my head to make the writing productive.
So, to me, it is the development tool that matters more – a good one is one that does not get in my way and allows me to write tight, functional and easily testable code.
Hence, I still believe that the finest, easiest, and
by far the most productive development environment I ever programmed in was a Symbolics 3600 in the 1980’s.
Still has not been equaled, IMHO.
Z
From: Alessio Stalla [mailto:alessiostalla@gmail.com]
Sent: Friday, April 29, 2016 08:42 AM
To: Mark Green <mark@antelope.nildram.co.uk>
Cc: Alexey Veretennikov <txm.fourier@gmail.com>; Robert Goldman <rpgoldman@sift.net>; Rangarajan Krishnamoorthy <ranga@mmsindia.com>; Syed Zaeem Hosain <Syed.Hosain@aeris.net>; Paul Tarvydas <paultarvydas@gmail.com>; David McClain <dbm@refined-audiometrics.com>;
LispWorks <lisp-hug@lispworks.com>
Subject: Re: Sadness in my heart...
I think it's more because Lisp IDEs, ironically, are ultimately TEXT editors and not SEXP editors (including Paredit and similar). IntelliJ does a lot of parsing/compilation to infer things about your source code. In Lisp it should be easier
to work with S-expressions directly and keep additional metadata, like this expression was loaded from file x at line y with this textual representation, but Emacs/SLIME work mostly on text, not code. Which is a shame.
On 29 April 2016 at 17:15, Mark Green <mark@antelope.nildram.co.uk> wrote:
There is already Cursive IDE for IntelliJ, maybe it could be extended to Common Lisp as well as Clojure?
My guess as to why things like slots/classes don't have special treatment in the IDE is that they are macroed and doing so would make any programmer-defined macro DSL become a "second class citizen" unless they also defined an IDE extension for it which would be extremely complicated.. unless there was some way of specifying IDE properties of a macro inside its definition, but even that would complicate the definition..
Mark
Alexey Veretennikov <txm.fourier@gmail.com> writes: > Here is the point. When I use a commercial IDE, *I don't need to think* > about these things. The IDE takes care for these details for me, and I'm > doing what I wanted to do - to write a code. The problem is that so far "these things" are nothing, or not much. Is the loss of customizability worth having them? And they're implemented only for some specific languages, not for lisp or your own DSL. Perhaps when we'll have Artifically Intelligent IDEs, that will debug your code or just generate the correct code from the specification document, perhaps then it'll be worthwhile losing customization and choice of programming language. But since in 2015 they are still catching up with features you had in the "unix IDE", (and I'm not even talking about the lisp environments), I still have strong doubts about IDEs. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk _______________________________________________ Lisp Hug - the mailing list for LispWorks users lisp-hug@lispworks.com http://www.lispworks.com/support/lisp-hug.html
I mostly agree with Pascal’s reservations about IDE’s.
AFAICT, the IDE was invented (enabled) in 1956 with the *language* Lisp 1.5.. The *language* contains the equivalents of LEX and YACC. The *language* can act on itself.
In my first Dr. Dobb’s article (1978/9?) I published source code for a SEXP editor and debugger in lisp.
Other *languages* got IDE-envy and have been struggling to catch up. Rather unsuccessfully, afaict. If the *language* doesn’t have “LEX and YACC” built into it, you have to jump through hoops to get an IDE that is 50% as good as a lisp environment.
Then, there’s the Unix (shell) environment, which makes things incredibly easy and simple. Around the same time as the Unix shell was invented, there was another development, called FBP (flow-based-programming) which is even better at piping than the Unix shell is. (Still actively discussed and developed - see google group flow-based-programming).
The modern IDE is necessitated by inferior languages designed by syntax fascists.
We should strive to getting rid of syntax and going back to simplicity.
[Other examples of such wonderful simplicity are Rebol and the Smalltalk Blue Book].
pt
_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html