10 ms·
A problem with this from my point of view is that while hardware engineers did an incredible job increasing the processing power of our thinking rocks, us softw
by simias 5y ago
A problem with this from my point of view is that while hardware engineers did an incredible job increasing the processing power of our thinking rocks, us software devs did a tremendous job of squandering 90% of it away. Of course there also are market incentives for doing so (time to market, dev costs etc...).
Empirically it seems that software simply doesn't scale as well as hardware does. I feel like this overhead would make "smart dust" impractical.
Or I guess I could put it that way: one hand hand you could be impressed that a modern light bulb can run Doom, on the other you could be alarmed that you need a Doom-capable computer to run a modern light bulb.
- noir_lord 5y agoThe problem is that the extreme effort to optimise hardware pays off for everyone, the extreme effort to optimise "random software project" rarely does (unless random software project is a compiler/kernel of course). So the RoI is just different.
- neolog 5y agoBrowsers too
- noir_lord 5y agoIndeed, browsers are a good example of ubiquitous software.
- funcDropShadow 5y agoAnd they contain a compiler and almost an operating system ;-)
- pwagland 5y agoWell, yes and no… as always! The trick is that you probably don't need all, or even most, of that power to run the light. Sure the Zigbee protocol is _probably_ being done via software, and not a dedicated chip, but even then. The big thing is that this chip is most likely so cheap, especially in bulk, that it doesn't make sense to get the "cheaper" variant, even if that was still available. This is kind of supported by the "new" Trådfri having an updated chip, even though the Trådfri line never changed it's capabilities, it was probably cheaper to get the new more powerful chip and/or they could no longer get the old one with a five year supply guarantee.
- a10c 5y agoIn a similar vein, from memory the i3, i5 & i7 chip is absolutely identical in every physical way from a manufacturing point of view, except that the less powerful chips have cores / features disabled.
- pc86 5y agoI have to wonder why this is done. I know it must make sense or it wouldn't be done, I just don't understand it. If you're intentionally disabling functionality in order to sell at a lower cost, you're not actually saving any money because you still have to manufacture the thing. It also (I assume) opens up a risk to someone finding out how to "jailbreak" the extra cores and now you can buy an i7 for the price of an i3. Is the cost of having three different manufacturing processes so large that it's not worth switching? Is the extra revenue from having three different versions of the same physical chip enough to justify the jailbreak risk?
- lordnacho 5y agoI think of you Google price discrimination or similar economic terms you get some explanations for this. If you just have one price, you cut out people who can't afford it and people who can afford to pay more get away with more of the surplus. If you have several prices and create just enough difference in the product that it doesn't change the expense much, you can suck dry every class of user. Bit of an MBA trick.
- lupire 5y ago"suck dry" is excessive editorializing for a practice that make sit possible for a market to exist without, well, "sucking the manufacturer dry".
- Rastonbury 5y agoExactly, it is not an economics trick for if companies could only supply a certain level of the market it might not even be profitable to produce. It is just economics... We are talking about chips here so not the same bottle of soap with different labels, I'd call that a trick.
- psyc 5y agoWhat doesn’t scale well is John Carmack (and those of similar devotion). And yes, I’m aware that there are also those with the chops, who are not permitted by their money masters (or alternately by their master, money) to write performant software.
- bottled_poe 5y agoThose “money masters” are responding to market conditions. If the market demanded greater efficiency (eg. Through climate policy for example), we would quickly see a change in priorities.
- Dah00n 5y agoSo basically we need a climate tax on software to fix the problem. Putting the tax directly at energy would not cause much optimization in software in my opinion. I don't believe software development has a culture than can take on responsibility of its actions, neither in energy usage nor in security, which all leads back to programmers not being an engineer kind of worker but more like an author/writer. Hardware engineers on the other hand can and often do take responsibility. All in all I don't have any hope of software developers being up to the task if it landed in their lap to fix this so if we wanted their hand forced the tax needs to be directly on software instead of hardware or energy. I don't believe this is mainly market driven as the market is unlikely to be able to fix it. It's at least as much a culture problem.
- hasmanean 5y agoYeah, doom advanced the state of the art by maybe a decade(?). Instead of needing a silicon graphics workstation or a Graphics accelerator, it allows a generation of kids to play on any hardware. If you want to know how the world would be like without video game programmers, just like at internal corporate software and how slow it is. How many other advances are we tossing away because people don’t know how to optimize and code for speed and fun!
- photojosh 5y agoI think of John Carmack as the software equivalent of Roger Bannister, he of the first 4 minute mile. Yes, he is absolutely incredible, but once that magic is revealed to the world, it shows what is achievable and people can follow in his footsteps. Of course, I'm over here with my poky 6 minute mile...
- kilroy123 5y agoMy guess is, that in the future, we'll have computers writing some highly optimized software for certain things. I'm not saying all of use software people will be replaced 100% but some stuff will be replaced by automation. That's my prediction.
- KMag 5y agoWill the specifications for the software also be machine-generated? If the specifications are human-generated, then they're just a form of high-level source code, and your prediction boils down to future programming languages simultaneously improving programmer productivity and reducing resource usage. That's not a controversial prediction. If I understand you correctly, I think you're correct that over time, we'll see an increase at the abstraction level at which most programming is done. I think the effort put into making compilers better at optimizing will largely follow market demand, which is a bit harder to predict. One interesting direction is the Halide[0] domain-specific language for image/matrix/tensor transformations. The programs have 2 parts: a high-level description, and a set of program transformations that don't affect results, but make performance tradeoffs to tune the generated code for particular devices. The Halide site has links to some papers on applying machine learning to the tuning and optimization side of things. I can imagine a more general purpose language along these lines, maybe in the form of a bunch of declarative rules that are semantically (though perhaps not syntactically) Prolog-like, plus a bunch of transformations that are effectively very high-level optimization passes before the compiler ever starts looking at traditional inlining, code motion, etc. optimizations. At some point, maybe most programmers will just be writing machine learning objective functions, but at present, we don't have good engineering practice for writing safe and reliable objective functions. Given some of the degenerate examples of machine learning generating out-of-the-box solutions with objective functions (throwing pancakes to maximize the time before they hit the ground, tall robots that fall over to get their center of mass moving quickly, etc.), we're a long way from just handing a machine broad objectives and giving it broad leeway to write whatever code it deems best. I suspect in the medium-term, we'll see a 3-way divergence in programming: (1) safety/security-critical programs generated from proofs (see Curry-Howard correspondence, and how the seL4 microkernel was developed) (2) performance-critical programs that are very intensive in terms of human expert time and (3) lots of cookie-cutter apps and websites being generated via machine learning from vague human-provided (under-)specifications. [0] https://halide-lang.org/ https://halide-lang.org/
- bottled_poe 5y agoIn the scheme of things, this is short term. Market incentives for pushing performance are currently minor, but will have increasing influence over the next decade. Factors such As processing power hitting physical limits and energy prices as a result of climate policy will force engineers to build more efficient systems.
- limaoscarjuliet 5y agoI do not think we will see "processing power hitting physical limits" anytime soon. Moore's Law is not dead yet, it is a good question if it ever will be dead. As Jim Keller says, the only thing that is certain is number of people saying Moore's law is dead doubles every 18 months. https://eecs.berkeley.edu/research/colloquium/190918 https://eecs.berkeley.edu/research/colloquium/190918
- jerf 5y agoYes, it has to die. In this universe things can only grow indefinitely by less than an n^3 factor, because that's as fast as the lightcone of any event grows. Exponential growth, no matter how small the factor, will eventually outgrow n^3. Once we attain the limits of what we can do in 2 dimensions, we aren't that many exponential growth events from what we can achieve in 3. Or once we achieve the limits of silicon technology, we aren't that many exponential growth events from the limits of photonics or quantum or any other possible computing substrate. Unless we somehow unlock the secret of how to use things smaller than atoms to compute, and can keep shrinking those, we're not getting very much farther on a smooth exponential curve.
- squeaky-clean 5y agoSure, it has to die eventually, but the key phrase is anytime soon. But do we have any evidence it will during our lifetime? Or even our great-great-great-great-great-great-grand-child's lifetime?
- Sohcahtoa82 5y agoEh...for single-threaded processing, I'd say Moore's Law is dead and has been dead for more than a couple CPU generations now. What we're seeing now is massive parallelism, which means if your task is embarrassingly parallel, then Moore's Law is very much alive and well. Otherwise, no.
- vsareto 5y agoSmart dust will probably be terrible for human respiratory systems anyway
- IgorPartola 5y agoNot if it can work it’s way out of your lungs, being smart as it is. One of my favorite dad jokes is that if Smart Water was so smart, why did it get trapped in a bottle?
- selfhoster11 5y agoThat's assuming benign smart dust. Imagine a smart dust deployment by a hostile foreign power that is less than benign.
- TheBigSalad 5y agoGo back to using the software of the 80s then, before the evil software engineers made it all so bad.
- deleted 5y ago[deleted]
- papito 5y agoThis guy gets it.
- candu 5y agoI'll choose instead to be amazed that Doom-capable computers are now inexpensive and ubiquitous enough that it makes total financial sense to use one in a light bulb! More seriously, I see this argument all the time: that we are just squandering our advances in hardware by making comparably more inefficient software! Considering that efficiency used to be thought of on the level of minimizing drum rotations and such: the whole point is that we're now working at a much higher level of abstraction, and so we're able to build things that would not have been possible to build before. I for one am extremely grateful that I don't have to think about the speed of a drum rotating, or build web applications as spiders' nests of CGI scripts. Are there modern websites and applications that are needlessly bloated, slow, and inefficient? Certainly - but even those would have been impossible to build a few decades ago, and I think we shouldn't lose sight of that.
- curtis3389 5y agoI get your point, but putting these 2 thoughts together: > we are just squandering our advances in hardware by making comparably more inefficient software > we're able to build things that would not have been possible to build before We get that not only are we able to build things that weren't possible before, but we can build things that are more inefficient than was possible before. We can expect in the future to see new levels of inefficiencies as hardware developments give us more to waste. Without something to balance this out, we should expect to see our text editors get more and more bloated in cool and innovative ways in the future. It makes me think of fuel efficiency standards in cars.
- Sohcahtoa82 5y agoI dunno...this attitude scares me a bit, that you would just shrug away wasted CPU cycles and accept the low performance. CPUs are getting faster, and yet paradoxically, performance is worse, especially in the world of web browsers. The original DOOM ran at 30 fps in 320x200, which meant it rendered 1,920,000 pixels per second with only a 33 Mhz CPU. That's less than 18 clock cycles per pixel, and even that's assuming no CPU time spent on game logic. If DOOM were written today with a software renderer written in C#, Python, or JS, I'd be surprised if it could get anywhere near that level of clocks/pixel. These days, the basic Windows Calculator consumes more RAM than Windows 98, and that's just inexcusable.
- 2OEH8eoCRo0 5y agoI'm tired of the bloated software take. Hardware is meant to be used. Without these abstractions most software would be practically impossible to create. Without software solving more problems what's the point of the hardware?
- funcDropShadow 5y agoOf course can good abstractions and tools help to make software possible that were practically impossible before. But there is also a tendency to add abstraction layers of questionable value. An Electron-based UI to copy a disk image to an usb stick comes to my mind, e.g. Certainly it is possible to create a GUI for a file to disk copy operation without two JavaScript engines, an html/css renderer, lot's of network code, etc. This is just a silly example, I know. But this happens all the time. That phenomenon isn't even new. Anybody, remember when the first end-user internet providers would all distribute their own software to dial in? In my experience, most problems with the internet access at that time could be fixed by getting rid of that software and entering the phone number and dial-in credentials in their corresponding Windows dialog windows.
- 2OEH8eoCRo0 5y ago>An Electron-based UI to copy a disk image to an usb stick comes to my mind Subjective. Questionable to you. Nobody is bloating dd There is definitely bloated software but it's not a huge issue. If it were, then the customer would care. If the customer cares the business would care.
- hasmanean 5y agoHow’s this take: What is the minimal computer you can both compile and run Doom on?
- ant6n 5y agoI don’t think the Point of N Ghz + 8 gb ram hardware is for me to sit and stare at a spinning mouse pointer while waiting for the explorer to change to another directory.
- Narishma 5y agoSoftware seems to scale in the other direction. The faster the hardware you give developers, the slower the software they produce becomes.
- hasmanean 5y agoSomeone should remake Doom using today’s “best practises” coding standards and see how much performance it gives up.
- otabdeveloper4 5y ago> using today’s “best practises” That would be WebGL and Javascript, I presume? I tried running a Quake port in that vein, but sadly none of the computers I own were able to play it without stuttering.
- Sohcahtoa82 5y agoI'd like to see the DOOM engine written entirely in Python without using any GPU rendering besides the frame buffer. DOOM ran in 320x200 at 30 fps on a 33 Mhz CPU, which gives it less than 18 clock cycles per pixel rendered. I doubt Python could get anywhere close to that.
- Blikkentrekker 5y agoReading up upon some of the absolute ugly and unmaintainable hacks that software writers had to rely upon two decades back to fit things into the hardware, I am honestly quite glad the æra of that type of programming is now past us. It was certainly impressive, but it was aso a case of often design having to give way to such hacks, such as the fact that many older first person shooter games had to have their entire level design work around the idea that the engines could not support two walkable surfaces vertically above each other for performance reasons or the famous Duke Nukem 3D “mirror” hack.
- dwild 5y ago> you could be alarmed that you need a Doom-capable computer to run a modern light bulb. An ESP8266 microcontroller can be bought in low quantity for less than a dollar. I means sure any cost reduction at scale is meaningful, but at that point I don't think the silicon is the expensive part at that point. It just doesn't make sense to give WIFI devices anything less than that performance, the gains in silicon space will be meaningless and you'll spend more managing that than anything.
- N00bN00b 5y ago>A problem with this from my point of view is that while hardware engineers did an incredible job increasing the processing power of our thinking rocks, us software devs did a tremendous job of squandering 90% of it away. That works both ways though. The highly qualified software devs did indeed squander some of it away. But I'm a rather bad dev that writes really inefficient code (because it's not my primary concern, I'm not a programmer, I just need custom software that does the things I need done that can't be done by software other people write). All this overpowered hardware allows my code to work very well. I've been in situations where I could pick between "learn to program properly and optimize my code" or "throw more hardware at it" and throwing more hardware at it was definitely the faster and more efficient approach in my case.
- deleted 5y ago[deleted]
- cwkoss 5y agoBy the end of the century, AI will probably be able to write software better than humans.
- abraxas 5y agoMost web apps/websites aren't a whole lot more sophisticated than they were in the days of Netscape Navigator 3.0. They show text and pictures, accept form submissions and resize the viewport when I change the window size. Yet today they seem to require multi gigahertz CPUs to do anything acceptably fast. Yes there are a few that were not possible back then. Most though can't justify their resource consumption. Neither on the client nor on the server side.
- sellyme 5y ago> Yes there are a few that were not possible back then. "A few" is underselling it somewhat. I would posit that >95% of popular modern websites contain functionality that was not plausible in 1996.
- abraxas 5y agoExcluding embedded video which indeed was very low quality then (although it existed) what things do you have in mind?
- _carbyau_ 5y agoI feel this everytime I go to a checkout register or am on the phone with a rep doing some minor account thing. The person operating the console only has to click an option or fill in some text field, same as 20 years ago. But today, with added slowness. Knowing the amazing advances in hardware in the meantime, this hurts me.