HumbleUI | jurigged | |
---|---|---|
5 | 15 | |
1,123 | 1,016 | |
2.6% | - | |
7.7 | 5.2 | |
7 days ago | 18 days ago | |
Clojure | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
HumbleUI
-
Is Clojure the only language you need?
So you can see, there are really a lot of choices but none of them dominates, which means they all have flaws. You can read a good article from Niki Tonsky where Clojure UI problems are discussed. Also to address the problems Niki Tonsky started the development of a new UI for Clojure, called Humble UI. So now we have one more option :)
-
So you're using a weird language
If you don't mind being stuck on Windows you could use Visual C# or Visual Basic, they have edit-and-continue too. https://learn.microsoft.com/en-us/visualstudio/debugger/edit... I've worked with the SuperTux C# level editor in the past. C# was actually pretty nice for GUI stuff.
There doesn't seem to be a good GUI framework for Clojure. There was Seesaw but it hasn't been updated since 2019. There is a guy developing a new framework https://github.com/HumbleUI/HumbleUI/ but it's WIP. I guess you could sidestep this by making it a webapp and using figwheel.
-
The shape of data
UI toolkits: https://github.com/HumbleUI/HumbleUI and https://github.com/phronmophobic/membrane
-
Ask HN: Does Java need a modern Java UI toolkit for desktop/web?
Nikita Prokopov is developing Humble UI which is worth keeping a close eye on. (Yes, it's Clojure, but Java interop is bound to emerge if it builds up a critical mass and catches on.)
https://github.com/HumbleUI/HumbleUI/
-
The Decline and Fall of Java on the Desktop Part 1 (1999-2005)
I've made a few desktop apps in https://github.com/cljfx/cljfx (e.g., https://www.chronos-desk.com/), and cljfx (JavaFX + Clojure) is amazing and makes for rapid development, not to mention fun. I'm keeping an eye on https://github.com/HumbleUI/HumbleUI, which promises to be a step up.
jurigged
-
[D] Yann LeCun's Hot Take about programming languages for ML
If that interests you, I made a package called jurigged that basically does autoreload but asynchronously on Python in general (i.e. you can write jurigged script.py instead of python script.py; it works in a separate thread and can also work in notebooks). It's more surgical than what the notebook does in that it only hot swaps code in changed functions and does not re-execute anything else. This feature is cool too, IMO.
-
Debugging Lisp: in CL we can resume a program from any point in the stack
Some of the basic hot-loading features can probably be approximated in Python. Here's some from my bookmarks(i've not tried them personally)
- https://github.com/breuleux/jurigged
- https://github.com/reloadware/reloadium
I would imagine lisp can do this on a whole different level. Emacs seems like a testament to that. Basically the entire editor feels like eval()
- So you're using a weird language
-
Reloadium – Hot Reloading for Python (a.k.a. Edit and Continue)
I've been using jurigged [0] for hot code reloading which is great. It works by replacing code objects in place at the function level which naturally handles many cases like applying to existing objects, avoiding loading a module multiple times, etc. As others noted the actual source of this one is not there so it's hard to know what it's doing. The published package contains a binary shared library so I suppose it's written as a CPython extension.
[0] https://github.com/breuleux/jurigged
- jurigged - Hot reloading for Python
What are some alternatives?
teavm - Compiles Java bytecode to JavaScript, WebAssembly and C
reloading - Change Python code while it's running without losing state
membrane - A Simple UI Library That Runs Anywhere
reloadium - Hot Reloading and Profiling for Python
skija - Java bindings for Skia
PyDev.Debugger - Sources for the debugger used in PyDev, PyCharm and VSCode Python
cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame
watchfiles - Simple, modern and fast file watching and code reload in python.
convex - Convex Main Repository - Decentralised platform for the Internet of Value
ipython - Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.
jdeploy - Developer friendly desktop deployment tool
PythonHotswap - Hotswap Python functions. And persistence of runtime.