From: Peter Schuller
Subject: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <slrnc9qu5n.24cu.peter.schuller@scode-whitestar.mine.nu>
Hello,

I have long been meaning to get into Lisp (and in particular CLOS) for real, while previously
mostly reading documentation and not actually implementing anything.

I have been looking into the various verisons of Lisp out there, and I'm not sure what to pick.
Firstly I am primarily looking into free alternatives, with cmucl and clisp seeming to be the
major contenders. However googling around I am getting slightly confused as to the status of
things like networking, GUI tookits, web application framworks etc for Lisp.

So:

* In general I would be mostly looking for Lisps that leverage CLOS well, since CLOS is
  very interesting to me. I'm a fan of Smalltalk, and the way CLOS 'merges' OO and functional
  programming seems very powerful.
* Which Lisp should I choose if I wanted to do a lot of networking work? Is anything like this
  standardized, or is it specific to each implementation? Along with networking comes the need
  for threading (I am decidedly not a fan of application level context switching employed with
  various single-thread non-blocking techniques).
* Are there any existing web application frameworks for lisp/clisp/CLOS? (I'm thinking a small
  web tool will be my first training project...)
* What are the 'major' GUI toolkits that people tend to use? I have found several references
  to some libraries, but I haven't quite gotten a handle on the overall situation. Some projects
  seem dead, others seem ... "un-modern" if you will. I'm not all *that* interested in doing
  GUI programming, but still some overall perspective would be nice.

Thanks!

/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrieval: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org

From: ·········@random-state.net
Subject: Re: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <c7k1fj$9snnt$2@midnight.cs.hut.fi>
Peter Schuller <··············@infidyne.com> wrote:

> * In general I would be mostly looking for Lisps that leverage CLOS well,
> since CLOS is  very interesting to me. I'm a fan of Smalltalk, and the way
> CLOS 'merges' OO and functional programming seems very powerful.

All Common Lisps have CLOS. It's part of the standard, and actually pretty hard
to avoid, even though you may not realize you're using it... Asking which
implementations really leverage it doesn't really make much sense unless you're
asking about implementation details. Maybe you mean MOP? Most CLs provide MOP,
Clisp being the significant exception.

> * Which Lisp should I choose if I wanted to do a lot of networking work? Is
> anything like this standardized, or is it specific to each implementation?
> Along with networking comes the need for threading (I am decidedly not a fan of 
> application level context switching employed with various single-thread
> non-blocking techniques).

Not standardized, no, but the every single implementation out there seems to
support sockets, and the interfaces aren't wildly different (just different ;).

Native threads a slightly rarer, but still widely supported. Even though you
express distaste at context switching, you may want to have a look at things
done with the SERVE-EVENT style of context switching provided by CMUCL and SBCL.

Anyways, given the above two requirements your main options seem to be Allegro,
Lispworks, MCL, SBCL and OpenMCL. The first three are commercial with various
free trial schemes, and the latter two are open source.

You don't mention your OS. Allegro and Lispworks run Windows, Mac, and various
unixes. SBCL runs on various unixes and Mac. MCL and OpenMCL run on Mac.

Visit their respective sites and see what suits you best.

> * Are there any existing web application frameworks for lisp/clisp/CLOS? (I'm
> thinking a small web tool will be my first training project...)

Plenty. Here's a starting point: 

 http://www.cliki.net/

> * What are the 'major' GUI toolkits that people tend to use? I have found
> several references to some libraries, but I haven't quite gotten a handle on
> the overall situation. Some projects seem dead, others seem ... "un-modern" if
> you will. I'm not all *that* interested in doing GUI programming, but still
> some overall perspective would be nice.

My *impression* is that most people use implementation specific toolkits, or 
CLIM in its various incarnations.

On the open source side of things McCLIM (a portable CLIM implementation) seems
most popular. Kenny will tell you Cello is the future, though, but many will
disagree.

Of the non-implementation specific, non-CLIM toolkits I'd guess that Garnet sees
th most use. Lgtk may be worth looking into if you want GTK.

Cheers,

  -- Nikodemus
From: Peter Schuller
Subject: Re: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <slrnc9s5ip.25n7.peter.schuller@scode-whitestar.mine.nu>
>> * In general I would be mostly looking for Lisps that leverage CLOS well,
>> since CLOS is  very interesting to me. I'm a fan of Smalltalk, and the way
>> CLOS 'merges' OO and functional programming seems very powerful.
>
> All Common Lisps have CLOS. It's part of the standard, and actually pretty hard
> to avoid, even though you may not realize you're using it... Asking which
> implementations really leverage it doesn't really make much sense unless you're
> asking about implementation details. Maybe you mean MOP? Most CLs provide MOP,
> Clisp being the significant exception.

I suppose I mostly meant that things like networking API:s and other APIs beyond
the standard are using CLOS and with well-designed class hierarchies. Some languages
that are OO doesn't quite leverage that fact, with some of their API:s being
obvious C library wrappers rather than providing a suitable abstraction.

> Not standardized, no, but the every single implementation out there seems to
> support sockets, and the interfaces aren't wildly different (just different ;).
>
> Native threads a slightly rarer, but still widely supported. Even though you
> express distaste at context switching, you may want to have a look at things
> done with the SERVE-EVENT style of context switching provided by CMUCL and SBCL.

Will do.

> Anyways, given the above two requirements your main options seem to be Allegro,
> Lispworks, MCL, SBCL and OpenMCL. The first three are commercial with various
> free trial schemes, and the latter two are open source.
>
> You don't mention your OS. Allegro and Lispworks run Windows, Mac, and various
> unixes. SBCL runs on various unixes and Mac. MCL and OpenMCL run on Mac.

At the moment I'm mostly on FreeBSD and Linux. So anything that runs on *nix is
interesting for me.

Actually I had never heard of sbcl. I'm compiling it now...

>> * Are there any existing web application frameworks for lisp/clisp/CLOS? (I'm
>> thinking a small web tool will be my first training project...)
>
> Plenty. Here's a starting point: 
>
>  http://www.cliki.net/

*Great* site. Thanks for the pointer!

> My *impression* is that most people use implementation specific toolkits, or 
> CLIM in its various incarnations.
>
> On the open source side of things McCLIM (a portable CLIM implementation) seems
> most popular. Kenny will tell you Cello is the future, though, but many will
> disagree.

I previously found Garnet and Cello. Cello looked extremely interesting to me,
though I was unsure of whether the project was still active. I will have another
look at that along with the rest.

Thanks a lot for your input!

--
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrieval: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: Paolo Amoroso
Subject: Re: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <87wu3ld6nk.fsf@plato.moon.paoloamoroso.it>
Peter Schuller <··············@infidyne.com> writes:

> I previously found Garnet and Cello. Cello looked extremely interesting to me,
> though I was unsure of whether the project was still active. I will have another

Cello is possibly the most active Lisp project :)


Paolo
-- 
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Recommended Common Lisp standards (Google for info on each):
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- UFFI: Foreign Function Interface
From: Kenny Tilton
Subject: Cello notes [was Re: Lisp networking/threading/io/GUI/webbing]
Date: 
Message-ID: <FlMnc.62171$Nn4.14794706@twister.nyc.rr.com>
Paolo Amoroso wrote:
> Peter Schuller <··············@infidyne.com> writes:
> 
> 
>>I previously found Garnet and Cello. Cello looked extremely interesting to me,
>>though I was unsure of whether the project was still active. I will have another
> 
> 
> Cello is possibly the most active Lisp project :)

Rainer was right, I must step up the advertising. More spam! :)

Seriously, perhaps one could get the wrong impression from looking at 
the tilton-technology site, which has not been updated lately, tho I 
thought I redirected folks arriving there to:

     http://www.common-lisp.net/project/cello/

I am about to re-release PortaCello4, this time with UFFI in place since 
I just realized the ASDF-based build assumes an UFFI directory within 
the Cello source tree. A note in the build invites those with UFFI 
installed to lose that build step.

Also i got a report of an error loading ix-styled.lisp which I cannot 
yet recreate. I see no way this could be related to UFFI version 
differences, but in the spirit of reducing differences...

kenny
From: Frank A. Adrian
Subject: Re: Cello notes [was Re: Lisp networking/threading/io/GUI/webbing]
Date: 
Message-ID: <pan.2004.05.10.19.55.36.402478@ancar.org>
On Mon, 10 May 2004 14:29:57 +0000, Kenny Tilton wrote:

> I must step up the advertising. More spam! :)

And you even use the right ISP for that! :-)

faa
From: ·········@random-state.net
Subject: Re: Cello notes [was Re: Lisp networking/threading/io/GUI/webbing]
Date: 
Message-ID: <c7o4f0$9q754$1@midnight.cs.hut.fi>
Kenny Tilton <·······@nyc.rr.com> wrote:

> I am about to re-release PortaCello4, this time with UFFI in place since 
> I just realized the ASDF-based build assumes an UFFI directory within 
> the Cello source tree. A note in the build invites those with UFFI 
> installed to lose that build step.

You are aware that you can do the following, right?

 (defsytem :cello
   :depends-on (... :uffi ...)
   ...)

That way asdf-install will pull down UFFI if it's not already installed.

Cheers,

 -- Nikodemus
k
From: Kenny Tilton
Subject: Re: Cello notes [was Re: Lisp networking/threading/io/GUI/webbing]
Date: 
Message-ID: <8RRnc.62188$Nn4.14867118@twister.nyc.rr.com>
·········@random-state.net wrote:
> Kenny Tilton <·······@nyc.rr.com> wrote:
> 
> 
>>I am about to re-release PortaCello4, this time with UFFI in place since 
>>I just realized the ASDF-based build assumes an UFFI directory within 
>>the Cello source tree. A note in the build invites those with UFFI 
>>installed to lose that build step.
> 
> 
> You are aware that you can do the following, right?
> 
>  (defsytem :cello
>    :depends-on (... :uffi ...)
>    ...)
> 
> That way asdf-install will pull down UFFI if it's not already installed.

No this is news to me. I have not messed with any asdf-installing yet. I 
just downloaded it, and trying to load it into allegrocl/win32 led to:

    Error: Can't locate the module "SB-POSIX"

I think I'll duck getting up to speed on asdf-install and just ship UFFI 
with the PortaCello source. This release is still very much not suitable 
for general release, btw, so niceties such as asdf-installability are 
not a priority (even if I knew how to do it).

kenny

-- 
Home? http://tilton-technology.com
Cells? http://www.common-lisp.net/project/cells/
Cello? http://www.common-lisp.net/project/cello/
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Your Project Here! http://alu.cliki.net/Industry%20Application
From: ·········@random-state.net
Subject: Re: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <c7nhma$9qahr$1@midnight.cs.hut.fi>
Peter Schuller <··············@infidyne.com> wrote:

> I previously found Garnet and Cello. Cello looked extremely interesting to me,
> though I was unsure of whether the project was still active. I will have another
> look at that along with the rest.

McCLIM is very much worth looking into: the project is much more alive
then the website may lead you to believe, and even though several
screenshots seem to use courier ugly, it's not a requirement. ;)

Cheers,

 -- Nikodemus
From: =?iso-8859-15?q?Pierre-Fran=E7ois_Gomez?=
Subject: Re: Lisp networking/threading/io/GUI/webbing
Date: 
Message-ID: <87k6zky8a3.fsf@eithel.famille.local>
Peter Schuller <··············@infidyne.com> writes:

> I previously found Garnet and Cello. Cello looked extremely
> interesting to me, though I was unsure of whether the project was
> still active. I will have another look at that along with the rest.

Well, i don't know for sure about Cello but after having looked at those
previous articles...

<················@nyc.rr.com>
Subject: [ANNC] The Hills Are Alive With the Sound of Cellllloooooosss....

<················@nyc.rr.com>
Subject: PortaCello4: Faster, Lispier, and Noisier Than Ever

...i gather that there seems to be some kind of activity behind Cello,
yes ;-)

-- 
Pierre-Fran�ois Gomez                                 GnuPG: 0xA38AE42C