

Quicklisp public beta - sedachv
http://www.quicklisp.org/beta/

======
ced
This is awesome. Hopefully it will take off. Here's a list of recommended
libraries:

<http://www.cliki.net/Current%20recommended%20libraries>

Maybe they should be highlighted in the Quicklisp package list?

I'll mention in passing another solution I've found to the dearth of libraries
in CL: run CPython via pipes. Then I can call any Python library I want. I
used it for GUIs, downloading stuff from the web, and for doing plots with
Scipy/matplotlib. It works great, though obviously has some "bandwidth"
limitations.

~~~
zachbeane
Everything on that page is in Quicklisp except Maxima.

edit: It's also not a great list - I'd add a few dozen things to it. I'd like
to have a nice way to rate & review projects in Quicklisp, but that's
something for the future.

~~~
ced
Please write/update such a list if you can. For most people, choosing a
library is as big a headache as installing it.

~~~
redline6561
That's pretty accurate. I'm still a dumb noob about programming generally but
I've been using and lurking in #lisp and the "community at large" for ~2 years
now.

The best thing to do for new users is probably to show up on #lisp and solicit
recommended libraries for X, I'm afraid. Or google and read extensively,
selecting for newer information where possible.

------
grandalf
Can anyone recommend a good way to start doing something web oriented in lisp?
(and quicklisp)

~~~
redline6561
Well, the two prominent web frameworks are Weblocks and UCW but their
documentation is...wanting. I'm working on a Weblocks tutorial right now but I
gave a bit of a survey of the CL web landscape recently:
<http://redlinernotes.com/blog/?p=1232>

Damn shameless self promoters. Anyway, seeing as UCW and Weblocks aren't well
documented a lot of people just grab Postmodern or CL-SQL for DB stuff (there
are some NoSQL solutions around if that's your fancy), then CL-Who or HTML-
Template and Hunchentoot (web server) for the rest.

All the above libraries are easily installable via quicklisp. God bless Xach.
And Amazon AWS. :)

~~~
sedachv
I would also recommend not bothering with the frameworks. Get Hunchentoot and
Postmodern and you're ready to go. I've even stopped bothering with CL-WHO, I
now use CL-INTERPOL for HTML templating (cl-closure-template seems to do fancy
stuff, too). If you're lazy like me use BKNR-datastore instead of Postmodern
and you won't even have to bother configuring a database. Other stuff you'll
probably need: cl-fad (file/directory manipulation), cl-ppcre (regular
expressions), ironclad (hash digests), cl-smtp (sending the huge cash-money
invoices to your eager users). Eventually you will become too lazy to write
JavaScript by hand, in that case grab Parenscript. All of this is available
via quicklisp, it really makes things easy.

~~~
redline6561
BKNR-datastore seems really nice but I haven't gotten a chance to play with it
yet. Do you know if it supports concurrent writes yet? I know it didn't circa
2008 or so...

~~~
sedachv
Yeah, there's a global lock for transactions. I'm not sure it's such a big
loss considering you still need a lock on the log file. Adding MVCC or per-
object locks would mean rewriting most of BKNR, changing major parts of how it
works, and a hugely more complicated implementation. And those things have a
lot of their own overhead too. OTOH then you can just throw the objects into
an mmapped file, put a REPL on a socket and bingo you have a multi-user
networked ACID object database. But then you might as well just use Postgresql
and Postmodern.

I don't know if you've ever installed the full Kloudshare, but Will wrote the
first Hold backed by bknr.datastore, so you've probably used it.

~~~
redline6561
> "But then you might as well just use Postrgresql and Postmodern."

Yeah, that's what I figured. I doubt for anything I'll work on soon that the
lock will be an issue. Just curious. :)

I didn't realize the hold used to be backed by bknr. That's cool. Thanks for
the heads up.

------
mahmud
The future, it's here.

<http://twitter.com/bhyde/status/26945887373>

------
Vivtek
Oh. Oh my. This seems to be CPAN for LISP. Is that an accurate perception?

~~~
zachbeane
Quicklisp does some stuff that CPAN does (like make a bunch of libraries
fairly easy to install), but CPAN does a ton of things that Quicklisp doesn't
do, and that might be difficult to do for Lisp libraries (e.g. because there
isn't a POD equivalent in the CL world).

~~~
Vivtek
Well, yes, I understood that immediately - but the basic functionality of CPAN
for me, the reason I stuck to Perl in the first place and stayed there, was
the ability to search CPAN, find a module that does more or less what I want,
and load it, no worries. That seems to do this for LISP.

Now, if you wanted to provide all the _rest_ of CPAN for LISP, that would be
really cool. Automated testing across platforms, some kind of standardized
documentation of projects so you know what each one is (even without POD,
surely something could be done - doesn't LISP at least have docstrings or
something?), a search facility, etc.

That would be fun. If you want a volunteer who's not guaranteed to finish real
soon but who has a clear vision of what could be done, feel free to email.

------
hvs
I played around with this briefly this weekend in a clean SBCL install on my
linux box and it worked beautifully. Very nice work Zach.

------
icey
What is it? A package manager? If so, how does it differ from ASDF?

~~~
zachbeane
It's approximately a package manager, in the non-Lisp sense of the word
"package". If you carry out that analogy a little further, ASDF is like "make"
and Quicklisp is like "apt-get".

~~~
kunley
Really cool.

I go back to CL each year. Last couple of times I checked I wasn't able to get
linedit working under my sbcl via a chain of simple asdf-installs, so CL went
into my private oblivion.

Great idea with some QA done to the released programs !! CL always seemed like
the people involved hated the phrase "release management". Now there's some
light at the end of the tunnel..

Thanks for your work !

~~~
zachbeane
I just started using linedit this week, because all I have to do to set it up
is:

    
    
        (ql:quickload "linedit")
        (linedit:install-repl)
    

Before that, it seemed like too much trouble.

~~~
Xurinos
I got it to work via asdf-install, but I had to cheat a little to do it: I
removed linedit's version check that was not present in the dependent package
(I think osicat).

------
lelele
Nice work. Kudos!

As much as I appreciate Common Lisp, I'm always puzzled at how a language
reputedly targeting AI problems still lacks an "intelligent" package manager
the kind Perl has always had. To me, that says a lot about the failure of AI.

EDIT: Let's hope the time has comed.

~~~
amcl
Very nice work indeed Zach!

I think it probably says more about the motivation, need, and the size of the
respective communities. CPAN has been a great success and example, but I don't
think that has had anything to do with AI.

~~~
lelele
I should have explained further: when I say "that says a lot about the failure
of AI", I mean that from a language whose target is AI, you would expect some
kick-ass solutions to common issues. Common Lisp is good to solve hard
problems, but then - after more than 50 years - you have to fight to install a
library, when "lesser" languages make it a breeze. With direct words: I think
AI failed because it tackled hard problems instead of everyday ones.

Obligatory Xkcd quote: <http://xkcd.com/224/>

------
rbanffy
AskHN: Who here remembers QuickBASIC?

<http://en.wikipedia.org/wiki/QuickBASIC>

~~~
drv
Maybe next someone will write a competing implementation and call it
Turbolisp...

~~~
rbanffy
Or VisualLisp?

Or would it be VisualLISP?

Oh... Taken.
[http://usa.autodesk.com/adsk/servlet/index?siteID=123112&...](http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=770237)

------
djm
Looks like PLaneT for CL. Good stuff.

