From: Software Scavenger
Subject: CLIM vs CAPI
Date: 
Message-ID: <a6789134.0111181707.5ec75e07@posting.google.com>
Assuming a particular Lispworks application has absolutely no need for
any kind of portability; do the advantages of CLIM outweigh whatever
problems it might have, such that most such Lispworks applications
would be better off using CLIM than just using CAPI?

From: Software Scavenger
Subject: Re: CLIM vs CAPI
Date: 
Message-ID: <a6789134.0111200457.435ec428@posting.google.com>
To clarify my question:  For the kinds of work CAPI is good for, is
there any point in using CLIM, other than to be portable away from
Lispworks?  I haven't actually looked at CLIM yet and just want to
know whether it's worth spending the time to learn how to use it, if I
just want to do the kinds of things CAPI is good for, and don't want
to port anything away from Lispworks.
From: Christopher Stacy
Subject: Re: CLIM vs CAPI
Date: 
Message-ID: <ulmh1eg0x.fsf@spacy.Boston.MA.US>
>>>>> On 20 Nov 2001 04:57:11 -0800, Software Scavenger ("Software") writes:
 Software> To clarify my question:  For the kinds of work CAPI is good for, is
 Software> there any point in using CLIM, other than to be portable away from
 Software> Lispworks?  I haven't actually looked at CLIM yet and just want to
 Software> know whether it's worth spending the time to learn how to use it, if I
 Software> just want to do the kinds of things CAPI is good for, and don't want
 Software> to port anything away from Lispworks.

CLIM is an entirely different way of thinking about your GUI, 
while CAPI is a toolkit similar to the GUI toolkits available 
in other languages.   That is, CAPI has windows and widgets
and callbacks and so forth.  By contrast, CLIM is about connecting
the user interface to the rest of your program in a way that is
entirely different from that traditional GUI architecture.  
Portability is another big consideration, but Lispworks 
and CAPI is available on both Unix and Windows.
From: Bradford W. Miller
Subject: Re: CLIM vs CAPI
Date: 
Message-ID: <B8202CBC.B6D4%Bradford.W.Miller@motorola.com>
On 11/20/01 7:19 AM, in article �y�RTICLE], "Christopher Stacy"
<······@spacy.Boston.MA.US> wrote:

>>>>>> On 20 Nov 2001 04:57:11 -0800, Software Scavenger ("Software") writes:
> Software> To clarify my question:  For the kinds of work CAPI is good for, is
> Software> there any point in using CLIM, other than to be portable away from
> Software> Lispworks?  I haven't actually looked at CLIM yet and just want to
> Software> know whether it's worth spending the time to learn how to use it, if
> I
> Software> just want to do the kinds of things CAPI is good for, and don't want
> Software> to port anything away from Lispworks.
> 
> CLIM is an entirely different way of thinking about your GUI,
> while CAPI is a toolkit similar to the GUI toolkits available
> in other languages.   That is, CAPI has windows and widgets
> and callbacks and so forth.  By contrast, CLIM is about connecting
> the user interface to the rest of your program in a way that is
> entirely different from that traditional GUI architecture.
> Portability is another big consideration, but Lispworks
> and CAPI is available on both Unix and Windows.

Or to put it slightly differently, CAPI is about programming the GUI, CLIM
is about creating the user experience, and letting it figure out (most of)
the GUI itself. (Which it does, taking on the appropriate paradigms of the
particular platform it is situated in).

Personally, I prefer worrying about user experience rather than widgets. The
main drawback of CLIM is they have a fairly limited notion of user
experience, but for most things you are likely to do using traditional GUI
paradigms, it's about the right level to think at. If you want to move
beyond traditional GUI paradigms, CLIM will have a tendency to get in the
way. (For instance, if you want to pay attention to how someone waves their
mouse pointer around various areas of the screen to mean different things,
rather than the usual click to select, drag, menu choice, etc. CLIM's is not
the most tractable paradigm to adopt). CLIM also has a fairly limited notion
of what constitutes an application, being closer to the Mac style event loop
type of programming than some arbitrary novel scheme you might try to
construct. But, if your program's UE is basically to have a single
application front and center with various displays, actions, etc. triggered
on user action, then you could do much worse and spend much more time than
you would using CLIM.

Best,
From: Kenny Tilton
Subject: OK, CLIM it isn't...
Date: 
Message-ID: <3BFAE46F.7FF5F5BE@nyc.rr.com>
"Bradford W. Miller" wrote:
> 
> Or to put it slightly differently, CAPI is about programming the GUI, CLIM
> is about creating the user experience, and letting it figure out (most of)
> the GUI itself. 

Is that where the presentation types come in? I looked at all the doc
for presentation types, but it neglected to mention what the hell they
do (in terms any more specific than you used). So much for
documentation. :)

Anyway, I am sure presentation types are cool, but higher level or
perhaps orthogonal with the garnet-like framework I have. As for the
lower-level layers of CLIM, what I am hearing is that they are not
perfect nor are they standard across implementations.

I think I need to start from scratch and try to define a virtual Lisp
environment with bitmapped graphics and event loop and away we go.
Native platform widgets (suitably wrapped) should Just Work.

When I started the port from MCL to ACL for a while I made an effort to
conditionalize so the code base would work under MCL or ACL. At that
time I had a package called OSGraphics, which would be better named
PlatformGraphics since, eg, under win32 I might take win32 or GTK or
CrystalSpace as my imaging/windowing platform. I also had a layer of
abstraction for Framework widgets, meaning thinly wrapped widgets
supplied by some higher-level framework, in my case Common Graphics.

Then we got busy and I got sloppy, so the MCL stuff is all gone and CG
and win32 stuff are mixed all over the place.

I think my first distro will not agonize over being a new CL GUI, the
main story will be "Garnet-like GUI constraints are back (as Semaphors),
rested and ready (and supported)". If no one likes Semaphors I can save
myself a lot of trouble, if folks love them Thomas can do the GTK port.
And the doc. :)

kenny
clinisys
From: Eric Moss
Subject: Re: CLIM vs CAPI
Date: 
Message-ID: <3BFAEB13.1A45A371@alltel.net>
Software Scavenger wrote:
> 
> To clarify my question:  For the kinds of work CAPI is good for, is
> there any point in using CLIM, other than to be portable away from
> Lispworks?  I haven't actually looked at CLIM yet and just want to
> know whether it's worth spending the time to learn how to use it, if I
> just want to do the kinds of things CAPI is good for, and don't want
> to port anything away from Lispworks.

Well, it sounds like you have either answered your own question, or are
asking, "Is CLIM a better CAPI?".  If you simply want to do things that
CAPI is good for, and nothing else, then I would think that CAPI is the
way to go.

On the other hand... it would seem that CLIM is a
much-more-completely-thought-out infrastructure, and would let you
consider interfaces you would never consider otherwise.  If so, the
learning curve for CLIM is worth it.  Besides, maybe you could get many
of your CAPI interfaces to pop out "trivially" with CLIM.

Unless others here can give you a definitive answer, I would read the
CLIM intro and browse the docs/examples. You could probably make a
decision in an evening or two.

Have fun,

Eric
-- 
US Supreme Court hearing 00-836
GEORGE W. BUSH, Petitioner, v. PALM BEACH COUNTY CANVASSING BOARD

Justice (Scalia?) to Mr. Klock (representing Katherine Harris):

20 and therefore, I guess, whether we win, whether your side,
21 the side you're supporting wins or loses, it doesn't
22 change that, and I guess that's moot, but my question is,