
State of the Common Lisp Ecosystem - dwc
http://eudoxia.me/article/common-lisp-sotu-2015/
======
WalterGR

       The fact that it’s built on Emacs is a problem, as telling a new user they
       have to learn Emacs before using SLIME (which is not strictly true) is a
       significant artificial barrier to entry.
    

Yes, it is true. It's ridiculous to expect a person new to a language to also
learn Emacs. It is absolutely a significant barrier to entry.

~~~
richardjdare
It would be nice if there was something like DrRacket[1] for Common Lisp, or
maybe something like Haskell for Mac[2] that was on HN yesterday[3]. You could
package it with SBCL and a link to "Practical Common Lisp" and newcomers could
be typing in code within 5 minutes.

I like using Emacs myself, but a lot of people find it intimidating. I know
coders who are smarter than me, (vim using C++ finance programmers even!) and
I can't persuade them to try SBCL/SLIME.

Emacsophobia may be irrational (I didn't find it hard to learn once I stopped
expecting to use modern ui conventions) but asking people to face up to their
misgivings about a product is a hard sell compared to offering something slick
and attractive.

[1] [http://www.racket-lang.org/](http://www.racket-lang.org/)

[2] [http://haskellformac.com/](http://haskellformac.com/)

[3]
[https://news.ycombinator.com/item?id=10114767](https://news.ycombinator.com/item?id=10114767)

~~~
dwc
> Emacsophobia may be irrational

I used emacs for about 10 years. Then I switched to vim, and I have no
intention of switching back. It's not a phobia, it's a rational realization
that modal editing fits well with how I do editing.

~~~
richardjdare
Sure, I meant in the sense that its seen as really obscure and hard to learn.
A lot of people see vim in the same way.

------
TeMPOraL
And here I thought I was up to date on gamedev-related libs in CL... Thanks
for the list!

At first look the list may look very opinionated ("use XYZ and just XYZ,
forget about anything else"), but I understand the CL world has a bit of a
discovery problem - it's often hard to tell e.g. which library is stable, and
which is stabl-ish (e.g. made good enough for basic cases and then abandoned).
Promoting top-of-the-line tools seems like something the community needs right
now.

~~~
WalterGR
Gamedev? Do you mean the Graphics section?

~~~
TeMPOraL
Yes. I didn't know about CEPL and Varjo before.

------
mark_l_watson
That is a really good writeup - thanks.

I started using Common Lisp in 1984 when Xerox rolled out CL as an update for
my 1108 Lisp Machine. 31 years seems like a long time.

The Common Lisp community is great and with Zach's contribution of Quicklisp,
most of the hassles of setting up a good CL dev environment are solved.

I especially liked seeing the two machine learning packages.

------
mindcrime
I _just_ started making a serious effort to learn CL (finally, after having it
"on the list" for over a decade) a few nights ago. I'd already been an Emacs
user, but __not __an Emacs "power user". Still, it took me 20 minutes or so to
get Emacs, SBCL and Slime all setup. Once it was all working, I just had to
spend a few minutes learning a few key combinations I'd not bothered much with
before (like how to move between frames, and then the Slime specific ones for
compiling and loading Lisp files), and I was off to the races.

Now granted, I already knew my way around Emacs a little (emphasis on _little_
), but I was pleasantly surprised how easy it was to get up and running with
that environment. And now I have even more motivation to truly master Emacs.
Personally, I'm pretty happy with the state of the Common Lisp Ecosystem,
approaching it as Lisp beginner (but not a programming beginner). _shrug_

~~~
aidenn0
Out of curiosity, how are you approaching learning it? Practical Common Lisp
seems to be the most popular entry point for non-beginner programmers learning
lisp.

~~~
monkeyshelli
I started with Practical Common Lisp, but found out Lisp-koans
([https://github.com/google/lisp-koans](https://github.com/google/lisp-koans))
support my flow of learning CL better, as I do some koans while commuting in
the train :)

~~~
aidenn0
That's interesting; probably a learning-style difference, but the one time I
tried a -koans (ruby-koans in this case), I found it to be a very inefficient
way to learn.

~~~
monkeyshelli
To me currently the biggest learning curve in CL is that "how to use CL" e.g.
list/vectors etc. and not "how do I use CL to solve X". To the former, koans
are good way to get familiar with the syntax and how to use the language.

------
VitoVan
I'd like to translate and repost this article, but can't find a license. Can
you grant me the permission?

------
kazinator
Before this page, I've never seen anything defeat the Print Edit add-on for
Firefox --- the last resort for reading something. Wow!

Can we have this in a nice, less ironic format, like, say:

    
    
      ((:domain "Web Development"
        (:subdomain "Back End"
         (:entry "Clack" ...)
         ...)
        (:subdomain "Front End"
          ...)
        ...)
       (:domain ...))

~~~
TeMPOraL
Lisp is magic :). Apparently things related to it also get enchanted.

EDIT: yes please for the easy format. Would gladly read it in Emacs,
navigating it with Paredit :).

------
crististm
"CLIM is interesting and was the last attempt to do any kind of research on
how user interfaces should be built, but is not a viable option in 2015."
-hmmm, what!?

Am I the only one left who thinks that gui widgets without a context (think
qt, gtk) lead to inconsistent and inferior interfaces? If anything, since it
is the _last_ attempt at GUI research, then we should continue from there. Or
not, if we think that the Unity/Metro are THE interfaces...

~~~
aidenn0
No, but a working GUI is better than a non-working GUI.

------
_pmf_
That's a really great resource. With the usual CL directories, it's completely
opaque which libraries are maintained and usable and which are out of data.

------
deepaksurti
For the GUI toolkits, don't know why CAPI was not listed? Yes it is LW
specific but it is a worthy choice. I prototyped an entire 3D game scene using
CAPI using the OpenGL 1 FFI they provided and it was very productive.

Of course CEPL then would have made it more fun, though I don't know if CEPL
works with LW CAPI.

------
pjmlp
I didn't find any information about commercial Common Lisp offerings like
LispWorks and Allegro Common Lisp.

~~~
mjn
Of the things discussed in this post, the main area where I would seriously
suggest a commercial Common Lisp system even for a newcomer, is if they are
interested in GUIs, either on the development or runtime side. I can recommend
LispWorks for those: it has a graphical IDE with graphical debugger, and a
very nice cross-platform GUI library with native look-and-feel (called CAPI).
I think compared to the open-source options, both of those will result in a
lot less pulling out of hair. CommonQt is passable, but CAPI is far less of a
hassle, especially for cross-platform deployment. The obvious downside is that
LispWorks costs money and is not open-source, so is probably most attractive
to people developing a commercial product. Also, in the case of using CAPI,
you commit to LispWorks as your implementation.

~~~
pjmlp
The biggest issue I find, although I lack the experience to really validate
it, is that those environments still provide an overall developer tooling
experience that is way better than the open source offerings.

An evolution of the Interlisp-D/Symbolics Genera systems.

------
WalterGR
I see Postmodern and Elephant mentioned frequently around the web - but not in
this list. Are they no good?

~~~
eudox
Postmodern is very good, it just slipped my mind as I haven't used it except
as a reference when implementing my own ORM.

But since Postmodern is Postgres-only, and is a very stable, maintained
library (and I doubt the author has plans for the future, having mostly moved
to JavaScript), it doesn't really fit into either 'future work' or
'consolidation'.

As for Elephant, IIRC it's no longer maintained, and I think the model it
presents -- just serialize CLOS objects, with whatever backend -- is the wrong
way to go about it. Most of the time, it's better to be aware that you're
using SQL, or a JSON file, or whatever your storage is.

------
sevengraff
I'd love to see this breakdown for more languages.

~~~
cgag
Here's one for haskell: [https://github.com/Gabriel439/post-
rfc/blob/master/sotu.md](https://github.com/Gabriel439/post-
rfc/blob/master/sotu.md)

------
pvaldes
"I’ve never done any graphics programming, so my knowledge of this area is
lacking"

cl-ply for example: draw and manage 3d polygon meshes.

------
ilurkedhere
This is great. I've been out of the Common Lisp world for several years and
stuff has really changed since.

CL-STMX is awesome!

------
doomrobo
This is unreadable on mobile

~~~
ParrotyError
It's unreadable on desktop too. What's with this new fashion?

~~~
sethhochberg
I don't mind the visual style, but the author seems to have forgotten that
some people use actual mice instead of inertial-scrolling trackpads.... using
a scroll wheel goes nowhere fast on this kind of page.

~~~
cuddlybacon
Even with an inertial-scrolling trackpad it doesn't scroll well.

~~~
_delirium
Works fine for me in Firefox on OSX, scrolling with a macbook trackpad. Maybe
it's using something that doesn't work well cross-platform?

------
2400
sorry, but it's impossible to read this site.

------
deltaprotocol
Wow, yes, dark theme huge letters, so simple, so nice, how most people get it
wrong? And then... white wall of light almost gets me blind.

