Does it make sens to develop a PackagedApp (html5 + js) and ship it with a embedded/lightweight web server?
Main idea behind that is to write backend/logic once in some "normal" language and later ship it with a PackagedApp and use HTML5 + JS for what in my opition they are good at => GUI.
For now I would like to have an app which is a native application probably with some kind of local storage (+ some kind of ORM, or embedded noSQL db), but later I would move it to a remote server. Host the whole page, add and turn on a module where an user can log in, hook auth mechanisms and hook different DB (not embedded anymore).
Does it make sens to write such an app? or it is stupid to do this in that way and it would be much easier to pick a programmming language, search for GUI libs in that lang (preferable cross-platform) and write native app in that, of course using some good pattern to separate logic and GUI and later write a web app?
I'm thinking about it, because I hate learning native GUI libs. Each one is different, the code always was ugly and hard to maintain. I wrote some code in Swing/QT/WPF for multiple different platforms and despite I'm a backend dev and I shouldn't ever touch the GUI, I would like sometimes to write some basic one and later hire someone to do it better, but not making his job or later integration with his GUI a pain in the ass.
To me HTML+js are cleaner and popular. It's easy to write anything in that or hire someone to design some fancy GUI and because I prefer backend development, it seems natural to me to write some REST server and hook it. but I'd like to know if anyone's done it in that way and it wasn't a complete disaster in all aspects.
I suppose the performance will suffer a bit. Any other downsides?
If I understand your overall goal, it's to use JavaScript + HTML + CSS as a way to code portable desktop apps, while still writing the bulk of the code in what you call a "normal" language, by which I assume you mean Python, PHP, etc.
This approach seems too complicated to me. The interaction between client and server (both on the desktop) would be complex, which is worthwhile when the server is remote, but is overkill when they are effectively the same app. Another disadvantage, especially important if anyone else has to maintain the code, is that too many languages and technologies are involved.
Maybe a better approach is to use a toolkit like wxWidgets.