In recent years most of my work has been back-end. When I used to do desktop development, I was impressed with the ease of development when using tools such as Eclipse Windowbuilder and Netbeans Matisse. I have tried, to no avail, to find similar tools to develop web applications. My dream toolset would have the following characteristics:
- Free and open source.
- Visual design with layout management, drag and drop of components from a palette and WYSIWIG.
- Agnostic as to the back end. In other words, I do not want a "full stack" approach. My backend stack is already set (Spring) and I cannot port it to another technology.
- If possible, I prefer to the primary development language not be JavaScript. I am a Java developer, but I am open to working with a different language. But I really don't like JavaScript. There are now many languages that compile to JavaScript or Web Assembly, so I prefer to go in that direction.
- UI customization accomplished largely through themes, similar to Swing's pluggable look and feel.
- My background is Java, Unix, Linux, open source etc. I don't live in the .NET world, so I am not particularly interested in .NET solutions. I might reconsider if that is truly the only way to get what I want.
- As I said, my primary interest is web applications, but extra points if the toolset can develop mobile and desktop apps from the same code base.
My decidedly non-expert observation that the current state of web app development seems to fall into the following general categories:
- Use the traditional trio of HTML/CSS/JavaScript, but use a JavaScript framework, e.g Vue).
- Keep HTML and CSS, but replace JavaScript with another language that compiles to JavaScript or Web Assembly.
- Everything is generated from JavaScript or TypeScript, e.g. React.
- Everything is generated from a language that compiles to JavaScript or Web Assembly, e.g. ELM.
There is a mind boggling number of choices available, but I still have not found anything that makes development as easy and fun as desktop development. I would be interested to hear what others think.