Hello Rust community,
Two years ago I tried to develop my own software (https://devev.com/) in Rust, when I ran into a wall while implementing the user interface: there were no reasonable options available. I decided to write a binding engine between Rust and TypeScript so I could build an electron UI but I eventually moved the entire code base to TypeScript to reduce complexity in the project.
After looking at the Rust survey for 2019 this still looks like a big problem.
At this point I'm a much more experienced UI developer. In my free-time I'm building the software I mentioned above using web technologies. Professionally, I implemented UI in the Forza video game series for the past 4 years. Forza uses an in-house markup language and UI renderer so I have experience building these technologies.
I think I can have impact on the UI problems Rust is facing and I'm interested in gathering a list of requirements so I can make sure I'm actually solving the communities problems and not just building another UI library for the sake of it. I was hoping this thread could be a kicking off point for a discussion about what users would like to see.
I would like to start with what I see as two major requirements for an MVP:
- Web support
- Support for a Markup Language
By targeting the web I could leverage electron for the other platforms at first. Eventually each platform could have a specific implementation for performance but there's a lot of existing open source work that makes the web a low hanging fruit and more people are there than any other platform.
With respect to a markup language, I think this allows for other things to be built on top of the technology. In particular I'd eventually like to support exporting from Figma and/or Sketch into the markup language so that UI can be developed flexibly and reloaded without a compile. This would also make things like editors and debuggers easier to implement (think of the devtools built into the browser).
I'm interested to know what requirements others have and whether they align with mine. I don't want to develop yet another GUI technology for Rust if the community believes that an existing technology will make it far enough to fulfill their goals.