Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How does it compare to Emacs, Idea and Eclipse?

I've been planning to learn a modern (compared to Interlisp, which I used in the 80s) Lisp for a long time. What stops me is the need to 1st learn a very complicated IDE.

I'm also having some doubts about Clojure compared to true Lisps - those store all data as lists for a very good reason - it allows fantastic code reuse.



About your last point, Clojure's seqs enable code reuse. You can operate on lists, vectors, sets, maps, etc as seqs. I don't know about Interlisp, but Common Lisp does not unify these datatypes under such a common sequence abstraction.



Yes, I had Rhodes' work in mind. In Common Lisp, sequences are hardcoded as lists and vectors. [1] Which excludes the sets and hashtables (which I mentioned), not to mention anything sequence-like which users might come up with. (Actually, it doesn't even have sets built in. I've seen people use degenerate hashtables to simulate them — keys which just hash to true.)

Furthermore, the by far most common mapping functions operate only on proper lists, not sequences. [2] And in the very popular (albeit notorious) LOOP macro, one must even use in/across/"k being the hash-key using (hash-value v)", depending on whether you're operating on lists, vectors or hashtables respectively! [3]

(Of course, one could add these things to CL, in the sense that you have all of CL's power in C — by implementing CL atop C. Or you could invent your own generic seq functions, and hope others use it.)

Someone could point out that had CL's standard had continued to evolve, it might've had these things. Or that these limitations were due to weaker computers. But whatever happened happened, and this is the real-world CL we have. CL's a wonderfully powerful language (not counting the troll-dominated community), but there's seams.

[1] http://www.lispworks.com/documentation/HyperSpec/Body/26_glo...

[2] http://www.lispworks.com/documentation/HyperSpec/Body/f_mapc...

[3] http://www.unixuser.org/~euske/doc/cl/loop.html


" But whatever happened happened, and this is the real-world CL we have."

Some of my links were there to point out that it's not really, we do have extensible sequences in SBCL for example.

Thanks for making such a long reply for what basically was link dumping.


The ITERATE macro is a bit more powerful.


What do you customarily edit code in? Clojure works quite nicely with both vim and emacs.


Nowadays Visual Studio + ReSharper.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: