Live data from Hacker News

Prime Video Uses WebAssembly

amazon.science

231–240 of 254 posts

Re: Prime Video Uses WebAssembly

#231
post #189
post #151

Earlier quoted context omitted.

While Obj-C had a massive influence to java, I'd not call it clone - even Java 0.9 is a lot better language than Obj-C of 2010 (or so). The saving grace of Obj-C - it could include normal C just like that.

Well, https://cs.gmu.edu/~sean/stuff/java-objc.html And Java EE started as an Objective-C project, https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere

Swing also seems to be heavily inspired by AppKit.

Although leaving out messaging and leaving in both int and Integer are weird choices if their language was supposedly inspired by Smalltalk/ObjC.

Re: Prime Video Uses WebAssembly

#232
post #215

Earlier quoted context omitted.

I feel the conversation will just cycle if we try to push people to the poles of opinion and insult them. Accidental complexity is an enormous, pervasive problem across all software stacks. The ratio of lines of code to pixels on the screen is pretty bonkers. Since you mention Apple, if you look at the ratio of lines of code per pixel, it's really hard to understand how an OS weighs in at 10GB, even for Apple which i…

Your whole line of comments is equivalent to "No offense, but.." -> proceeds to offend. Especially with your "buttons and doodads" comment. I wasn't even trying to get personal, but If you're going to hit, be prepared to take a hit. ------------ Never once has the weight of my OS been a concern for me, and I'm going to make the assumption that is the general case for the majority of users. Never once have I heard the…

>> I feel the conversation will just cycle if we try to push people to the poles of opinion and insult them.

> Your whole line of comments is equivalent to

You're doing exactly what I won't respond to, which is pushing me towards an extremist position I did not, in fact, state. I'll point you to the guidelines ( https://news.ycombinator.com/newsguidelines.html), which states:

> Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith.

And I won't be responding further.

Re: Prime Video Uses WebAssembly

#233

Earlier quoted context omitted.

If you're already very successful, why would you spend a lot more money to produce a buggier product that will generate a lot more customer support requests and cost a lot more money in engineering effort to maintain forever going forward? It just makes no business sense. This reasoning is even less justifiable in the context of WASM which is quite performant.

I'm not following. This assumes that, generally, native apps are more buggy. Why? This is contestable at best, or getting it the wrong way around at the worst. Perhaps at the hands of inexperienced developers it's right. But experienced developers coding in native APIs will probably produce an app with fewer bugs. And we are talking about a billion dollar company. It can afford a handful of really good native develop…

> This assumes that, generally, native apps are more buggy.

They are, not because "native" code is inherently buggier but because the amount of code that needs to be written is multiplied by every platform you have to support to replicate the same experience per platform; more code = more bugs, and you have to handle all the nasty edge cases that are specific to each platform: a major increase in bugs is assured.

> And we are talking about a billion dollar company.

The size of the company doesn't matter, it makes no sense to massively increase the cost, complexity and staff size needed to support an existing product that's already massively successful.

> Cross-platform toolkits introduce their own class of bugs, which might require patches upstream to resolve, or annoying local forks.

This is true of literally any external source code you import into your project. However, if you re-invent the wheel you have to pay to fix it rather than having it fixed upstream for free.

Re: Prime Video Uses WebAssembly

#234

Earlier quoted context omitted.

If you're already very successful, why would you spend a lot more money to produce a buggier product that will generate a lot more customer support requests and cost a lot more money in engineering effort to maintain forever going forward? It just makes no business sense. This reasoning is even less justifiable in the context of WASM which is quite performant.

Because Apple has proven that people will actually pay for reinventing something but better and more polished. And you call it a buggier product, but if you have a dedicated team working on a native app for platform X, that team can become the expert on platform X, work around and fix all its caveats, and beat the competition on everything forever. I mean granted, for a lot of companies, having a substandard or subop…

> Because Apple has proven that people will actually pay for reinventing something but better and more polished

The massive popularity of React Native on the iOS platform suggests there's more to the story. Discord, Slack, Spotify etc might also beg to differ; all electron apps, all the most dominant players in their respective markets. Consider all the massive gaming successes on the Unity platform?

The deference to native purity is an engineering conceit not something that users actually care about except in rare cases.

Re: Prime Video Uses WebAssembly

#235

Earlier quoted context omitted.

Hey, I share your passion for human interfaces - huge kudos to you. I built the main interface for the redesigned Amazon Photos iOS app and went through a lot of the things you mentioned - totally agree that it pays off. If you ever want to chat over coffee my email is johnanthony.dev@gmail.com

I share that passion too! Most people grossly underestimate how difficult it is to implement something as seemingly simple as a text field or menu, when there are so many hidden issues and techniques that make them easy to use because you don't notice all the support you're getting. Well implemented user interfaces have polish that makes their inherent complexity invisible, but polish is actually millions of tiny lit…

Thank you so much for this treasure trove of links! This is exactly the kind of stuff I love learning about. Looking forward to going over this in my free time.

Re: Prime Video Uses WebAssembly

#236
post #199

Earlier quoted context omitted.

Flutter on the web uses the DOM? I seem to recall discussing here on HN with people from the Flutter team how they didn't use the DOM on purpose.

> Flutter on the web uses the DOM? Yes. On the web it actually has 2 renderers, a HTML (which uses the DOM) and a Canvas based one (which doesn't). But I mostly wanted to write about what's the case with React - I just wrote quickly and also kept the reference to Flutter from the parent comment which mentioned them together...

Thanks, I didn't know about the HTML renderer.

Is there any demo online?

Re: Prime Video Uses WebAssembly

#237

Earlier quoted context omitted.

The key point of the comparison is than in React, as in immediate mode, you tell what you want shown every time (for every "frame") as opposed to having references to and controlling instantiated widget objects (an object graph). In React's case, you tell it declaratively (your JSX component tree) with some procedural stuff thrown in (JS parts in the JSX). In classical immediate mode, by calling paint functions. But…

Your own comment makes it pretty clear that React is not immediate mode. Not the immediate mode that everyone understands anyway. Your "traditional immediate" and "react immediate" are just terms you made up. React is clearly a different thing to immediate mode and retained mode. You don't have to cram everything into those two categories. We could do with a word for it though. I don't think the guy you linked is a R…

>Not the immediate mode that everyone understands anyway. Your "traditional immediate" and "react immediate" are just terms you made up.

The terms, yes. The descriptions and understanging of React (as an immediate mode wrapper over DOM) is shared across the community, all the way to Wikipedia:

"One way to have the flexibility and composability of an immediate mode GUI without the disadvantages of keeping the widget tree only in function calls, with the lack of direct control of how the GUI is drawn in the rendering engine would be to use a virtual widget tree, just like React uses a virtual DOM".

What you're arguing is little details about "how things were always done in immediate land" as this was set in stone.

Well, React and descriptions of the UI such as SwiftJS, also shown that you can apply the immediate UI concept to something other than direct drawing calls - namely, controlling a retained mode UI underneath with the same logic you'd call paint functions (or abstract them to "drawButton" and such).

It's not that you're wrong. It's just that you're right about the trees, not the forrest. It's the concept that matters, not the implementation details -- which is like complaining that "Linux can't be UNIX, it doesn't derive from ancient blessed code". Yeah, but it's still UNIX to everybody - and in fact today's de facto UNIX.

>I don't think the guy you linked is a React Dev.

I didn't say he was. In fact it says up there on the tweet he's doing Aurora, and that in that he was inspired from React and its immediate mode approach (he's the guy behind Lighttable/Aurora/Eve).

Re: Prime Video Uses WebAssembly

#238
post #52

The egui framework they mention is pretty neat: https://emilk.github.io/egui/ It an entirely custom toolkit, so don't expect it to have a native look and feel, but it's a GPU-first design with multiple back-ends. It can be used in native OpenGL apps too. It's an immediate-mode UI, so it's very easy to build and update even complex windows. Great choice if you want to prototype a game.

Is the font rendering awful for anyone else? Firefox on Windows fwiw

Re: Prime Video Uses WebAssembly

#239
post #51

Earlier quoted context omitted.

" But why , though?" I keep asking myself, from a "how many darn buttons and doodads does it really need to have?" perspective. I suspect the issue is that people write entirely too much dang code to solve what is, after all, a fairly simple UI problem [1]. I mean, seriously. The Alto had less than a megabyte of RAM and managed to invent the GUI--menus, mouse, all. How have we managed to make this harder in 40 years?…

Because it's not just buttons and doodads, it's all the error handling and loading indicators and UI edge cases that are needed to make it seamless and good. Title too long? Does it get truncated or shrunk? Does the UI reverse itself for RTL languages? Does the focus ring move in a sensible order? This is front end engineering. It's a whole profession, and when it's done poorly, folks think your software is garbage.…

But I still think prime video, Netflix, Apple TV, etc are still garbage. They are woefully inconsistent, laggy, etc despite it “being it’s own profession”.

I think the fact that it is its own profession is part of the problem. Every company feels the need to reinvent the wheel.

Re: Prime Video Uses WebAssembly

#240
post #189

Earlier quoted context omitted.

Well, https://cs.gmu.edu/~sean/stuff/java-objc.html And Java EE started as an Objective-C project, https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere

Swing also seems to be heavily inspired by AppKit. Although leaving out messaging and leaving in both int and Integer are weird choices if their language was supposedly inspired by Smalltalk/ObjC.

Performance mostly.
Post reply on HN