Live data from Hacker News

How might software development have unfolded if CPU speeds were 20x slower?

news.ycombinator.com

141–150 of 161 posts

Re: How might software development have unfolded if CPU speeds were 20x slower?

#141

Earlier quoted context omitted.

It’s kinda like adding lanes on the freeway: for a time traffic is nice but people get used to it and then more people start driving and it becomes just as congested as it was before.

Good observation. I believe the name for that is "induced demand".

No, that's not what induced demand is.

Induced demand is the idea that if you upgrade things, people will use it more (duh). (And it will need upgrading again shortly)

The post you're replying to is just how benefits of improvements scale off with time.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#143

I feel like every time CPU speeds double, someone comes up with a Web UI framework that has twice as much indirection. With 20x slower compute, we might not have UIs that fire off an event and maybe trigger an asynchronous network request every time you type a character in a box, for example. Windows 95 could do a decently responsive desktop UI on an 80386. Coding was a lot less elegant in one way - C code that retur…

"It doesn't matter how much faster you make the hardware, the software guys will piss it away and then some more." - Unknown

Edit: Thanks to the other comments, I can see it's a crude re-stating of Wirth's Law [0]

0. https://en.wikipedia.org/wiki/Wirth%27s_law

Re: How might software development have unfolded if CPU speeds were 20x slower?

#145

Earlier quoted context omitted.

Keep in mind, the thing that matters most for tigerbeetle’s speed is they are domain specific. They know exactly upfront how data looks like. They don’t have to be general purpose. The style of programming does work for general purpose computing, but their requirements enable a significant % of “orders of magnitude faster than postgress”.

While your take makes sense, I feel like even general purpose programming frameworks should be orders of magnitude faster for what they are doing.

Definitely! It's just your benefits aren't going to be "all" the orders of magnitude speedups, just some of them. And I agree, that's nothing to shy away from.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#146

Earlier quoted context omitted.

> Or, are we simply re-inventing the wheel each time, where the set of features over the last few decades really haven't change that much or cycles through featureset phases. The problem space is much larger now than it used to be. 20 years ago, you didn't care about things like responsive design, accessibility, fractional scaling, even internationalization was basic/non-existent. There's a long tail of features (oft…

I would expect some overhead, but none of the features you describe seem to justify performance hit apps have taken.

Performance is a feature just like any other. Customers are looking for a good combination of features, including performance. At some point, the feature (in this case performance) is good enough, and it doesn't make economical sense to improve it.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#147
post #106

Earlier quoted context omitted.

That genuinely seems platform-specific. Should be easy enough to write a patch to add support for $other_system.

According to the talk I watched, tigerbeetle makes heavy use of io_uring on linux - which isn't part of POSIX. Adding freebsd support should be pretty easy. If it supports darwin, it'll probably already have an implementation built on top of freebsd's kqueue. Its probably just a case of wiring it up to use kqueue when built for freebsd.

Yes, that was my impression as well when I looked at it yesterday. The monotonic_linux() bit that's quoted is platform-specific because it uses CLOCK_BOOTTIME with clock_gettime(), but that seems supported on BSD systems as well. It's probably just that no one tried to run it, and no one spent any effort on it. I can't find a single mention of "BSD" in the issue tracker.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#148

Earlier quoted context omitted.

I do wonder about this often. Are these new UI frameworks iterating upwards towards some unknown featureset archetype, where if given another 10-20 years, the designers will say "Okay, we've reached diminishing feature returns, let's pack it up and optimize" Or, are we simply re-inventing the wheel each time, where the set of features over the last few decades really haven't change that much or cycles through feature…

> Or, are we simply re-inventing the wheel each time, where the set of features over the last few decades really haven't change that much or cycles through featureset phases. The problem space is much larger now than it used to be. 20 years ago, you didn't care about things like responsive design, accessibility, fractional scaling, even internationalization was basic/non-existent. There's a long tail of features (oft…

Microsoft specifically cared about all that, way more than 20 years ago - Windows, for all the criticism it takes, from early days had internationalisation (they wanted to sell across the world after all), accessibility features, ways to adapt to different screen and DPI sizes etc. I think Explorer windows since at least Win 98 did something responsive-ish in that various side bars/panels would disappear if you made the window narrow enough. Of course, the icons would rearrange themselves into fewer or more columns as you resized the window too.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#150

Earlier quoted context omitted.

Yeah, the interface builders back then are also unsurpassed to this day. Much as I have my issues with VB as a language, the way you could build a GUI with a GUI was amazing. Better still, it worked back on school computers that of course didn't have any "programming" tools, but did come with MS office and the full VB "experience" installed for some reason.

Just curious, what is preventing people from creating something similar to VB6 and Delphi in modern days? Different underlying frameworks? But I'm sure VB6 still sort of works on Windows 10 (VBA).

Depends what you mean by "similar to VB6/Delphi".

The VB6/Delphi era (called at the time RAD for Rapid Application Development) was oriented around proprietary UI and component frameworks. They were planned out a long way in advance and solved a lot of problems up front, but, they were tied to Windows and then you had to buy the dev tools on top.

These days people usually want to write web apps if they aren't doing mobile. The web as a UI framework is basically evolved rather than designed. The features you need to support RAD don't exist. Moreover the web UI community would view them as bad practice!

RAD tools were typified by a few things:

1. A standard way to define components that is statically reflectable (so you can populate property and event editors), and get documentation on the fly, etc.

2. MVC: a standard way to separate code from layout.

3. Layout management that's integrated with the component hierarchy.

4. A standard toolbox of high quality, high effort components.

5. A marketplace for components (which means they need to be distributable in binary form).

The web has none of this and isn't going to any time soon. For example, there's no agreement on how components work. React has one or more different solutions, Web Components is a different one, Vue yet another. MVC has been abandoned: React doesn't know anything about that. Code and layout are intermingled together. JavaScript is dynamically typed, largely reflection-free language. You can't automatically work out what the props are for a React component short of parsing the source code. You can't easily distribute proprietary components either because there's no way to enforce licensing (so a lot of users wouldn't pay, in reality).

And then there's the components. Browsers don't provide good enough components out of the box, unlike Windows-oriented RAD tools, so devs have to invent their own. Then React makes things worse by conflating theming with the component library. The result is that every web app has its own unique set of widgets with its own unique set of limitations and bugs, very few of which ever reach a high quality level. Widget development is expensive, which is why RAD tooling centralized it and supported a marketplace, so devs could amortize out the cost of writing widgets across many projects. The whole React/Jetpack Compose approach basically spurns all of that and says if you want to change the way your app looks you get to redevelop the widgets from scratch. And everyone does want that, so there are floods of duplicated work that's open sourced and then abandoned, but nothing ever gets critical mass.

Post reply on HN