Live data from Hacker News

Ask HN: What would you use to make cross-platform desktop application?

news.ycombinator.com

31–40 of 116 posts

Re: Ask HN: What would you use to make cross-platform desktop application?

#31
You have two options: either make the app work natively with your platforms, sharing all the code that does not directly work with platform only features, or use something that can run things on multiple platforms.

I would personally lean towards doing the last, with the target being the JVM -- that doesn't have to mean use Java, as there are many much better languages that target the JVM.

Re: Ask HN: What would you use to make cross-platform desktop application?

#32

Lazarus is a cross-platform IDE for native desktop applications on Windows, Mac and Linux. It produces fast, low-memory, single executable files for easy installation and deployment. Your app can use native OS controls - you won't be gluing together different libraries from different languages like you do with some scripting languages (with all the bloated size and performance issues that entails). Why isn't it more…

+1 for Lazarus. Great cross platform development tool that creates _native_ UI. I use it occasionally and have only nice things to say.

Re: Ask HN: What would you use to make cross-platform desktop application?

#33

I would take opinions on here from developers with a big grain of salt. I read people saying things like Spotify and Atom are "unusable" and slow because they're written in JavaScript when they have plenty of happy users. A few 100MB of RAM or disk space extra is a nonexistent issue as well to typical users. I know some developers get very offended at a program using a bit more RAM or CPU than it should be but develo…

I tried switching to Atom a few times, but I couldn't handle the slowness. It's just too laggy. On the other hand, I recently switched to VS Code, and I couldn't be happier. The startup is still a little slower than Sublime, but the editor is blazing fast. I really think this is just a problem with the architecture of Atom.

Spotify is also a bit slow and clunky, but it's not too bad. There's no reason why they couldn't aggressively pre-fetch a lot of pages to make the UI feel snappy. E.g. "Browse", "Radio", and all the tabs under "Your Music". And if you're playing a track, just pre-fetch the artist and album pages. If I can click something in the UI, it should already be loaded.

But even when stuff is already cached, the UI takes about 500ms to render the new page. Sometimes it's only a few hundred ms, but there's a nasty black flash before it renders. the new page. There's really no reason for that either. There are so many ways you could speed that up to make it instant. For example, just render everything above the fold, then add the rest of the content later.

Spotify's internet connection detection drives me crazy sometimes. Sometimes it takes 20-30 seconds to get back online, but I don't think that's related to JS. Their polling interval is just too long. There's no reason why they couldn't poll once per second and come back online immediately.

Re: Ask HN: What would you use to make cross-platform desktop application?

#34
post #27

Electron hasn't stopped Spotify from making the most widely used music client and VSCode from making the third most popular IDE.

I'd audaciously guess that it's the songs you play in it that makes the spotify app popular, not the pack of ones and zeroes that the developers thereof like better.

Re: Ask HN: What would you use to make cross-platform desktop application?

#36
wxWidgets. More lightweight than Qt and better looking on Linux. It has improved quite a lot recently, for example it supported binding C++11 lambda functions to signals before Qt.

Also: No moc compiler and you can statically link it without paying for a commercial license.

Re: Ask HN: What would you use to make cross-platform desktop application?

#37

I would take opinions on here from developers with a big grain of salt. I read people saying things like Spotify and Atom are "unusable" and slow because they're written in JavaScript when they have plenty of happy users. A few 100MB of RAM or disk space extra is a nonexistent issue as well to typical users. I know some developers get very offended at a program using a bit more RAM or CPU than it should be but develo…

Every Electron app I tried halved my battery life. Sure, regular people won't complain about your electron "desktop" app, they'll just complain about crappy batteries of their laptop, or about "my computer getting slow".

In fact, every time you hear a non-programmer complain about their computer it's usually not a hardware, but a software like electron that's ruining their experience.

OSes have started to add application profiling recently, so once every mainstream OS starts loudly pointing a finger at offensive applications (like "uninstall Spotify/Slack and you'll get 4 more hours of battery life"), you'll start hearing complaints from non-programmers.

Re: Ask HN: What would you use to make cross-platform desktop application?

#39
post #27

Electron hasn't stopped Spotify from making the most widely used music client and VSCode from making the third most popular IDE.

Let's confront "worse is better" directly: more-popular software is not the same as better software.

The Web is a race to the bottom in the quest for eyeballs. If eyeballs aren't what you desire, you can give the set of users you do have a much better experience: smoother interactions, better adaptation to system preferences, automated security and functionality updates to components via the OS distribution, better accessibility, etc.

Re: Ask HN: What would you use to make cross-platform desktop application?

#40
Emacs.

I mean the user base and the scope is kind-of limited, but it's really easy to build thin-clients and some certain types of applications in Elisp. And against all prejudice, modern Elisp is quite a pleasurable language to write in. Furthermore, it's a joy to use that sort of "apps" in emacs and the community really likes it when those pop up. Also, there already are rather featureful apps like Gnus, Magit, EMMS and Elfeed, and the user is allowed vast customisation even without you really thinking about allowing it (advices, monkey-patching, keybindings, hooks, etc.).

P.S.: While I don't suggest this as seriously as those who suggest Qt and WxWidgets et al., if your demographic is hackers, you can consider it.

Post reply on HN