What does HackerNews think of clog?

CLOG - The Common Lisp Omnificent GUI

Language: Common Lisp

For me David Botton [0] with his work including code, support and videos is doing very nice work in this direction.

I use SBCL for everything but work because I cannot yet; we are getting there, but like you say, it’s such a nice experience working interactively building fast that it is magic and it’s painful returning to my daily work of Python and typescript/react. It feels like a waste of time/life, really.

[0] https://github.com/rabbibotton/clog

More like in spite of Embarcadero...

There's still Lazarus[1], and Common Lisp got CLOG [2] which is very much like Delphi except in the web and in Lisp

[1] https://www.lazarus-ide.org/ [2] https://github.com/rabbibotton/clog

I haven't used Clojure professionally in 10 years so with a grain of salt here are my thoughts as only one other person answered...

CL over Clojure: it's the OG Lisp that the creator of Clojure used and wanted to continue using but faced too much resistance from management afraid of anything not-Java/not-Oracle, or not-CLR/not-Microsoft, etc. Clojure shipped originally as "just another jar" so devs could "sneak" it in. If you don't have such a management restriction, why Clojure? If you want to integrate CL with the JVM, you can use the ABCL implementation, there's also something from one of the proprietary Lisps. Some useful CL features that are nice in this domain: conditions and restarts mentioned in a sibling comment (very nice to help interactively develop/debug e.g. a selenium webdriver test), ability to easily compile an exe (perhaps useful for microservices, or just to keep your deployment environment clean and not having to care about Lisp), and ability to easily ship with an open local socket allowing you to SSH in (or SSH port forward) and debug/fix/poke around in production (JVM of course lets you attach debuggers to a running process, even certain billion+ dollar companies will have supervised/limited prod debugging sessions for various hairy cases, but it's not as interactive). You should never hear CL advocates claim you can't scale to large teams/groups of engineers or large multi-million-lines sized projects, though you might oddly hear Clojure advocates sometimes claim you can't (and shouldn't) scale to such large projects -- large groups of engineers are a non-issue for them as well though, the challenge is in hiring, not in the language somehow making it impossible to modularize and keep people from stepping on each other.

Clojure over CL: its integration with the JVM is nicer than ABCL's, so if you do actually want a lot of the great world of Java stuff, it's easier to get at/you don't have to make a choice to enjoy things like state of the art GC or concurrency support. Database integration libraries are better. Clojure's philosophy of values are values is so much better. Access to libs (Clojure or Java) is via Maven, so it's a larger ecosystem with more self-integrating components (especially around monitoring/metrics) than what's available for Lisp via Quicklisp. Clojure is very opinionated, much of it quite tasteful, and that gives the whole ecosystem a certain consistency. (You can have immutable data structures in CL, you can if you want use [] for literal vectors and make them syntactically important e.g. in let bindings, but not everyone will be on board.) Even though its popularity seems to have stopped growing, at least at the same rate as e.g. Go which it was keeping pace with for a while, it's still popular enough with a bigger community; as a proxy measure there are multiple conferences around the world and good talks at adjacent conferences, whereas Lisp mostly just has one conference in Europe per year and only occasional the occasional project branching outside of that.

If you're doing a client-side-heavy webapp, ClojureScript is still amazing, CL's answers there aren't very compelling with the exception of CLOG (https://github.com/rabbibotton/clog) which takes an entirely different direction than the usual idea of translating/running Lisp on top of JavaScript and its popular frameworks.

We have a number of libraries that are easy to use together for the backend, no fancy web framework (build your auth page yourself), no fancy client-side lispy libraries. We might have a Fighweel-like tool, but no one is interested (Trident-mode for Emacs).

There's one framework that looks promising to build fully dynamic apps in pure CL with one code base (websockets inside). It provides a GUI-like experience to build all kind of apps (a website, a chat, the snake game…): https://github.com/rabbibotton/clog/

I am using Hunchentoot, a routing library on top (easy-routes), the Mito ORM, and for the client side I am conservative: HTML templates with Djula, interactivity with HTMX, Vue if required, JS.

The great thing is that I can build a standalone binary of my web app, including the static assets, the webserver, the lisp compiler and debugger… for ±28MB unzipped and instantaneous startup times.

https://lispcookbook.github.io/cl-cookbook/web.html

https://github.com/CodyReichert/awesome-cl#web-frameworks

https://lisp-journey.gitlab.io/blog/lisp-for-the-web-deploy-...

Also see: https://lispcookbook.github.io/cl-cookbook/gui.html

These may be of special interest:

A lightweight QML-only ECL binding to Qt5/Qt6 : https://gitlab.com/eql/lqml

CLOG - The Common Lisp Omnificent GUI : https://github.com/rabbibotton/clog

CLOG and the full UI builder CLOG Builder do exactly what you are looking for.

It already offers plugin controls that work with the builder or just code.

Can deliver native local apps, websites, webapps, iOS and Android apps, etc.

Database controls like in VB and Delphi - and much more to come.

It is programmed in and with Common Lisp, however you can easily program events in JavaScript and Python coming soon too.

https://github.com/rabbibotton/clog

Those do sound cool. Visual Go would be really nice too! I’ve spent some time using CLOG recently, and I’m aware that is can produce a self-contained executable, but haven’t gotten that far in the tutorials yet. Anyways just wanted to share.

https://github.com/rabbibotton/clog

Have you tried CLOG?! It apparently matches the exact use case you described above. It’s a GUI first approach but its aim is to be highly extensible. I only ask that you be gentle. It’s being built by a passionate developer in his spare time, but he’s making great progress.

https://github.com/rabbibotton/clog

> my current low level fantasy is something akin to Electron, only with Common Lisp. First class DOM, first class event hooks, into a CL runtime that you can deploy cross platform.

Have you checked out https://github.com/rabbibotton/clog ? I have only played with a couple of the tutorials, but it seems to be targetting something like that, albeit without an included browser.

i think the new common lisp web/gui framework CLOG [0] thats being developped by david botton is a good competitor to IHP. it is also 100% free

[0] https://github.com/rabbibotton/clog