

Sorry, Lisp. I tried.  - nickb
http://www.ketralnis.com/roller/dking/entry/20070609

======
Zak
_Without database access, sockets, threads, POSIX, or a portable FFI (which I
could at least use to write many of those features), my programs can't talk to
the outside world, and that makes them basically useless._

Is this a troll, or did the author simply not do very much research?

CLSQL can talk to MySQL, PostgreSQL, SQLite, Oracle and (through ODBC) MS SQL.
What database does dking want to access?

I'm pretty sure all the major Lisps provide a socket interface. Usocket
standardizes it.

I think the commercial Lisps provide threads. SBCL and CMUCL have threads on
certain platforms, especially x86 Linux.

POSIX is available through the FFI, but some Lisps provide their own POSIX
package. I think there's some work being done on a more portable library.

CFFI and UFFI are both good FFIs portable between all the major Lisps.

Everything the author asks for is easy to find. Many of these libraries are
the first hit for a reasonable google search (e.g. "lisp sql"). I've had
issues finding good Lisp libraries on occasion, but the situation is much
better than the author suggests.

~~~
ketralnis
> Is this a troll, or did the author simply not do very much research?

It's not a troll, and I did do some research. I wrote this a few months ago
(this is its second round on news.yc, and I'd make some addenda to it if it
weren't actively linked to at the moment). My biggest problem was that I was
insisting on portability across implementations, because that's something that
I got for free in languages like Ruby that I didn't want to give up. Reading
around, it looks like most Lisp users didn't have such a requirement, and mine
was largely engineered because of bias given to me by the implementations of
the other languages I was using.

When it comes down to it, I needed an implementation with those things that
would work with FreeBSD, OS X, and Linux, and maybe sometimes Windows, and
support threads, WebDAV, and some other stuff. While I still can't find a
WebDAV client library, it looks like my requirements for portability across
implementations may have been unfounded.

Since then I've gotten into Erlang, but if I were to try Lisp again it would
probably be a Scheme after reading around.

~~~
Zak
Portability between implementations is a bit of a red herring (as you seem to
have discovered); most libraries you'd actually want to use run on most
implementations you'd actually want to use. Ruby and Python don't give you
this either, but they do give you a standard implementation. I suspect a lot
of Ruby code you might want to run doesn't work with JRuby or IronRuby.

Portability between operating systems is a more serious problem. I think ECL
is the only free implementation that does this well, and most libraries don't
seem to be tested on it.

~~~
michaelneale
>I suspect a lot of Ruby code you might want to run doesn't work with JRuby or
IronRuby.

Not likely. Rails runs fine on jruby at least, and it does every dirty trick
under the sun.

------
vikram
I had similar issues. But I find that the simplest way to get around them is
to use VMWare or Parallels, depending on what your emacs is running on. Run
Lisp inside the OS of your choice and connect to it using Slime.

If you don't use Slime+Emacs+Tramp, I don't think it's worth getting into CL
at all. Slime absolutely rocks my world. I have 8 SBCL instances running on
multiple machines (virtual and dedicated) on my network and the internet, and
I don't have problems doing any lisp development.

My advice would be to pick the OS/Lisp implementation based on what you think
you might need.

~~~
mov
One of these SBCL instances is for telltrains dot com? :-)

~~~
vikram
2 actually, running behind pound. I had a few more running on a couple of
virtual slices on slicehost. But I recently got rid of them as SBCL has some
issues with Xen.

~~~
mov
wow! it's good! I need to know more about your impressions with SBCL to web
development, I'm on it too.

------
mov
Please, check <http://cliki.net>, <http://common-lisp.net> and <http://cl-
user.net>. There are packages to all the things commented.

About SQL, for example, I'm using Submarine (ORM) with Postmodern and it's
running like a charm. For Web development, there are Hunchentoot, AllegroServe
and interesting frameworks like UCW or Weblocks (each one I'm using right
now).

Maybe the guy didn't tried enough, more 5 min. at google would be enough ;-)

------
brlewis
Sounds like CL wasn't right for his particular requirements. He would have
been better off with a Scheme implementation on the JVM -- Kawa or SISC.

~~~
hhm
Maybe Lush? <http://lush.sourceforge.net/lush-manual/f0288067.html>

Rather than a Lisp that runs on the JVM, I'd be very interested in knowing a
Lisp that somehow runs as Python bytecode. Does such a monster exist?

~~~
danohuiginn
Googling turns up a few lisp-in-python implementations: <a
href="<http://www.biostat.wisc.edu/~annis/creations/PyLisp/>">Pylisp</a>, <a
href="<http://www.xs4all.nl/~yduppen/site/psyche.html>">psyche</a> and <a
href="<http://hkn.eecs.berkeley.edu/~dyoo/python/pyscheme/>">pyscheme</a> (the
last two being scheme, obviously). Haven't tried using them; maybe I will the
next time I feel like frittering away a couple of hours.

~~~
danohuiginn
clearly html links are the wrong way to go around here ;)

------
henning
Lisp the Platonic ideal is powerful and important. Particular dialects like
Common Lisp and particular implementations are akward because the ANSI
standard is intentionally silent about common network, I/O, etc. stuff.

Old news.

------
ketralnis
Submitter: thanks for submitting the (original) ketralnis.com article. The
same article was submitted under my experimental domain wrotit.com to reddit,
and I'd much prefer to reduce the incoming links to that domain until I've
made final decisions about the link and URL structure over there :)

------
awt
Check out <http://programming.nu>. It has pretty much everything that this guy
says he was missing.

------
sohail
This guy is an idiot.

