Considering that "data centers alone consume 2% of world's enegy", I think it's worth it.
Considering that "data centers alone consume 2% of world's enegy", I think it's worth it.
The trend seems to be that we get only a little bit of extra utility out of a lot of extra hardware performance.
When the developer upgrades their PC it's easier for them to not notice performance issues. This creates the situation where every few years you need to buy a new PC to do the things you always did.
I'm not sure if that's the case, but it may be we aren't looking for utility in the right places.
Another reason is upgrades to software, which maintain general bloat, and which is hard to control; new hardware is easier. That's however is very noticeable.
On top of that, just "better" hardware - say, in a decade one can have significantly better screen, more cores and memory, faster storage; makes easier for large software tasks (video transcoding, big rebuilds of whole toolchains and apps, compute-hungry apps like ML...)
This is a frustrating part of recent laptops, but it doesn't have to be this way - my X230's keyboard is removable with a few screws.
"hardware giveth, and software taketh away"
Andy Grove and Bill gates
I have two points to comment on this matter.
Point 1: The only reason I would worry or be concerned about it is if we are using terribly-inefficient programming languages. There are languages (that need not be named) which are either 3x, 4x, 5x, 10x, or even 40x more inefficient than a language that has a performant JIT, or that targets native code. (Even JIT languages like JavaScript as still a lot less efficient because of dynamic typing. Also, in some popular complied-to-native languages, programmers tend to less efficient data structures, which results in lower performance as well.)
Point 2: If the inefficiency arises out of more actual computation being done, that's a different story, and I AM TOTALLY A-OK with it. For instance, if Adobe Creative Suite uses a lot more CPU (and GPU) in general even though it's written in C++, that is likely because it's providing more functionality. I think even a 10% improvement in overall user experience and general functionality is worth increased computation. (For example, using ML to augment everything is wonderful, and we should be happy to expend more processing power for it.)
So like 2009 compared to 2021? Based on that, I'd say even more inefficient webshit.
It takes things way beyond simply "emulating Javascript in Javascript", yet is presented so well that you barely notice the transition from current (2014) reality to a comically absurd future.
You could load and start an entire game on that thing (albeit from a ROM cartridge) in less time than a 2000-era PC took to just POST :D
So PCs were a regression in performance in that regard compared to 1980s home computers and micros.
Compared to my recent company laptop which needs at least 2 min. Even more before I can work productively. For Windows 10.
It's definitely not dependent on hardware. Even not on functionality (I do the same on both machines).
And no, software efficiency isn't even the main factor. Not even close.
Just a few pointers: polling on peripherals instead of interrupts (i.e. USB vs. PS/2 and DIN) introducing input lag, software no longer running in ring-0 while being the sole process that owns all the hardware, concurrent processes and context switches, portability (and the required layers of abstraction and indirection), etc.
It's a bit cheap to blame developers while at the same time taking for granted that you can even do what you can do with modern hard- and software.
Everything comes at a price and even MenuetOS [1] will have worse input lag and be less responsive than an Apple II, simply because you'll likely have USB keyboard and mouse and an LCD monitor connected to it.
Big projects would pretty much kill it and the occasional crash was to be expected.
Sure, firing up VS6 on more modern hardware let it fly by comparison, but then again its features paled in comparison to those available with modern VS.
On the other hand, I don't use VS anymore, since VSCode is all I need and runs faster than VS6 back then (even on my 5 year old mid-range laptop) so no complains there.
And you can't just make the walls reflective once the cold object gets smaller than the wavelength of the radiation. The colder the object, the longer that wavelength.
Souce. I have a PhD in physics where I used equipment cooled to 4K.
To be useful in a data center you could cool a slab of copper the size of a fridge and surface mount thousands of chips on it.
I can see demand in areas like graphics. Imagine real-time raytracing at 8K at 100+ FPS with <10ms latency.
Just wait 10 years?
This can equate to a faster chip because you now can do more at once. However, we hit the frequency limits a while ago for silicon. Particularly, parasitic capacitance is a huge limiting factor. A capacitor will start to act like a short circuit the faster your clock is.
Moore's law has a little more life, although the rate seems to have slowed. However, at the end of the day it can't go one forever you can only make something so small. One gets to a point they have so few atoms to constructing something useful becomes impossible. Like current transistors are finFETs because the third dimension gives them more atoms to reduce leakage current, compared to the relatively planar designs on older process nodes. However, these finFets still take up less area on a die.
Moore's law does help with efficiency to some degree, small transistors generally require less power to switch. However, most the power is last due to the miles of wiring in a modern chip when running at such high clock cycles. Again, it's the parasitic capacitance.
If you take those out, there is a very clear stagnation on that graphic.
Look at the actual transistor sizes. In 2009 we were at 32 nm. We're now in 2021, so if transistor sizes had kept halving every two years we would be at 0.5 nm. Clearly, we are not anywhere close to that--we're off by a factor of 10, and that's only with the very latest and greatest manufacturing processes that almost no consumer chips use (not to mention that the 5nm process used by AMD is not the same as a 5nm process used by Intel). As the article itself notes:
> Microprocessor architects report that semiconductor advancement has slowed industry-wide since around 2010, below the pace predicted by Moore's law.
Of course transistor companies are happy to claim that they are secretly keeping pace, but in terms of commercially available microprocessors it is unquestionably false. Anyone using the "doubling every two years" approximation to decide how much more computing power is available now than 10 years ago, or how much more will be available 10 years in the future, is not going to arrive at correct figures.
UI's will have physically based rendering and interaction.
Before this happens, I recommend having your exit strategy for the industry, living off whatever profits you made working as a developer during the early 21st century.
In my own experience performance optimization is an important but infrequent part of my job. There are other skills an elite programmer brings to the table like the ability to build a mental model of a complex system and reason about it. If downward pressure on wages occurs I think it will be for another reason.
But architecting complex systems so that they are maintainable, scalable, and adaptable... there's not gonna be enough cheap computation to solve that problem and omit top talent for a long time.
What’s truly more of a threat is AI-aided programming if that ever becomes a thing. Again, I’m not worried. The gap between telling an AI “do something that makes me $1 billion dollars” and “write a function that has properties x/y/s” or “do this large refactor for me and we’ll work together on any ambiguous cases”, is enormous. So you’ll always have a job - you’ll just be able to do things you couldn’t in the past (it’s questionable whether an AI can be built that generates programs from vague/poorly defined specs from product or even that generates those specs in the first place.
As an obvious counter example to your theory, we have CPUs that are probably 10000x more powerful than in 1980 (actually more if you consider they have processing technologies that didn’t even exist back then like GPUs and SIMD). The software industry is far larger and devs make more individually.
Technically SIMDs and GPUs existed back then but in a much more immature form, being more powerful, cheaper and widespread today than what was available in the 80s.
If you gave me a processor that could run instructions instantly, my product's release would at best be brought forward 1-2 weeks.
The largest efforts in programming are to do with translating requirements into code. Efficiency is a part of that, and there are obviously problems where it dominates, but there are many other difficulties even when it isn't.