Open wsv-accidis opened 10 months ago
It's still Dart (good). More of an app framework than a web framework (also good). Apparently can use WebGL for rendering, very cool. This seems to be what AngularDart refugees are flocking to.
It's C# and .NET but doesn't seem to be super popular. It's basically C# on WebAssembly. Might be more used in the corporate world. It's Microsoft so it will be supported forever. Blazor seems to be the more modern choice.
There is a good article comparing Blazor and Razor here.
Let's keep an eye out on their roadmap and see if it sputters back to life. At the time of this writing, there are spurious commits by only two developers.
Why not use this as an excuse to learn Rust? Egui and Yew seem to be the most popular where Yew is more traditional HTML-with-code and egui goes full 60 fps immediate mode canvas. Is that practical for what I want to do? Who cares, it looks like fun.
Egui is in a very heavy state of development and breaking changes are to be expected, the author is very clear about this. It's also effectively a one-guy project, sponsored by his current employer, so the long term support is uncertain. Rust is very verbose compared to more high-level languages. These factors will slow down development and add friction. The documentation is very incomplete and there are few guides or tutorials online, so finding solutions to problems can take time.
On the plus side, the project has come very far already and has an active community. The tooling is very good and it was easy to get started. Rust is fun and building an immediate mode GUI is a refreshing change. While there are bugs and a long list of open issues, they do seem to be handled competently. The widget library is surprisingly rich already, and should have everything I need. The longer term goals of the project seem well aligned with my needs, as well.
As interesting as it was to explore a bit of Rust, it is no longer a candidate for this particular hobby project. Rust in general is far too verbose and the memory management approach takes far too much hand-holding; I'm sure it makes perfect sense for performance intensive work where you do not want the overhead of a GC, but for a line-of-business app, it's a hindrance.
Despite showing a lot of promise and being interesting to try, Egui is still very immature and would require extensive customization to reach the level of UX fidelity that I'm after (using Material Design as a reference). Even building a quick demo, I found bugs as well as areas where Egui is not offering simple or straightforward solutions to things that would be simple and straightforward in, say, Android or HTML.
To summarize, while interesting to explore, going with Egui or any other Rust-based framework would add considerable effort to the project and would feel like a regression in DX compared to what I already have with AngularDart.
In true Google fashion, they abandoned support for AngularDart except for their own internal use. They said they would publish occasional updates externally but then walked back on that too. The community maintained fork has barely a twitch of life left in it and it's probably a PITA to migrate from AngularDart 6.x that I'm using now.
Thankfully there is no real issue with just keeping the current frontend forever. It's on the last major release which was intended to be LTS, it works well enough and there is no risk of security issues since all the important stuff happens on the backend and is running off .NET. And regardless of your opinion of Microsoft, they almost never abandon their developers.
However, writing a new frontend could be a fun exercise. What is the new hotness these days?
Caveat: Not Javascript. Just not going to happen.