Live data from Hacker News

Revery – Native, high-performance, cross-platform desktop apps

github.com

31–40 of 129 posts

Re: Revery – Native, high-performance, cross-platform desktop apps

#31
post #19

> Revery is the same - aside from platform-specific behavior, if your app looks or behaves differently on another platform, that's a bug! I want my applications to feel like they belong to the platform and not identical on every platform

Of course that's a choice for everyone to make, but I feel like in general the benefit of fitting in the platform is overrated. After all the whole webapp-everything somewhat shows that people don't care that much, they are happy to use GMail for example. Another family of examples would be the big software packages like the Adobe or Autodesk stuff, they tend to have a fairly custom look&feel. IMO it's probably suffi…

> Of course that's a choice for everyone to make, but I feel like in general the benefit of fitting in the platform is overrated.

I disagree; the benefit isn't overrated, it's underrated because it's not realized, thanks to most apps doing their best to _not_ fit in the platform. What full platform fit enables is consistent UX and interoperability. Lack of the latter places an actual cap of what users can do (except for the small percent that can force an app to interoperate, whether it likes it or not).

In my not so humble opinion, the current UX trends are based on circular reasoning - users don't demand functionality, interoperability and ergonomic design because those are rarely given to them, so they don't know they could have it. And since they're not demanding, this is used as a justification to not give it.

> After all the whole webapp-everything somewhat shows that people don't care that much, they are happy to use GMail for example.

It doesn't show that. It's just that people don't have much choice anyway. Crappy and bloated GMail UI vs. Thunderbird that requires a little bit of knowledge to set up. That's the choice.

Most software, including webpages, isn't substitute goods. Fastmail isn't a substitute to GMail once you have an account. LibreOffice isn't a substitute for Google Docs, not once someone shares a document with you through Google's cloud. Network effects are powerful, and they reinforce the basic way normal people treat software - as magic, "gift from gods", something that works the way it works because that's how it works.

I'm just pointing this out, because I hate the constant use of "the market decided" and "users voted with their wallets/eyeballs" as justification for bad engineering. It's mostly circular reasoning.

> Another family of examples would be the big software packages like the Adobe or Autodesk stuff, they tend to have a fairly custom look&feel.

Those are somewhat special cases, because they need so much functionality packed in the UI that they replace platform's conventions with ones better suited to the problem.

(Sometimes it leads to weird stuff, like Photoshop and its dialog boxes, in which buttons change meaning when you hold down CTRL.)

Re: Revery – Native, high-performance, cross-platform desktop apps

#34
post #20

Earlier quoted context omitted.

As an alternative for Electron it's not as important, so I cheer the effort. But... For me that means it's not really "native". Native as in CPU native is just to say it's reasonably fast and efficient. It's nice, but I'm looking for platform native. When your application is native in the first sense, you are competing with almost everyone. Games, even applications written with SDL are native in this sense. And almos…

Qt is "semi-native" in the sense that it uses native components, but does so in a hackish, "lowest common denominator" way. It's better than the other alternatives you've mentioned.

Qt renders its own widgets, just like this library, although it does use the native theming APIs to make them look native.

You might be thinking of wxWidgets.

Re: Revery – Native, high-performance, cross-platform desktop apps

#35
post #34

Earlier quoted context omitted.

Qt is "semi-native" in the sense that it uses native components, but does so in a hackish, "lowest common denominator" way. It's better than the other alternatives you've mentioned.

Qt renders its own widgets, just like this library, although it does use the native theming APIs to make them look native. You might be thinking of wxWidgets.

Thanks, I combined the two in my head :(

Re: Revery – Native, high-performance, cross-platform desktop apps

#37

Earlier quoted context omitted.

Much of the work put into Revery will also be applicable to other variations of it that can use platform components for the most important parts. See the Brisk project for an example that adheres to much of the same API and can target MacOS native platform components. But also, take a look at VSCode, and Atom and notice how much of those applications are actually rebuilt skins from the ground up. Even the exit button…

> The number of times I've ever heard anyone complain that VSCode reimplements clickable regions that look exactly the same on all platforms instead of using some ugly stock Windows buttons: zero. The number of times I've been annoyed that Electron apps break some semi-obscure but nevertheless important macOS feature: quite high, and it would be much higher if I hadn't sworn off Electron apps long ago.

I'm curious what kind of features you're referring to.

Re: Revery – Native, high-performance, cross-platform desktop apps

#40
post #38

The same problem - Javascript.

There may be javascript in the build system somewhere, but (correct me if I'm wrong) this appears to be leveraging the ocaml toolchain as a backend for reasonml rather than javascript.

In fact, revery is written pretty much entirely in ocaml. It appears to allow you to write reasonml as if you're writing for react/electron, but in fact it's compiled to native code with an included gui library managed for you.

Post reply on HN