Clojure Desktop UI Framework

Project status and documentation

  • HumbleUI is early-stage: README explicitly says “work in progress, no docs, everything changes every day.”
  • Several commenters want API docs and better onboarding; examples app is being used as self-documenting tests.
  • A workshop is planned (mid-September in the thread’s timeline), after which maintainers expect stabilization and proper docs.

Clojure and GUI development

  • Many see Clojure as a strong fit for rich GUIs; earlier libraries like Seesaw and cljfx are cited as good experiences.
  • Some find the HumbleUI Wordle example hard to read, especially coming from imperative backgrounds.
  • Others argue it’s mostly familiarity with Lisp syntax and functional style: once learned, they find the code concise and readable.
  • Discussion touches on idioms (cond, destructuring, comprehensions) and structural editing + REPL-driven workflows as major productivity and comprehension tools.

Native vs web look & feel

  • HumbleUI explicitly does not aim to “look native”; it uses Skia and intentionally goes for a more web-like aesthetic.
  • Some worry this conflicts with a goal of “native apps” users prefer over web apps; others clarify “native app” vs “native widget toolkit.”
  • One side stresses benefits of native widgets: consistency, accessibility, keyboard behavior, system integration.
  • Another side argues the “must look native” priority is overstated, especially given Electron’s ubiquity and many successful non-native professional apps.

Performance, cross-platform, and Electron comparisons

  • Several people are attracted to HumbleUI as a potentially more performant, less bloated alternative to Electron while still allowing non-native styling.
  • Others note that performance problems are often due to app design, not necessarily web tech itself.

JVM and deployment concerns

  • Some appreciate Clojure’s JVM hosting (mature VM, good for CPU-heavy work).
  • Others dislike JVM-based apps due to memory usage and packaging/distribution friction.
  • Alternatives and Clojure dialects on other runtimes (JS, Dart, native/LLVM, .NET, Lua) are mentioned as options.

Comparisons to other UI stacks

  • cljfx, Swing + FlatLaf, JavaFX, and Racket’s GUI are discussed as existing approaches.
  • Swing is praised for stability and documentation but criticized for aging assumptions (HiDPI, multi-monitor).
  • JavaFX is noted as similar in spirit to HumbleUI: custom-drawn, cross-platform look rather than native widgets.