Celtk vs Cello



I am responding to a private email asking about Celtk vs Cello since I am answering that a lot lately:

I've been looking at your site and I'm a bit confused over which
of your GUI toolkits are to be prefered.
While I found LTK surprisingly simple to get going and use, I guess
this doesn't mean Celtk will be as simple.

I think both packages aim for and achieve very easy control of Tk. Celtk's mechanism probably requires less work than LTk because of automatic packing and communication with Tk. I believe someone commented on Cells-Gtk favorably after a small demo done to assess it, saying one could hardly see that Gtk was being used from the source (because slot observers do all the work of talking to the host gui).

The Celtk maintainer, however, is a PITA cowboy, whereas Mr. Herth is professional and works hard to make LTk easy to install and live with.



Then there is Cello which I've yet to try out...

Which of these two projects are your real baby?

It is not clear yet. More below.

Which of these do you use yourself?

Cello. My GUIs are much more dynamic and responsive than the average GUI. Fixed widgets would never do. Unpacking/repacking do not cut it.

Background: Cello /is/ Celtk. It pulls in a subset of Celtk: Togl, Menus, and now movie. My entire window is a single Togl widget, inside of which I create "Cello" widgets from scratch (but only as I need them and I have not needed many so there ain't much to see).

I had intended to blend Tk widgets with a big Togl pane for the superdynamic stuff, but what I saw was that I was then working with two GUI frameworks: pure TK and my homegrown OpenGL/Togl framework. I also knew from past experience that I could roll new widgets incredibly quickly, so Tk was not really buying me anything.

This decision may yet flip back to having a relatively stable area of the window comprised of Tk widgets with just a large Togl for the fun stuff. The recent Tile stuff has me thinking how nice it would be to have a native Aqua window and background and widgets on OS X.


What would be the pros and cons of both?

The above kinda summarizes that. Cello is only for insanely unique, dynamic, responsive GUIs and a programmer prepared to create their own controls (lots of examples available).


The Cello approach feels more like the hax0r approach (more "hardcore")
, but it will be harder to maintain and keep up to date, no?

If I go with CelTk I can use whatever the Tk folks spits out, without
doing much of the maintenance work myself, right?

Right. Almost everyone should be using Celtk.

Is the OpenGL stuff
as fast with CelTk if so?

Yes. Togl just gives us the OpenGL context. Then we code standard OpenGL calls via the opengl FFI bindings of our choice. Tcl/Tk never even sees those calls. It just gets the Togl_PostRedisplay or whatever.

This is why Frank (mostly) and I switched to the C API. But I am glad we did for the true callbacks and event handlers.


My application will first and foremost be a 2D application with some
special effects (like a zooming user interface, etc),

Not sure what a zooming UI is. Cello can do anything, Celtk can do anything Tcl/Tk docs say it can do.

I will most likely use LispWorks (but I consider SBCL or ECL too).

All my stuff has run at various times on LW, SBCL, OpenMCL, CMUCL, Linux, and OS X. ECL might be a reach, but I really have no clue on that.

ken

--
Well, I've wrestled with reality for 35 years, Doctor, and
I'm happy to state I finally won out over it.
-- Elwood P. Dowd

In this world, you must be oh so smart or oh so pleasant.
-- Elwood's Mom
.



Relevant Pages

  • Re: learning Common Lisp ;; i came back Full-Circle (OT)
    ... Change Bangladesh and Bulgaria with Elbonia and Matobo. ... I prefer Celtk because Tcl/Tk gives me more than just a GUI, and the Tile package is even more native than vanilla Tk, and as current on the Mac as on Windows. ... Cello is just for insanely dynamic, ...
    (comp.lang.lisp)
  • Re: How do lispers do their GUI programming anyway? (was Re: Curses alternative for Lisp?)
    ... I suspect that lisp access to those libraries makes your lisp code look like a java/swing stuff. ... I am afraid I was a littel fuzzy about that in my "wish list": By "a lispy interface" I meant the toolkit should leave my lisp application as it is, just somehow magically attach a GUI to it. ... My personal conclusion is that the fun is with cells-gtk or celtk, since cells appears to be the lispiest way so far to do GUI stuff. ...
    (comp.lang.lisp)
  • Re: Graphic-Forms screenshots
    ... It took a bit of doing to prevent all sorts of unpleasant flashing as I told widgets to move. ... but now I am working on doing the standard Ltk demo in Celtk to give those interested in using Celtk a before-after translation to help them understand how a declarative GUI works. ... Wouldn't it be best to have some generic Cells-Windowing framework that supports multiple backends like tk, native windows for differents OS and so on? ... if you are going to do the native OSes, you do not need to do the frameworks built to be portable across the native OSes. ...
    (comp.lang.lisp)
  • Re: Newbie FAQ #2: Wheres the GUI?
    ... Otherwise, it is slow, incompatible with today's GUI ... I have a bias against Gtk. ... There's also celtk and cells-gtk. ...
    (comp.lang.lisp)
  • Re: All Your GUIs Are Belong to Us (Die, McCLIM! Die!!)
    ... Possibly trying to build Cello instead of Celtk. ... they post a lot of anti-Cells flames and call it Cello. ... (x 0:type GLint) ... Celtk3D demos use cl-opengl and adds Togl support. ...
    (comp.lang.lisp)