Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Clog – The Common Lisp Omnificent GUI (github.com/rabbibotton)
157 points by marcodiego on June 29, 2023 | hide | past | favorite | 18 comments


I've wanted to use this for a while, but I've always wanted something not requiring a web browser and not a pain to set up on SBCL (McCLIM has one dependency that always causes compilation errors, but I forgot it's name since it's been a while since I've tried using McCLIM on SBCL -- in the end I use CCL for anything CLIM-related). This also rules out using Qt at all. No idea about GTK but CFFI bugs in Lisp are always difficult to debug -- not really Common Lisp's fault, FFI in general leads to difficult-to-debug problems in the future.

That leaves me with... Ltk (Lisp bindings for Tcl/Tk), shelling out thousands of dollars for LispWorks, or using something like ABCL and Java Swing.

... I guess I'll just use Clog anyway :)


Ltk. I used that for a few apps back in the day. Good times. It was hacky as hell but worked well enough.


That's always been an issue for lisp. The best software is paid, the best hardware at the time was expensive lisp machines. It's great to use if you can access the software


and for a quick overview of other GUI solutions: https://lispcookbook.github.io/cl-cookbook/gui.html (Gtk4, Qt4 and 5, LispWorks' CAPI (incl. for mobile runtimes), IUP…)

I have been pleasantly surprised lately to discover surprisingly nice-looking Tk themes (like https://github.com/rdbende/Forest-ttk-theme). We can use them from CL too, with the nodgui library :) (see link)


I don't think CAPI works on mobile runtimes, unfortunately


I’ve been exploring this project recently, I’m having a great time with it so far. The many examples and great documentation are much appreciated. I’m very tempted to try it for some upcoming projects building workflow systems at work.


An important note: this is not about "native GUI", this is about creating a GUI inside a browser.


I'm starting to come around to the idea that the browser is the modern GUI framework. That is that modern web browsers are the native desktop widget set these days and the model of running an app that opens a browser tab (not electron) as it's interface is probably the best option for many applications.


In many cases, this is a fine approach: see Syncthing, or every router GUI.

Also, you can throw away the DOM and render everything via WebGL, which may be fine for something like a video editor.

What bothers me for decades is the stubborn refusal of browser vendors to allow connecting to domain sockets on Unix or named pipes on Windows. That would solve the problem of connecting to some random port on localhost, where TLS is a pain.


That is unfortunately one of the main reasons to turn to something like Electron.


The latest version of Allegro Common Lisp has a IDE that runs in a browser.


Common Lisp has a specification for a GUI framework, CLIM...

This project implements it: https://codeberg.org/McCLIM/McCLIM

However, just today I tried to run it on MacOS and got socket errors... it seems that it tries to communicate with a backend server via sockets, and Mac doesn't let that run?!


Even on macOS I believe McCLIM will use X11, for which CLX is the Common Lisp implementation of. CLX works by sending X11 packets over a socket. Unless you have Quartz or similar installed, you probably got that error.


Yeah I noticed McCLIM uses the X Server, but wasn't aware that doesn't work on MacOS. So, if I install XQuartz I'll get an X Server that can make things work? MacOS is not based on X11 itself? Does it use its own thing?


Neither NeXT nor the Mac OS used X11 so Mac OS X didn’t either. X11 has always been an option atop the native window system.


At a glance, it looks like it would have quite a few accessibility issues.


Can this use a WebView instead of connecting to a localhost port?

Edit: it’s not clear to me from the readme if this is something it provides or just something that would theoretically be possible.


I really hope this library continues to grow. Going through Dr. Botton’s documentation has been helpful in learning the in’s and out’s of CLOG.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: