Live data from Hacker News

Stop Building Closed Ecosystems

buttondown.email

61–70 of 174 posts

Re: Stop Building Closed Ecosystems

#61

Earlier quoted context omitted.

I like the idea of Ubuntu Touch (having worked with Ubuntu a lot), but even more so Firefox OS. As a web developer, the idea that "native" could simply mean "the Web platform" is really attractive.

I don't want to run a browser to run applications, that's almost as bad as running Electron apps on the desktop.

Who says every app has to run in a separate browser instance like with Electron? It could be as efficient as a browser tab, which would be perfectly fine as long as the UI is built in a reasonable way. On Android it's been possible for a while to install webapps via the browser that are then displayed like normal apps on the homescreen, and that is nothing more than running a website in the single browser app instance running on the device.

Re: Stop Building Closed Ecosystems

#62

Earlier quoted context omitted.

There are multiple explanations for why cross-platform toolkits are kind of awful. I'm treating "cross-platform toolkits are kind of awful" as an observation here, because I've used them, I've worked with them. And my measurement for awful is poor UX, relative to native apps. Different platforms are just slightly too different from each other to make it work well. So you end up with a bunch of cross-platform apps whi…

> It is costly to just reimplement your UI for multiple platforms, but that's where the "closed ecosystems" come in. React Native is kind of a compromise between the Qt-style approach (cross-platform UX) and the native approach. You're given a framework which works with multiple native toolkits, and you can have a mix of cross-platform UI code and platform-specific UI code. I don't understand this claim at all. Qt (o…

> I don't understand this claim at all. Qt (or GTK) let's you "escape out" to the "native" toolkit on Windows or macOS as needed.

You're kind of fighting against Qt or GTK when you do that. Qt and GTK have their own widgets. React Native is more of a framework that uses native toolkits to begin with, so it starts out with much better alignment with platform expectations, and has better interoperability with platform features.

> There are not multiple "native toolkits" on Windows or macOS.

I'm confused by this comment. I don't know what kind of point you are trying to make here, or what you are responding to.

> So basically, you're denying that it's possible to do excellent cross-platform apps at all. OK. I'm not sure I agree with that, but it's a position.

Yeah, let's dial the "it's a position" condescension back one or two notches.

When I said, "Different platforms are just slightly too different from each other to make it work well," the "it" refers to cross-platform toolkits like GTK and Qt, which provide their own widgets. This explains why so many people use Electron and just embed a web browser (let's say "fuck it" and make one UI inside a big window), or choose to use something like React Native. Maybe I'm drawing too fine a line here--I think of Qt and GTK as cross-platform toolkits, I think of React Native as a framework without the toolkit parts, and I think of Electron as some kind of cross-platform box that you can something inside. I'd rather not talk about the definition of "toolkit" or "framework" because the definitions are not material.

Qt is a big honking mess, and GTK is worse. Speaking as someone who has written apps using both, and fixed UI problems in people's open-source Qt and GTK projects.

Re: Stop Building Closed Ecosystems

#63

Earlier quoted context omitted.

I don't want to run a browser to run applications, that's almost as bad as running Electron apps on the desktop.

Who says every app has to run in a separate browser instance like with Electron? It could be as efficient as a browser tab, which would be perfectly fine as long as the UI is built in a reasonable way. On Android it's been possible for a while to install webapps via the browser that are then displayed like normal apps on the homescreen, and that is nothing more than running a website in the single browser app instanc…

I have an Android and have done as you described but they're simply not as smooth as native apps, not even considering the lack of good native API integration.

Re: Stop Building Closed Ecosystems

#64

Earlier quoted context omitted.

So what do you want? "Highest common denominator" doesn't make much sense in this context - it's functionally equivalent to lowest common denominator. You want N different implementations, 1 per platform? You think the cross-platform toolkits could be better? Do you have an explanation for why they are not?

There are multiple explanations for why cross-platform toolkits are kind of awful. I'm treating "cross-platform toolkits are kind of awful" as an observation here, because I've used them, I've worked with them. And my measurement for awful is poor UX, relative to native apps. Different platforms are just slightly too different from each other to make it work well. So you end up with a bunch of cross-platform apps whi…

Is Photoshop a native application? It sure doesn't act or feel like one on Windows. It seems to be just using an Adobe in-house cross-platform abstraction. Maybe you like that abstraction's output more than web platforms, but that's a different matter.

Re: Stop Building Closed Ecosystems

#65

The native side of this has long been addressed by cross-platform toolkits including but not limited to: Qt, GTK, FLTK, WxWidgets (note: all FLOSS, at least optionally). Alas, web development "decided" to completely reinvent the wheel for all this stuff, leading to a new generation of heading-to-native toolkits derived from browser-based technologies, such as Electron, React Native and Flutter. Unless you believe the…

Every now and then I meet a Qt dev who's whining about how Electron stole their lunch.

If something like Electron stole your lunch, Qt obviously had serious problems.

Re: Stop Building Closed Ecosystems

#66
People invoke corps when discussing this problem, but fail to realize that publicly traded stocks only care about monetary value; that's why they're there. Any notion of bettering humanity or doing something sensible in terms of software is purely secondary. They're a business.

Is it any surprise that tech is the way it is with this in mind? Is it frustrating? Absolutely. Is it as expected? Yup.

Re: Stop Building Closed Ecosystems

#68

The native side of this has long been addressed by cross-platform toolkits including but not limited to: Qt, GTK, FLTK, WxWidgets (note: all FLOSS, at least optionally). Alas, web development "decided" to completely reinvent the wheel for all this stuff, leading to a new generation of heading-to-native toolkits derived from browser-based technologies, such as Electron, React Native and Flutter. Unless you believe the…

I don’t necessarily disagree with any of this. But the toolkits first listed are all pretty poor if you care about aesthetics and UX. It’s like making furniture with framing lumber and OSB. It’ll work fine and be durable. But it just always feels not great. They generally feel, to me, a semitone sharper than portability with 90s Java applications.

For some classes of applications, all the developers want is a 2D surface (call it a canvas if you like) to draw on and then they do everything else themselves.

This leaves several notable areas of UI/UX to address:

1. menus 2. file browsers 3. text entry 4. notification/tray integration 5. window management

These are where "the native experience" (i.e behaving according to guidelines or rules laid down by the platform controller) is really felt.

Yet they have very little to do with the "interior" (in-window) behavior of the app at all, despite being critically important.

If we're going to continue with the construction metaphor, I'd say it's more like creating a lovely house that has unusual door handles, windows that open in strange ways, and a different LED lighting temperature than you're used to.

Re: Stop Building Closed Ecosystems

#69
post #50

Earlier quoted context omitted.

Why is it a “sad” lesson that users have preferences that are not in line with developers?

Personally I see the ossified bifurcation between users and developers as a major defeat that perhaps I won't live to see reversed. It was not set in stone that people would be by design dumbed down progressively as computing caught on, rather than assimilated into the computing world as 1st class citizens. In a parallel universe something like the Smalltalk, LISP or Forth machines were widely adopted and the dichoto…

Yes and I’m sure that car mechanics are also tsk tsking about everyone that drives a car doesn’t know how to fix one. I’m sure they also thing that cars have been “dumbed down”.

I’ve been programming for a long time (since doing assembly in the 80s). My second job out of college was for a small company where I was a developer and also had to manage a SAN, a dozen computers that ran jobs, mail servers, ftp servers, MySQL and SQL Servers, messaging servers (MQSeries, MSMQ) etc.

Now I can just write some yaml or HCL and spin up an entire “server room”. I don’t wax poetically to juniors who never have to go through that and I even encourage them to use an even higher level of abstraction - the CDK that allows you to use code to create the yaml.

Ob Disclaimers: yes I work at AWS now (ProServe).

2nd disclaimer: while the CDK creates CloudFormation, Hashicorp ported it to work with Terraform and is cross platform.

Re: Stop Building Closed Ecosystems

#70

Earlier quoted context omitted.

There are multiple explanations for why cross-platform toolkits are kind of awful. I'm treating "cross-platform toolkits are kind of awful" as an observation here, because I've used them, I've worked with them. And my measurement for awful is poor UX, relative to native apps. Different platforms are just slightly too different from each other to make it work well. So you end up with a bunch of cross-platform apps whi…

> It is costly to just reimplement your UI for multiple platforms, but that's where the "closed ecosystems" come in. React Native is kind of a compromise between the Qt-style approach (cross-platform UX) and the native approach. You're given a framework which works with multiple native toolkits, and you can have a mix of cross-platform UI code and platform-specific UI code. I don't understand this claim at all. Qt (o…

> There are not multiple "native toolkits" on Windows or macOS.

This is just not true on Windows. What is native Windows these days? Win32? WPF? WinUI? Even if your view is that Win32 is the one true native toolkit, MS alone produces multiple abstractions over Win32 like Windows Forms or MFC.

Post reply on HN