I'm a newbie here and don't know what Lisp/CLOS compiler to choose. Is there a fast, free, cross-platform (Linux/Solaris/Windows) implementation with cross-platform GUI library? By the word "free" I mean GPL/BSD/LGPL or a similar licensed software.
> I'm a newbie here and don't know what Lisp/CLOS compiler to choose. > Is there a fast, free, cross-platform (Linux/Solaris/Windows) > implementation > with cross-platform GUI library? By the word "free" I mean GPL/BSD/LGPL > or a > similar licensed software.
IMO your only choice is CMUCL (http://www.cons.org/cmucl). It's free and it has Linux and Solaris ports (but no Windows). You may also take a look at free CLISP - though not that fast as CMU CL, it has a Windows port.
"Eugene Zaikonnikov" <vik...@cit.org.by> writes: > IMO your only choice is CMUCL (http://www.cons.org/cmucl). It's free and it > has Linux and Solaris ports (but no Windows). > You may also take a look at free CLISP - though not that fast as CMU CL, it > has a Windows port.
CMU CL is a good choice. AKCL and GCL are also nice in some applications because they are fairly simple and portable and still manage to compile to native code.
Well, since no one has plugged CLISP (at least, with a URL) I will. I alternate back and forth between CLISP and CMUCL on Linux; I've found (informally) CMUCL to generally be faster, but CLISP to be "friendlier". I'd recommend starting with CLISP, then trying CMUCL once you're gotten the hang of Lisp. CLISP is, however, missing a few features (like INSPECT).
CLISP can be found at http://clisp.cons.org and it runs on Unix boxen and Windoze (and DOS, OS/2, and Amiga 500-4000).
As far as GUIs go, the situation is pretty grim. CLX will get you X server graphics, but it's pretty low level. There are several toolkits built on top of it, check http://www.lisp.org/table/tools.htm#windows . CLISP has bindings for gtk+, which is cross platform, but I'm not sure if the bindings are crossplatform or how robust the bindings are.
> "Eugene Zaikonnikov" <vik...@cit.org.by> writes: > > IMO your only choice is CMUCL (http://www.cons.org/cmucl). It's free and it > > has Linux and Solaris ports (but no Windows). > > You may also take a look at free CLISP - though not that fast as CMU CL, it > > has a Windows port.
> CMU CL is a good choice. AKCL and GCL are also nice in some > applications because they are fairly simple and portable and still > manage to compile to native code.
Eugene Vasin <kam...@altavista.net> writes: > I'm a newbie here and don't know what Lisp/CLOS compiler to choose.
I am too, and couldn't decide, so I just picked CLISP at random. Having had a good experience with it, I am now downloading CMUCL to see which I like better.
> Is there a fast, free, cross-platform (Linux/Solaris/Windows) > implementation with cross-platform GUI library? By the word "free" I > mean GPL/BSD/LGPL or a similar licensed software.
I don't know exactly how cross-platform this is (read: probably not much), but here's what I did in a recent project. I needed to create a generic "splash screen" application, to display warnings, messages, and upgrade notices. It needed to have clickable URLs, buttons to execute programs, and other such niceties.
I couldn't find any GUI toolkits that would allow me to build such a thing with low overhead, so I ended up using with-wish. Since a) this was going to be used by non-technical people, who shouldn't have to know TCL/Tk (ew), b) the layout needed to be created completely at runtime, and would have different elements each time, and c) the Tk widget set has some horrible inconsistencies which made a quick hack difficult, I ended up basically writing my own widget set on top of Tk and with-wish.
It's the first thing I've done in Lisp, so I don't know how good it is, but in my biased opinion, I think it's rather nice. It is somewhat specialized to my particular app at this point, but I think I should be able to break the GUI stuff out fairly easily. It's all based on CLOS, so creating a widget is as simple as doing (make-instance 'type-of-widget) and then passing a list of these to the creator function.
I'll post a URL in a few days and you can all discover my newbie status in greater detail.
-- vsync http://quadium.net/ - last updated Wed May 24 22:17:12 MDT 2000 Orjner.
> Eugene Vasin <kam...@altavista.net> writes: > I don't know exactly how cross-platform this is (read: probably not > much), but here's what I did in a recent project. I needed to create > a generic "splash screen" application, to display warnings, messages, > and upgrade notices. It needed to have clickable URLs, buttons to > execute programs, and other such niceties.
> I couldn't find any GUI toolkits that would allow me to build such a > thing with low overhead, so I ended up using with-wish. Since a) this > was going to be used by non-technical people, who shouldn't have to > know TCL/Tk (ew), b) the layout needed to be created completely at > runtime, and would have different elements each time, and c) the Tk > widget set has some horrible inconsistencies which made a quick hack > difficult, I ended up basically writing my own widget set on top of > TK and with-wish.
You might want to check out LispWorks (free personal edition) at
It runs nicely under Windows and Linux (for Linux, install either LessTif or Motif) and has a nice GUI API called CAPI that is easy to use. I have the example programs from my (rather old) Springer- Verlag Common LISP book on my web site, converted to use CAPI, if you are interested.
I liked LispWorks enough to buy the commercial version, which also supports the standard CLIM GUI API, and makes compact stand alone executables(nice!).
> It runs nicely under Windows and Linux (for Linux, install either > LessTif or Motif) and has a nice GUI API called CAPI that is easy > to use. I have the example programs from my (rather old) Springer- > Verlag Common LISP book on my web site, converted to use CAPI, if > you are interested.
Having wrestled some with CAPI, I have to say it is good for simple applications, but sadly too simple (or at least too badly documented) for more advanced use. I find writing my own interfaces hard, as the documentation is very restricted on anything but using the standard components in a relatively simple way.
Martin -- "Plus I remember being impressed with Ada because you could write an infinite loop without a faked up condition. The idea being that in Ada the typical infinite loop would normally be terminated by detonation." -Larry Wall
> Having wrestled some with CAPI, I have to say it is good for simple > applications, but sadly too simple (or at least too badly documented) > for more advanced use. I find writing my own interfaces hard, as the > documentation is very restricted on anything but using the standard > components in a relatively simple way.
And the docs are obvious out of date and the examples as one can find do not workt that way, and there is not documentation for the Interface Builder (which I guess relies) on CAPI and possibly on CLIM too.
> > Having wrestled some with CAPI, I have to say it is good for simple > > applications, but sadly too simple (or at least too badly documented) > > for more advanced use. I find writing my own interfaces hard, as the > > documentation is very restricted on anything but using the standard > > components in a relatively simple way.
> And the docs are obvious out of date and the examples as one can find > do not workt that way, and there is not documentation for the > Interface Builder (which I guess relies) on CAPI and possibly on CLIM > too.
Yeah, well, as I wrote, I wrestle with it to make it do anything like what I want. I looked at CLIM too, but either I did something fundamentally wrong, or Harlequin has really made an effort in making the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) that I won't use it, even though CLIM seems sensibly both designed and documented.
Martin -- "Plus I remember being impressed with Ada because you could write an infinite loop without a faked up condition. The idea being that in Ada the typical infinite loop would normally be terminated by detonation." -Larry Wall
On 30 May 2000 13:15:36 +0200, Martin Thornquist <mart...@ifi.uio.no> wrote:
>Having wrestled some with CAPI, I have to say it is good for simple >applications, but sadly too simple (or at least too badly documented) >for more advanced use. I find writing my own interfaces hard, as the >documentation is very restricted on anything but using the standard >components in a relatively simple way.
And what about CLIM? Are there any other alternatives for cross-platform GUI development? :-?
TIA
//----------------------------------------------- // Fernando Rodriguez Romero // // frr at mindless dot com //------------------------------------------------
Martin Thornquist <mart...@ifi.uio.no> writes: >[ Friedrich Dominicus ] >> Martin Thornquist <mart...@ifi.uio.no> writes:
>> > Having wrestled some with CAPI, I have to say it is good for simple >> > applications, but sadly too simple (or at least too badly documented) >> > for more advanced use. I find writing my own interfaces hard, as the >> > documentation is very restricted on anything but using the standard >> > components in a relatively simple way.
>> And the docs are obvious out of date and the examples as one can find >> do not workt that way, and there is not documentation for the >> Interface Builder (which I guess relies) on CAPI and possibly on CLIM >> too. >Yeah, well, as I wrote, I wrestle with it to make it do anything like >what I want. I looked at CLIM too, but either I did something >fundamentally wrong, or Harlequin has really made an effort in making >the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) >that I won't use it, even though CLIM seems sensibly both designed and >documented.
I once had Lispworks CLIM for pre-sales testing. Documentation, speed, examples were just jokes. I thought they made mistakes in delivery (especially since the rest of Lispworks with docs and examples is excellent), but no.
The commercial CLIM source is probably high in the list of software pieces that are market-damaged by doing nothing but the initial coding.
>>> Martin Thornquist <mart...@ifi.uio.no> writes:
>>> > Having wrestled some with CAPI, I have to say it is good for simple >>> > applications, but sadly too simple (or at least too badly documented) >>> > for more advanced use. I find writing my own interfaces hard, as the >>> > documentation is very restricted on anything but using the standard >>> > components in a relatively simple way.
>>> And the docs are obvious out of date and the examples as one can find >>> do not workt that way, and there is not documentation for the >>> Interface Builder (which I guess relies) on CAPI and possibly on CLIM >>> too.
>>Yeah, well, as I wrote, I wrestle with it to make it do anything like >>what I want. I looked at CLIM too, but either I did something >>fundamentally wrong, or Harlequin has really made an effort in making >>the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) >>that I won't use it, even though CLIM seems sensibly both designed and >>documented.
>I once had Lispworks CLIM for pre-sales testing. Documentation, >speed, examples were just jokes. I thought they made mistakes in >delivery (especially since the rest of Lispworks with docs and >examples is excellent), but no.
Hello Martin,
Is that to say that you don't agree with what has been said about CAPI (not powerful , not well documented)?
>The commercial CLIM source is probably high in the list of software >pieces that are market-damaged by doing nothing but the initial >coding. >Martin
-- Francis Leboutte f...@algo.be www.algo.be +32-(0)4.388.39.19
> >>> Martin Thornquist <mart...@ifi.uio.no> writes:
> >>> > Having wrestled some with CAPI, I have to say it is good for simple > >>> > applications, but sadly too simple (or at least too badly documented) > >>> > for more advanced use. I find writing my own interfaces hard, as the > >>> > documentation is very restricted on anything but using the standard > >>> > components in a relatively simple way.
> >>> And the docs are obvious out of date and the examples as one can find > >>> do not workt that way, and there is not documentation for the > >>> Interface Builder (which I guess relies) on CAPI and possibly on CLIM > >>> too.
> >>Yeah, well, as I wrote, I wrestle with it to make it do anything like > >>what I want. I looked at CLIM too, but either I did something > >>fundamentally wrong, or Harlequin has really made an effort in making > >>the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) > >>that I won't use it, even though CLIM seems sensibly both designed and > >>documented.
> >I once had Lispworks CLIM for pre-sales testing. Documentation, > >speed, examples were just jokes. I thought they made mistakes in > >delivery (especially since the rest of Lispworks with docs and > >examples is excellent), but no.
> Hello Martin,
> Is that to say that you don't agree with what has been said about CAPI (not > powerful , not well documented)?
#+gripe-on
I believe Martin ia right on all accounts. CLIM was never really supported by the vendors. The complexity of the beast is definitively a drawback, and Common Graphics and CAPI would both offer the lock-in of customers contrary to the standard CLIM.
As per CAPI, I toyed around with it some time ago and I found more rigid than lacking. (The famous problem: how do I set the font of a button *without* inserting it in a layout). Documentation was somewhat ok, but it could improve.
Cheers
-- Marco Antoniotti ===========================================
In article <xun7lcc5dw7....@levding.ifi.uio.no>, Martin Thornquist <mart...@ifi.uio.no> wrote:
I looked at CLIM too, but either I did something
> fundamentally wrong, or Harlequin has really made an effort in making > the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) > that I won't use it, even though CLIM seems sensibly both designed and > documented.
What types of experiences have users had with Franz's CLIM? Is it stable? Is there decent documentation? Good performance? What types of problems have people had?
I am thinking of buying the product, but my Franz rep tells me I need to sign a letter of intent to purchase the product before getting a 30 day trial of it!! In this case, I will wait to ACL 6 and see if their Java link will provide an adequate GUI.
Assuming a seemless Lisp<->Java product, would anybody wish to speculate the advantages that CLIM would provide over building GUIs using Lisp with a Java GUI?
>>>> Martin Thornquist <mart...@ifi.uio.no> writes:
>>>> > Having wrestled some with CAPI, I have to say it is good for simple >>>> > applications, but sadly too simple (or at least too badly documented) >>>> > for more advanced use. I find writing my own interfaces hard, as the >>>> > documentation is very restricted on anything but using the standard >>>> > components in a relatively simple way.
>>>> And the docs are obvious out of date and the examples as one can find >>>> do not workt that way, and there is not documentation for the >>>> Interface Builder (which I guess relies) on CAPI and possibly on CLIM >>>> too.
>>>Yeah, well, as I wrote, I wrestle with it to make it do anything like >>>what I want. I looked at CLIM too, but either I did something >>>fundamentally wrong, or Harlequin has really made an effort in making >>>the CLIM objects so visually ugly (I'm working with LispWorks 4.1.0) >>>that I won't use it, even though CLIM seems sensibly both designed and >>>documented.
>>I once had Lispworks CLIM for pre-sales testing. Documentation, >>speed, examples were just jokes. I thought they made mistakes in >>delivery (especially since the rest of Lispworks with docs and >>examples is excellent), but no. >Hello Martin,
Hi, Francis
>Is that to say that you don't agree with what has been said about CAPI (not >powerful , not well documented)?
I never used CAPI. When I bought Lispworks, I was interestedt, but the manual showed enough of its primitiveness and I also feared portability problems.
I make it short, the experiences together with the narrowed feature set and bad portability of CLIO/CLUE caused me never to use Lisp for GUI programs. I wish I had been stubborn enough to just use Garnet, but at the time I wanted a CLOS-based solution for some reason.
Martin
P.S. Castafiore is going back to Belgium (I moved to a smaller house) to a Lisper you might know (he said he got a Symbolic mouse from you). -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer <craca...@bik-gmbh.de> http://www.bik-gmbh.de/~cracauer/ FreeBSD - where you want to go. Today. http://www.freebsd.org/
dline...@my-deja.com writes: > Assuming a seemless Lisp<->Java product, would anybody wish to speculate > the advantages that CLIM would provide over building GUIs using Lisp > with a Java GUI?
drool...
-- vsync http://quadium.net/ - last updated Wed May 31 18:42:35 MDT 2000 Orjner.
vsync <vs...@quadium.net> writes: > It's the first thing I've done in Lisp, so I don't know how good it > is, but in my biased opinion, I think it's rather nice. It is > somewhat specialized to my particular app at this point, but I think I > should be able to break the GUI stuff out fairly easily. It's all > based on CLOS, so creating a widget is as simple as doing > (make-instance 'type-of-widget) and then passing a list of these to > the creator function.
> I'll post a URL in a few days and you can all discover my newbie > status in greater detail.
I know that a couple sections of code need a rewrite; there's a bit of redundancy in the PACK code, etc. Anyway, I would appreciate a critique both of the program itself and of the widget implementation. It's my first Lisp program, though, so please don't be _too_ harsh... =)
-- vsync http://quadium.net/ - last updated Wed May 31 18:42:35 MDT 2000 Orjner.
Francis Leboutte wrote in message ... >craca...@counter.bik-gmbh.de (Martin Cracauer) wrote:
>>Martin Thornquist <mart...@ifi.uio.no> writes: >>I once had Lispworks CLIM for pre-sales testing. Documentation, >>speed, examples were just jokes. I thought they made mistakes in >>delivery (especially since the rest of Lispworks with docs and >>examples is excellent), but no.
>Hello Martin,
>Is that to say that you don't agree with what has been said about CAPI (not >powerful , not well documented)?
I agree with both. I also played a little with the pre-sales CLIM and found it lacking. The CAPI is particularly frustrating because you have so little (apparent) control, and it's also difficult to create your own widgets. I think Marco had a rant on this topic several months ago. I don't know if he ever got it resolved.
There's certainly power there, and I believe flexibility, but the documentation is completely lacking. I always wondered how the LW CAPI differed from the system they designed for Dylan, which seems to have been routinely praised. I get this feeling that there's a lot of potential in the CAPI, but the reality is that it's seems to be lacking in many areas.
* dline...@my-deja.com | I am thinking of buying the product, but my Franz rep tells me I | need to sign a letter of intent to purchase the product before | getting a 30 day trial of it!!
This is scary stuff to the legally naïve, but a letter of intent is not a contract. You are under no obligation actually to purchase anything if you don't want to after the trial period is over, but you have to notify the other party of a change of intent. This is a means of maintaining control over who receives trial versions and ensures that they either return or purchase it within a reasonable time.
There are lots of unnecessary legal papers to sign or deal with in most transactions, but they become necessary in a dispute. If you haven't arranged for them beforehand, you're basically hosed. In an over-litigious society like the American, this probably makes a lot more people than necessary feel like they are suspected of cheating, or at least thought capable of cheating, which by itself causes some to cheat in anger or spite, which sort of proves the point that the paperwork is necessary to protect oneself from such people...
#:Erik -- If this is not what you expected, please alter your expectations.
"Will Hartung" <vft...@home.com> writes: > Francis Leboutte wrote in message ... > >craca...@counter.bik-gmbh.de (Martin Cracauer) wrote:
> >>Martin Thornquist <mart...@ifi.uio.no> writes: > >>I once had Lispworks CLIM for pre-sales testing. Documentation, > >>speed, examples were just jokes. I thought they made mistakes in > >>delivery (especially since the rest of Lispworks with docs and > >>examples is excellent), but no.
> >Hello Martin,
> >Is that to say that you don't agree with what has been said about CAPI (not > >powerful , not well documented)?
> I agree with both. I also played a little with the pre-sales CLIM and found > it lacking. The CAPI is particularly frustrating because you have so little > (apparent) control, and it's also difficult to create your own widgets. I > think Marco had a rant on this topic several months ago. I don't know if he > ever got it resolved.
In all fairness, I must say that I do not know whether the people at Xanalys (ex-Harlequin) fixed it. The (kludgy) work around for my problem (setting a button dimensions) was to wrap a layout around every little object you created.
> There's certainly power there, and I believe flexibility, but the > documentation is completely lacking. I always wondered how the LW CAPI > differed from the system they designed for Dylan, which seems to have been > routinely praised. I get this feeling that there's a lot of potential in the > CAPI, but the reality is that it's seems to be lacking in many > areas.
I hold an extreme position in this respect. I believe you need a truly cross-platform GUI development system.
Cheers
-- Marco Antoniotti ===========================================
Since SPLASH is your baby (and since everybody has write access to CLiki :) feel free to correct what I have written. Likewise, I encourage other authors of free Lisp software to contribute information about their projects to this new community resource.
Concerning your request for compatibility patches for increasing the portability of SPLASH, you may check the subprocess management routines of cllib, which is part of CLOCC (Common Lisp Open Code Collection):
I've spent the last decade wasting my time involved in Windows development using MFC.
CAPI, with all of its faults, is wildly more productive.
The flexibility of CAPI seems to be underdocumented - it looked too limited when I first read the documentation. As I dig into it (with some frustrations) I find that it can do everything I've asked for so far.
I spent a bit of time trying to decide whether to use Tcl/TK or CAPI or try to attach TK to Xanalys lisp. As an experiment, I transliterated a lump of Tcl/TK into CAPI and found that the models weren't that far apart. I ended up just using CAPI.
CAPI's main problem is OOP-disease: documentation is sparse and abstract, you can never nail an answer down without experimention. This, unfortunately, is par for the course - I've had this same frustration with Smalltalk and have had it in spades with Java (and those bloody JavaDocs).
As far as portability goes, it is sad but true, that when I think of a product that I want to sell/give to someone else, the only "portable" way to do it is to develop it for Windows. From this point of view, portability matters only if you choose to develop on a non-Windows machine, then port the result over to Windows before selling it. [I wish it weren't true]. CAPI is well-suited for that.
Paul Tarvydas <ptarvy...@tscontrols.com> writes: >I'm beginning to like CAPI. >I've spent the last decade wasting my time involved in Windows development using >MFC. >CAPI, with all of its faults, is wildly more productive.
And what will you do if the vendors gives up the product, develops the product in a direction you don't like (i.e. it becomes unstable), if the vendors dies and noone picks up the product, if the vendor simply raises the price - maybe even for redistribution of runtimes - or if you need to support a platform the vendor does not support?
Setting yourself on a single-vendor API with only one implementation, with no source you may redistribute in an emergency case, is suicide, time-invenstment wise. I've been programming for long enough to know this and who the specific vendor in question is couldn't matter less.
I have no doubt it's more productive than MFC, though...
* Martin Cracauer wrote: > Setting yourself on a single-vendor API with only one implementation, > with no source you may redistribute in an emergency case, is suicide, > time-invenstment wise. I've been programming for long enough to know > this and who the specific vendor in question is couldn't matter less. > I have no doubt it's more productive than MFC, though...
* Martin Cracauer | And what will you do if the vendors gives up the product, develops the | product in a direction you don't like (i.e. it becomes unstable), if | the vendors dies and noone picks up the product, if the vendor simply | raises the price - maybe even for redistribution of runtimes - or if | you need to support a platform the vendor does not support?
This has a very simple and obvious answer: You do what you always do when "the world" dissolves underneath a programmer: You reimplement your software with the best available tools and people at that time.
It's a strange illusion that just because it's in some "free" form, it's going to stay useful forever. Operating systems come and go, languages change and their compilers and development tools with them -- including such fickle things as the support libraries that change in subtly incompatible ways all the time. And let's not forget the people who can actually make use of the specific combination of all of these things -- people have two nasty habits: (1) they forget, and (2) they die. All of this happens all of the time -- regardless of whether you have source code to something. Even the hardware on which the last system in the world ran will deteriorate and die.
What does using stuff that follows standard buy you? _More_ time, not eternity, and not even necessarily _much_ time, either. If the standard is _excellent_ and it's universally adopted by someone who is not so cavalier about standards as Microsoft, it may buy you a lot of time, like 15 years. If it's a bad standard, it will also be improved.
Reimplementing is part of the maintenance costs of a project. You're a damn fool if you don't calculate it into the price of something that is going to be in use for a long time. It's very much like longevity in data storage: If you don't plan to have someone copy data off of old media onto new media to keep it alive, possibly converting it in the process, it _will_ wither and die.
| Setting yourself on a single-vendor API with only one implementation, | with no source you may redistribute in an emergency case, is suicide, | time-invenstment wise. I've been programming for long enough to know | this and who the specific vendor in question is couldn't matter less.
Then you should also admit that there is _no_ cure. Just about everything is suicide, time-investment-wise: Everything dies in the end and under more miserable conditions the longer it has been kept alive artificially, I might add. The question is how much time you lose or fail to lose (but that is not "gain") with each move you make. There is nothing to indicate that having source code access buys you any more time than not having source code access does, in the general case. Specific cases may of course be cited the same way alternative medicine cites its successes.
#:Erik -- If this is not what you expected, please alter your expectations.