Thoughts on Clojure UI framework

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • gio

    Mirror of the Gio main repository (https://git.sr.ht/~eliasnaur/gio)

  • From "Why not web":

    > I think the fundamental problem of the web is that its APIs are too high‑level.

    Frameworks like Flutter (at least one backend) [1] [2] and Gio [3] use low-level APIs like WebGL and WebAssembly. That might not be the right choice for a web-first framework but seems reasonable for apps that would otherwise be desktop-only and need low-level access to be compatible with the native version.

    It looks like he's using Skia for rendering so the WebGL/WebAssembly Skia port that Flutter uses might be a particularly good fit.

    I assume a Clojure project would use Clojurescript if it had a web target, but I'm not familiar enough to know if the Clojure/Clojurescript differences [4] pose a big obstacle for this sort of UI framework or not.

    [1] https://flutter.dev/docs/development/tools/web-renderers

    [2] https://skia.org/docs/user/modules/canvaskit/

    [3] https://gioui.org/

    [4] https://clojurescript.org/about/differences

  • datascript

    Immutable database and Datalog query engine for Clojure, ClojureScript and JS

  • The work is funded by a Clojure community group (and a Clojure-using company), and Tonsky has written a bunch of awesome other Clojure (see DataScript[1]).

    So it seems as though the decision to use Clojure was not made for technical reasons, but it's not exactly arbitrary.

    [1] https://github.com/tonsky/datascript

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • NSWindowStyles

    A showcase of the many different styles of windows possible with NSWindow on macOS

  • > how does the wrapper handle different UI/UX guidelines?

    Most of it is automatically handled by the native interface of the OS when it renders the UI, some rare cases have to be dealt by the wrapper library developer, and some of it has to be done by the developer creating the app using the wrapper library.

    For example, a Window usually has the default UI elements of a Title Bar, the title text, Max-minimize buttons, window resize handlers etc. In Windows, this is rendered with the Max-minimise buttons on the top-right corner, and the title left aligned in the title bar (if I remember right). On macOS, the same Window will be rendered with the max-minimise button on the top-left corner and the title centered in the title bar.

    When you create a window on MS Windows OS using the Win32 API for it - http://www.winprog.org/tutorial/simple_window.html - the rendered window will be, by default, according to Microsoft UI / UX guidelines. Similarly, when you create a window using the cocoa faramework on macOS, the window will be rendered by default according to the UI / UX guidelines of Apple - https://github.com/lukakerr/NSWindowStyles .

    This highlights how some UI / UX guidelines are baked into the native frameworks.

    But if the wrapper library developer wants to create a custom UI component, they will have to ensure that the component is compliant with UI / UX guidelines of the OS they are rendered in.

  • JWM

    Cross-platform window management and OS integration library for Java

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts