Remix.run Logo
embedding-shape 2 days ago

> No one is going to write new UI libraries if SOTA models know React best, no one is going to bother with new languages if SOTA models know Python, Go, JavaScript, and so on the best.

And here I sit with my own native cross-platform GUI library, made with my own Lisp-To-Rust programming language... Tell me more about what we all are not doing :)

rfgplk 2 days ago | parent | next [-]

> And here I sit with my own native cross-platform GUI library, made with my own Lisp-To-Rust programming language...

Currently working on something like this. Do you have a writeup somewhere? Specifically how you solved cross platform rendering equivalence? Do you use an intermediate representation or just pure vis-a-vis splatting via native APIs?

embedding-shape 2 days ago | parent [-]

> Do you have a writeup somewhere?

I don't (yet), but do subscribe to the RSS feed on my website, I'll publish a writeup there once I've fleshed out exactly how it has to work for all the applications currently using it.

> Specifically how you solved cross platform rendering equivalence? Do you use an intermediate representation or just pure vis-a-vis splatting via native APIs?

In short, my current approach is something like a small renderer-neutral display-list IR, then each frame produces ordered DrawOps in logical coordinates, which then a shared renderer applies transforms, clipping, opacity, paths and whatever, which finally dispatches to platform canvas implementations backed by native APIs.

It's about ~50K LOC in total right now, to support Linux (Wayland + X11), macOS, Windows, iOS, Android, Sailfish OS and headless/offscreen rendering variants for each of those. This is like the 3rd iteration on this library, and for the first time I managed to get all the features in place without reaching +100K LOC, so feels like a pretty good approach so far.

The equivalence is semantic and conformance-tested essentially, not guaranteed pixel-perfect. For me, consistent design across the platforms is more important.

stuaxo a day ago | parent | prev | next [-]

Yeah, that part seemed like a really bad take - of course people will make new libraries and UIs.

varjag 2 days ago | parent | prev [-]

Yes, it will be easier for people to build new libraries and languages, but they won't gain traction.

embedding-shape 2 days ago | parent | next [-]

But who cares if they gain traction? I don't need it to gain traction for me to be able to make use of it correctly and efficiently. In fact, I probably need the opposite, for it to not gain traction, so I can focus on using it and improving it for myself only.

dmortin 2 days ago | parent | next [-]

If it does not gain traction then it's irrelevant in the global software field.

You can have fun with it, but it won't make a difference, so from the point of view of the software market it won't exist.

rfgplk 2 days ago | parent [-]

Do you hold the same opinion with regards to Jonathan Blows jai language?

hk__2 2 days ago | parent | prev [-]

This is a general comment; it might not apply to your personal use-case.

embedding-shape 2 days ago | parent [-]

I guess I should have prefixed my initial comment with "This is my personal use-case, not a general comment"?

menaerus 2 days ago | parent [-]

gist was certainly not implying that it was not possible to do it or that some people won't continue doing it but the point was rather that the pool of such people or such projects will significantly decrease because software has now (mostly) reached the abundance state where all of these technical details start to matter less and less for general consumption.

archagon 2 days ago | parent | prev [-]

Libraries, languages, and all that good stuff are the stepping stones we use in service of building powerful abstractions that can then be used to expand software complexity. You cannot LLM your way out of that, I’m afraid.

varjag 2 days ago | parent [-]

Sure. It's just we won't have any new popular ones.