Live data from Hacker News

Software Disenchantment (2018)

tonsky.me

391–400 of 504 posts

Re: Software Disenchantment (2018)

#391
Most of the issues outlined are problems of the web. The HTML+CSS+JS combo is just painfully slow and wasteful by design - it's just way too many levels of flexible abstractions. Which is suboptimal for app development. Moreover it's expensive to maintain two apps - web and native - which share have the exact same UI/UX. Hence the rise of Electron, React Native , ...

The only way out of this is to rethink the web. Which is a hard one to tackle.

Re: Software Disenchantment (2018)

#392

From a Reddit comment: > While I do share the general sentiment, I do feel the need to point out that this exact page, a blog entry consisting mostly of just text, is also half the size of Windows 95 on my computer and includes 6MB of javascript, which is more code than there was in Linux 1.0. Linux at that point already contained drivers for various network interface controllers, hard drives, tape drives, disk drive…

The sad thing is, to quote The Website Obesity Crisis[1],

> Today’s egregiously bloated site becomes tomorrow’s typical page, and next year’s elegantly slim design.

[1] https://idlewords.com/talks/website_obesity.htm

Re: Software Disenchantment (2018)

#393
Here's why I'm slightly annoyed by articles like this one. Oftentimes the "Software is slow" mantra rings true, but here's the thing: everyone repeating it claims it's the shit further down the stack that's the cause of the slowness, this is often untrue. V8 is fast; it's your shit JS code that is slow. PostgreSQL is fast; your shit queries are slow. We live in the age of the Stack Overflow programmer. Think about it for just a second, what requires the most competency? Writing V8 or PostgreSQL, or churning out some JS for a web app or Electron? It's not the programmers working on the former that is not concerned about performance. They spend considerable effort on it.

The least competent programmers are the once writing slow code. The least competent programmers are the ones working at the top of the stack.

Re: Software Disenchantment (2018)

#394

From a Reddit comment: > While I do share the general sentiment, I do feel the need to point out that this exact page, a blog entry consisting mostly of just text, is also half the size of Windows 95 on my computer and includes 6MB of javascript, which is more code than there was in Linux 1.0. Linux at that point already contained drivers for various network interface controllers, hard drives, tape drives, disk drive…

Since this Reddit comment was made, the Twitter iframe responsible for the megabytes of JavaScript has been replaced by a tag. The only JavaScript left on the page is Google Analytics, which is way less than 6MB.

Re: Software Disenchantment (2018)

#395

Earlier quoted context omitted.

What is better? Jquery? It comes with its own can of worms and React designers had solid reasoning to migrate away from immediate DOM modification. In general UI is hard. Nice features like compositing, variable width fonts, reflow etc come with the underlying mechanisms that are pretty complicated and once something behaves different to the expectations it might be hard to understand why.

jQuery: 88KB, standard everywhere, one entity responsible for all of it, people know what it is and what it does, if it breaks you know what went wrong and who to blame. Literally anything built with NPM: megabytes? tens of megabytes? in size, totally inscrutable, code being pulled in from hundreds of megabytes of code in tens of thousands of packages from hundreds or thousands of people of unknown (and unknowable) c…

That's a problem with the npm ecosystem.

React is just so, so much nicer to work with. It's easy to be dismissive if you've never had to develop UIs with jQuery and didn't experience yourself the transition to React which is a million times better in terms of developer experience.

I feel like people that don't build UIs themselves think of them too much in a completely functional way as in "it's just buttons and form inputs that do X", and forget about the massive complexity, edge cases, aesthetic requirements, accessibility, rendering on different viewports, huge statefulness, and so on.

Re: Software Disenchantment (2018)

#396
post #20

> Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? I think the analogy here is backwards. The better question is "how much would you prioritize a car that used only 0.05 liters per 100km over one that used 0.5? What about one that used only 0.005L?". I'd say that at that point, other factors like comfort, performance, base price, etc. become (relatively) much more important. If bas…

The analogy is wrong as well because a car engine is used for a single purpose, moving the car itself. Imagine if you had an engine that powered a hundred cars instead, but a lot of those cars were unoptimized so you can only run two cars at a time instead of the theoretical 100.

or... something.

The car analogy does remind me of one I read a while ago, comparing cars and their cost and performance with CPUs.

Re: Software Disenchantment (2018)

#397
post #122
post #82

Earlier quoted context omitted.

Virtually all of my accidental inputs are caused by application slowness or repaints that occur several hundred milliseconds after they should have. I want all interactions with all of my computing devices to occur in as close to 0ms as possible. 0ms is great; 20ms is good; 200ms is bad; 500ms is absolutely inexcusable unless you're doing significant computation. I find it astonishing how many things will run in the…

How about the i-am-about-to-press-this-button-but-wait-we-need-to-rerender-the-whole-page. At which point you misclick or not at all. Especially some recent shops and ad heavy pages use this great functionality ;)

Twitter on mobile.....

Re: Software Disenchantment (2018)

#398
In the past, there were elixirs that claimed to cure baldness, impotence, cancer, etc. Marketing based on unproven claims was legal, and everyone was doing it.

Software today is in the snake oil era. "Secure", "privacy-friendly", "robust"...

We need the government to create the FDA of software, to protect the consumers against potentially harmful software, marketed using false advertisement.

We also need job applicants to be protected against predatory companies that hire people that want to do right by the customer, but are forced to produce rushed, poor quality stuff.

Re: Software Disenchantment (2018)

#399

Here's why I'm slightly annoyed by articles like this one. Oftentimes the "Software is slow" mantra rings true, but here's the thing: everyone repeating it claims it's the shit further down the stack that's the cause of the slowness, this is often untrue. V8 is fast; it's your shit JS code that is slow. PostgreSQL is fast; your shit queries are slow. We live in the age of the Stack Overflow programmer. Think about it…

yea, I don't like articles like this for the same reason. nobody has the brain power (yet) to rewrite the entire stack in a gpu shader and add in complex logic and a dynamic interface. it's an optimization vs delivery tradeoff. If someone is getting payed to build a product, they must deliver it with the tools at hand, you can invest time to optimize it but it will come at a cost of less features. This also depends on the industry, if you are building lower stack drivers that others will depend on, you care about performance more. Higher level applications are more user oriented and care more about ui and features. organically, people tend to spend their time and braincells in the most valuable way they can. a lot of products, especially in the web world, features hold more value than performance. Once we get the agi thing going, we can just task it to strip and redesign the entire OS down to the kernel and tailored for every user, strip everything down to only the buttons that the user clicks. some granny only knows how to open up google and read her newspaper website, all that other code can be removed lol.

Re: Software Disenchantment (2018)

#400

Earlier quoted context omitted.

What is better? Jquery? It comes with its own can of worms and React designers had solid reasoning to migrate away from immediate DOM modification. In general UI is hard. Nice features like compositing, variable width fonts, reflow etc come with the underlying mechanisms that are pretty complicated and once something behaves different to the expectations it might be hard to understand why.

jQuery: 88KB, standard everywhere, one entity responsible for all of it, people know what it is and what it does, if it breaks you know what went wrong and who to blame. Literally anything built with NPM: megabytes? tens of megabytes? in size, totally inscrutable, code being pulled in from hundreds of megabytes of code in tens of thousands of packages from hundreds or thousands of people of unknown (and unknowable) c…

It Depends, as always. The problem React was originally solving was that DOM updates cause re-rendering which can be slow; jquery (usually) works directly in the DOM, so applications heavy in updates don't perform well.

So initially an equivalent React and jQuery app would have React look a lot faster, due to smart / batched DOM updates. However, because React is so fast it made people create apps differently.

As always in software development, an application will grow to fill up available performance / memory. If people were to develop on intentionally constricted computers they would do things differently.

(IIRC, at Facebook they'll throttle the internet on some days to 3g speeds to force this exact thing. Tangentially related, at Netflix (iirc) they have Chaos Monkey which randomly shuts down servers and causes problems, so errors are a day to day thing instead of an exception they've not foreseen).

Post reply on HN