Hacker News new | past | comments | ask | show | jobs | submit login

Stop trying to make desktop software with web technologies, they are all slower and suckier than their counterparts.

I'm not saying it's impossible to make a good native app with web technologies, only that you can _ALWAYS_ make a better one using native tech.




So I'm sitting here on a linux (KDE) desktop machine with the following apps open:

1. Slack 2. Discord 3. Signal 4. Mullvad VPN 5. Kate 6. 1Password 7. Emacs 8. Chrome 9. Spotify 10. Konsole

How many of these wouldn't exist on Linux if they had to be written with native SDKs? Konsole and Kate use QT and are clearly the best UX, but it's not like emacs (gtk) integrates natively in KDE any better than Slack does. Zoom is clearly the worst experience of all of them, and I think that's actually a QT app?


You are correct, but I still feel like we need a better way of making cross-platform desktop applications than just wrapping a webapp into a bunch of bloat. Web technologies were never meant for this and it pains me to see a messaging desktop app clog up 100s of MB of memory


We do need a better setup, but is there any more mature UI platform than HTML+ CSS +JS?

I don't think the concept of wanting to used this advanced interface is wrong, just that the implementation of Electron is bloated - and that web programming culture is far too wasteful because the premise there will only be one important app on the computer.

I have not tried sciter, but making a fast, light Electron alternative is the right way to go. To go with that, I would like to see a new emphasis on fast and light js/css libraries and frameworks that treat desktop as a first class citizen, using light SVGs instead of big raster images, automatically generating stripped down icon packs rather than loading all of fontawesome etc.

That looks like a much more promising way forward than any other UI framework I have seen. The interface with a myriad of languages for actual hardware access and local file/data manipulation are already there for the most part.

Because of this overwhelming benefit in my opinion, it is worth it to go through the development pains to get there as the easiest path to a better dev experience, rather than trying to use some other tech and bring it up to web UI quality and flexibility.


HTML isn't really meant to be a UI platform. It's a mature hypertext platform, but for UI it isn't ideal:

• Very few core widgets. Everyone has to supply their own.

• Poor/non-existent support for menus.

• Poor support for keyboard accelerators.

• Rich text editing is ropey, and you have to supply your own UI.

• No table views, tree views, or virtualized list views.

• Multiple incompatible DSLs all of which get wrapped in practice.

• Only accessible from one programming language.

• Only recently got any built-in notion of components.

Electron is convenient because lots of people know HTML and because it lets you incrementally upgrade a pre-existing web app. But if you know you'll be on the desktop anyway there are toolkits that solve the above problems, some of which meet your requirement of being lighter whilst still using stuff like CSS or SVG. Qt fits the bill and if you're not a C++/Qt person, JavaFX also uses a dialect of CSS (which can be compiled to binary even) whilst still offering a fairly complete widget set out of the box. It can be compiled down to a fully native binary these days, and even streamed over the web (see https://www.jfx-central.com/ for a demo).

So once you leave the browser you have a far greater array of UI options available to you. Power users in particular tend to appreciate the productivity of standard desktop UI paradigms.

And they're all equally easy to distribute these days. Conveyor will ship anything, it just has some sensible defaults for Electron/JVM/Flutter apps. Fully native apps work too, though.


Here is the sad truth for you: they still don't exist. Open these apps in a Chrome tab and you get the same shitty experience. Open them in Firefox (or a WebKit based browser), and you get the same experience, with much less resources used.


I was going to say, most Electron apps (as opposed to say, VS Code) offer the user no benefits over just using the website they're wrapping.

They do offer benefits to the app purveyor, because apps have access to your system that you'd never allow a web site to have.


> they still don’t exist… same shitty experience

There are many additional features a web app is capable of when installed, like native notifications, file system access, file associations, etc.


All these apps could be written in Qt and would then work on all platforms.


Like Telegram.


A few more would exist as native than the ones that already do and the rest we could use them through the browser. It's not like the UX is that different anyway...


Zoom is CEF, like Spotify. It's Chromium embedded in a QT container.


Slightly off topic, bit is Signal a web app? I haven't realized.


It's Electron-based, yes. Anyone using it on Wayland with fractional scaling will know that...


I hate Electron apps as much as the next guy, but I'll take a cross-platform wrapped web app any day over a native app that is available only on Windows because the developers didn't have the time do make three separate apps.


I've been developing a desktop app in Flutter and so far my experience has been quite positive. It uses a fraction of the disk space and memory that a comparable electron app would and it's overall a much nicer UI toolkit than html.


I kinda miss the fact that native apps followed os' UI standards, now every app has a different UI with its own set of quirks.


This is true. One thing people have trouble with, though, is committing time to develop a desktop version of their app. So the shortcut is tempting, but you're right that it's not ideal. Often, a poor desktop app is better than nothing.


I fully agree and very much like vs code at the same time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: