Ask HN: How would software look if hardware had stopped improving long ago?
21–30 of 51 posts
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#22> We would not have cryptocurrencies or NFTs Yes we would - that doesn't need much hardware at all. Maybe 1998 hardware (Pentium II type thing) at most? Bearing in mind security algorithms used would be scaled down anyway to suit the lower hardware in the hypothetical scenario, and hash rate would of course be lower.
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#23Hardware improvement slowed down considerably in the last 10 years. A Core i7-3970X from 2012 is still comparable to a typical notebook processor, or the fastest smartphone chips today, including the one in the Meta Quest Pro that was just announced. But imagine the same happening between 1992 and 2002. 10 years there meant fundamental incompatibility. A 486 computer with 8 MB RAM and VGA graphics card was already a…
Not really. Compare a E5-2690 (same Sandy Bridge core as the 3970x just a bit lower clock) to a Mac M1: https://www.anandtech.com/show/11544/intel-skylake-ep-vs-amd... versus https://www.anandtech.com/show/11544/intel-skylake-ep-vs-amd...
The M1 is more than twice as fast in many SPECint subtests, such as 403.GCC and 464.h264ref. That’s just integer code, nothing that would exercise the vector units or anything like that.
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#24IMHO it boils down to a single issue. Net time saved through automation. Consider an equation, for Task X with Software Y that is built to run on the hottest new machine coming out in the next 18 month cycle.
Told = Time task X will take without software Y
Tnew = Time task X will take with software Y + upgraded CPU
Tgross = gross time saved by installing Software Y + upgraded CPU (this is calculated as Told - Tnew)
Twaste = Time wasted through wonky installation, bugs, maintenance, build system problems, dependency hell of software Y + cpu upgrade
Tnet = Tgross - Twaste --> this is the only reason people use software. Does it, on the whole, save time?
So if a task X used to take 1000 hours, but with software Y on an upgraded CPU it takes 500 hours, but it requires 50 hours of waste, thats 500 gross hours saved, but 450 net hours saved.
https://smoothspan.files.wordpress.com/2007/09/clockspeeds.j...
When CPUs were speeding up by 2x every few years, then this equation was dominated by Tgross. Twaste was very small in comparison so users would tolerate alot of Twaste. Twaste was basically ignored for 20+ years.
Nowdays, CPUs are not speeding up much at all. Tgross is struggling to be anything significant. In fact sometimes, Tgross is -lower- than Twaste. So overall it doesn't even make sense to upgrade the software and CPU. So now the only thing in that equation we can improve upon anymore is Twaste.
That means nowdays, we want software that is easy to install, does not have dependency problems, does not have build problems, does not have memory bugs, or security flaws, and doesnt require tons of maintenance.
Go and Rust both improve on all those aspects versus older languages.
"what about parallelism" -> as you may know, slapping N CPUs on a board does not boost speed by N times. And there is an enormous amount of Twaste in the debugging since complexity of thread interaction has gone up by N something. With single thread CPU, Twaste remains constant. With a N-Cpu system, Twaste goes up in some proportion to N. So to get any savings you still need to attack Twaste, and that is done by intrinsic parallelism features built into the language, which both Rust and Go have to various extents.
caveat i have no idea if this is right i just made it up.
edit - this model also explains the Thin Client theory we are seeing which Comevus described below. Web is basically Thin Client theory finally successful after 40 years of PC domination. Web = lower Twaste - almost no dependency, no installation problems, no maintenance on user side.
this also explains containers. Containers try to attack Twaste for systems built on languages made for a Tgross world, like python and C and javascript.
another edit -> does this mean PC is dead forever? no. i forgot one major component of Twaste, which is dealing with bureaucratic waste of people trying to control what other people are doing on a computer. This form of Twaste dominated a lot of the old pre-PC days of computing, like monopolization, discrimination, racism, sexism, favoritism, nepotism, corruption, and all the other waste that humans insert into a process because , contrary to some popular opinions, a lot of human beings make their living off Twaste, not off Tgross.
So at some point the bureaucratic nonsense makes Twaste so large that even a small Tgross is better. So PC is not dead by this theory. Never fully dead anyways.
The end
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#25Re: Ask HN: How would software look if hardware had stopped improving long ago?
#26More market pressure to reinvest in the inner software stack would have taken place, a move which actually would have commoditized out incumbent platform monopolies earlier(Microsoft et al.) - there would be less of a web focus and more of a systems/apps one.
There would still be an unhealthy adtech/surveillance sector, but it would consolidate under the thumb of high-capital players more readily. This would actually encourage more P2P-style solutions to appear in response. You would still have proof-of-work algorithms floating around searching for applications in this space; Bitcoin was always possible, the computing effort just reflects what proportion of physical capital is being deployed to secure transactions.
The obvious main downside would be with more extravagant uses of ML. Apps that depend on it as the core tech wouldn't pencil out. But some version of "algorithm-mediated" would still be possible.
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#27Rust would have a much harder time because its compilation is computationally very heavy and would take ages. Similarly C++ might be much slower to adopt new features because the compilers would just get too slow.
Dynamic languages like Python and Ruby may spend more effort on performance and JIT compilation rather than new features.
Or perhaps those hardware limitations would spark more innovation and breakthroughs.
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#28Earlier quoted context omitted.
>But to answer your question if we would have been stuck with 1992 technology the internet would have evolved differently, and mainframes would play a much bigger role, to the point that your desktop computer would be just a thin client, running the latest amazing software accelerated by mainframe computers. You would submit jobs from your computer, the mainframe would calculate it and get back to you. We're kind of…
Or startups like Mighty.app where, if your computer is too slow to run Chrome, just stream Chrome from the cloud. I just...don't even know what to say.
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#29Almost nothing would be different at a glance. All the major trends that took place, with very little exception(VR, for example, still pushes hardware; and ML-based AI likewise), were already possible with mid-2000's hardware, just at lower fidelity, with less generous unit economics on the backend, and with less power efficiency on portable devices. This may have moved the attempts to run such services back by a few…
Re: Ask HN: How would software look if hardware had stopped improving long ago?
#30Twitter might be in the form of typing out a SMS to a certain number, and it would all be plaintext.
I think the main effect would be in developing countries. Currently, the poor buy an iPhone instead of a TV and a car, and the phone gives them job security and entertainment. They'd probably be working different kinds of jobs - demand for office work like clerks might be 8x or so, considering that you can't automate things like government processes.