I (probably unreasonably) despise using web front-ends for desktop applications.
GTK is OK. QT is very feature rich, but that adds complexity. Both can be cross-compiled to most systems and shipped with all the required libraries pretty easily.
I haven’t used it in a long while, but I remember liking Java Swing for some reason. Java should be “write once, run anywhere.” But, cross-compiling isn’t usually too hard, so not sure how much that matters. There’s more modern frameworks for JRE-based languages now, but I haven’t tried them.
I’ve noticed Gradio is popular in the ML community (web-tech based, and mostly used for quick demos/prototypes).
Edit: For web applications, I prefer Angular’s more traditional architecture over React’s hook architecture.
Code should be self-documenting. That way it is never outdated. Here’s an example of this similar to what you can expect to see in practice:
def nabla_descent(X, y, theta, alpha, delta, nabla): m = len(y) for _ in range(delta): h = X.dot(theta) nabla = (1/m) * X.T.dot(h - y) theta = theta - alpha * nabla return theta