-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite frontend in something else #68
Comments
Flutter WebIt'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. |
Blazor or Razor PagesIt'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. |
AngularDart 8Let'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. |
Egui or Yew or somethingWhy 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 first impressionsEgui 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. Egui (and Rust) conclusionsAs 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. |
Phoenix or anything that uses custom hostingAnything that can't be deployed to a traditional host serving static files is out, so we need something that doesn't need to be hosted in its own custom Docker container. |
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.
The text was updated successfully, but these errors were encountered: