Why not Qt? And, since this is Microsoft, why not take this opportunity to develop the backend in .NET core.
But I yes the biggest impact javascript will have on mankind is that noone will ever be bothered to create a good foundation for cross platform applications.
The desktop app is absolutely paramount for Spotify to stay relevant. Not sure if I've seen or heard of anyone using it in the browser (not that that is relevant, but I'd stop using it the very second I can't use it as a standalone app).
> the biggest impact javascript will have on mankind is that noone will ever be bothered to create a good foundation for cross platform applications
Why isn't Electron a good foundation for cross platform apps? The only possible negative to Electron is that the runtime is gigantic. A decent tradeoff if it means for example the VS Code team can support three OSes and push out rapid updates. I really can't see any downside to this, what am I missing?
It's as native as it gets, it imitates native widgets perfectly and allows the designer to easily recreate every element of a particular OS' HIGs with the use of stylesheets and native code.
In before "doesn't look native in my macOS": Because the people writing in cross-plat tools usually don't care about getting every detail right, they just want their app to run well everywhere. But Qt does allow the
developer to nail those details without too much effort if he actually cares.
Been doing some research about my problems with qt. I found some interesting stuff.
In qt6, there will be "native components" that use the actual underlying OS widgets[0]. They'll be less stylable, but will integrate better with the native look and feel. That should take care of the annoying cross-platform problems.
The other problem left is how big it actually is. As it turns out, it's possible with the LGPL to statically link your program and still comply with the license[1]. Basically, you just need to provide a way to download the .o files so they can be relinked against a different version of Qt.
Thanks to this, it should be possible to create (relatively) lightweight, statically-linked binaries of Qt software.
As far as the C++ is involved... There are qt bindings for just about every other language out there. Just today, bindings for go were released[2].
The future is bright for qt and cross-platform apps.
> As far as the C++ is involved... There are qt bindings for just about every other language out there.
Absolutely not. And the ones that do work are ginormous. The Go bindings are LGPL licensed, meaning they aren't an option for most people until Go plugins are available across the board, at least.
With that said, QML does have plenty of bindings, thankfully. And indeed, Qt's future looks bright, while Gtk's uncertain, so the former is definitely the saner option.
VS Code didn't start out like you think it did. More akin to life forming in a petri dish vs sitting down to design the Visual Studio replacement.
From what I recall piecing together it came about internally as MS due to monaco and TypeScript. I'm under the impression it was a TypeScript dogfood/dev environment project. It worked out well and they threw it over the fence to the public where it caught fire.
What's the user benefit of a (JavaScript) "desktop" (Electron, nw.js) app vs the same app as a web (browser) app , given that the web app has all the features of the desktop app, when the app won't work without the server ? (if you can't run the server yourself)
Benefits for a web app (non-desktop):
* User don't have to download the "browser" (Electron or nw.js)
* The user don't need "install" permissions
* The app can be accessed via an URL
* The app runs in a VM (a browser) that don't give full (root) access like a Electron/nw.js app does.
btw, I did not know Spotify had a web app. There's only a tiny link to it at the bottom of the page, impossible to find unless you really look for it, witch is probably why no one is using it.
P.S I'm now enjoying Spotify via the web app after not using it for years because I don't like "desktop" apps (for the reasons above)
Not à Spotify user but in general:
- a native app can have global shortcuts (very important for a media player)
- you don't accidentally refresh a native app
- native apps don't get purged from memory at random
- UI is generally better, keyboard shortcuts are more consistent
As a web developer that has never touched electron I would imagine the benefit is simple:
* One API that "just works"
* Guaranteed caching of necessary assets
* Access to native features (such as simplified access to the file system)
I could totally see all of this on the browser. But then the file system needs to go to the cloud, we need to consider hipster browsers (like k-meleon and omniweb), and we have to deal with the browser determining how our assets are cached and evicted.
But I yes the biggest impact javascript will have on mankind is that noone will ever be bothered to create a good foundation for cross platform applications.
The desktop app is absolutely paramount for Spotify to stay relevant. Not sure if I've seen or heard of anyone using it in the browser (not that that is relevant, but I'd stop using it the very second I can't use it as a standalone app).