Live data from Hacker News

Stop Building Closed Ecosystems

buttondown.email

31–40 of 174 posts

Re: Stop Building Closed Ecosystems

#31
post #25

Earlier quoted context omitted.

The Rust ecosystem (with cosmic text and parley) is well on the way to achieving this

Rust does well on the text-shaping and glyph rendering, but the rest of the ecosystem is still massively geared towards Windows and game development. I am rooting for Vello to succeed!

What would you say is state of the art for Rust-native text rendering on the web?

I'm aware of ab_glyph, used by e.g. https://www.egui.rs/ but it looks noticeably non-native to my eyes. For one there seems to be no hinting. So text ends up blurry at 96dpi, and since a glyph stroke is thinner than a pixel the text always appears slightly faded, never able to reach fully black or white.

I wish these libraries would just use native APIs on each platform to render text, then all these problems would already be solved by the OS/browser. Though I'm not sure if the web has good APIs for that.

Maybe there's something better in Rust these days that I missed?

Re: Stop Building Closed Ecosystems

#32

Earlier quoted context omitted.

The native side of things has been address very badly by cross platform tools. I don’t want lowest common denominator shitty cross platform apps.

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 which are built on things like Electron. You more or less reject platform expectations for how apps should work, how they should look, or how they interact with other apps / other parts of the system.

You end up with stuff like Spotify or Discord.

Thing is--if I'm getting work done with this app, if I get paid for working with it, I'm going to pay for a better experience. Instead of using GIMP, I'll use Procreate, Photoshop, Pixelmator, whatever. Maybe I'll use Notepad++ or BBEdit. Maybe I'll buy Pro Tools despite its cost, or maybe I'll buy a Mac just so I can use Logic.

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.

Re: Stop Building Closed Ecosystems

#33
post #6

This is my main fear with Flutter CanvasKit & "Towards a Modern Web Stack". https://hn.algolia.com/?query=%22Towards%20a%20modern%20web%... They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen. The best open ecosystem we have on the planet is…

> They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen.

This is effectively what Flutter does on other deployment targets as well, building a framework and high-level primitives on top of the host's low-level primitives, and in the process abandoning everything good about native frameworks and primitives for the sake of a Google-controlled runtime.

It's why Flutter apps feel so janky and awkward, and the same will be true of the web runtime.

Re: Stop Building Closed Ecosystems

#34

Earlier quoted context omitted.

The native side of things has been address very badly by cross platform tools. I don’t want lowest common denominator shitty cross platform apps.

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?

Look at WebGPU. Still a WIP, but it shows that you really CAN provide a performant cross-platform... platform if you're really thoughtful about performance

Re: Stop Building Closed Ecosystems

#35
post #14

Earlier quoted context omitted.

Attractive-for-the-developer ideas are fine but attractive-for-the-user dominates. That's the sad lesson since the 80s and 90s OS wars and the early dominance of the market over the committee-standards that happened repeatedly with databases, with web browsers, with text editors, with spreadsheets, etc etc.

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

It's sad for developers, I guess ;)

Re: Stop Building Closed Ecosystems

#36
post #4

The main problem is who gets to decide on the one anointed approach. Diversity ends up being a good thing, and also makes everything more messy and more complex. Take your example of the Open Web. I wouldn't be in software without the Open Web. I hand-write HTML and CSS to this day! But many people hate the web stack. They hate the ergonomics and enjoy better ecosystem for nearly every possible thing implemented in t…

> I hand-write HTML and CSS to this day!

Yeah but... for your job? I'm sure we all do those side projects, but hard to imagine being able to do that on a complex multiple-member team project

Re: Stop Building Closed Ecosystems

#37
post #36
post #4

The main problem is who gets to decide on the one anointed approach. Diversity ends up being a good thing, and also makes everything more messy and more complex. Take your example of the Open Web. I wouldn't be in software without the Open Web. I hand-write HTML and CSS to this day! But many people hate the web stack. They hate the ergonomics and enjoy better ecosystem for nearly every possible thing implemented in t…

> I hand-write HTML and CSS to this day! Yeah but... for your job? I'm sure we all do those side projects, but hard to imagine being able to do that on a complex multiple-member team project

I think writing a React component using JSX counts as "hand-written" HTML and CSS. Definitely when you're writing the low-level components that other stuff is built on.

Re: Stop Building Closed Ecosystems

#38
I think about these frameworks as products. They are meant to solve specific problem for specific audience. I also think we need to start differentiating between different classes of developers. I think a good analogy is car mechanic vs mechanical engineer. when a car is made there will be a lot of need for mechanical engineering. Once it's on the road and needs to be fixed is when car mechanic comes into play. You need to decide whether you want to be mechanical engineering or a mechanic - skillet is very different.

Re: Stop Building Closed Ecosystems

#39

Earlier quoted context omitted.

The native side of things has been address very badly by cross platform tools. I don’t want lowest common denominator shitty cross platform apps.

Then, on the other hand, you'll rarely see Linux ports. Lowest Common Denominator apps have been a blessing for Linux users - we would have never had Visual Studio Code, Slack, Postman, and who knows what else otherwise; and you can't tell me any of their developers would've done the work to port everything to GTK or Qt otherwise.

Isn’t that a problem that Linux only has crappy cross platform apps that are not as good as native apps?

Why would I run a Linux box as my daily driver instead of a my Mac that is real Unix, has a 16 hour battery life and I can get great polished native apps?

Re: Stop Building Closed Ecosystems

#40
post #6

This is my main fear with Flutter CanvasKit & "Towards a Modern Web Stack". https://hn.algolia.com/?query=%22Towards%20a%20modern%20web%... They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen. The best open ecosystem we have on the planet is…

> They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen. This is effectively what Flutter does on other deployment targets as well, building a framework and high-level primitives on top of the host's low-level primitives, and in the process ab…

It's going to run fine everywhere. It's going to work.

As a native app strategy I think it's fine. It's immaterial, if it works. But on the web, it is damage. It breaks all user agency, wrecks all extensions, breaks accessibility extensions, prevents scraping. It's a closed world, and the web doesn't deserve this native app mistreatment.

Post reply on HN