26 ms·
The world could run on older hardware if software optimization was a priority
- seydor 1y agoI wonder if anyone has calculated the additional planet heating generated by crappy e.g. JS apps or useless animations
- AndrewDucker 1y agoWell, yes. It's an economic problem (which is to say, it's a resource allocation problem). Do you have someone spend extra time optimising your software or do you have them produce more functionality. If the latter generates more cash then that's what you'll get them to do. If the former becomes important to your cashflow then you'll get them to do that.
- tgv 1y agoIt's the kind of economics that shifts the financial debt to accumulating waste, and technical debt, which is paid for by someone else. It's basically stealing. There are --of course-- many cases in which thorough optimizing doesn't make much sense, but the idea of just adding servers instead of rewriting is a sad state of affairs.
- xyzzy123 1y agoIt doesn't seem like stealing to me? Highly optimised software generally takes more effort to create and maintain. The tradeoff is that we get more software in general, and more features in that software, i.e. software developers are more productive. I guess on some level we can feel that it's morally bad that adding more servers or using more memory on the client is cheaper than spending developer time but I'm not sure how you could shift that equilibrium without taking away people's freedom to choose how to build software?
- HappMacDonald 1y agoI feel like the argument is similar to that of all corporate externality pushes. For example "polluting the air/water, requiring end-users to fill landfills with packaging and planned obscolescence" allows a company to more cheaply offer more products to you as a consumer.. but now everyone collectively has to live in a more polluted world with climate change and wasted source material converted to expensive and/or dangerous landfills and environmental damage from fracking and strip mining. But that's still not different from theft. A company that sells you things that "Fell off the back of a truck" is in a position to offer you lower costs and greater variety, as well. Aren't they? Our shared resources need to be properly managed: neither siphoned wastefully nor ruined via polution. That proper management is a cost, and it either has to be borne by those using the resources and creating the waste, or it is theft of a shared resource and tragedy of the commons.
- esperent 1y ago> It's basically stealing This feels like hyperbole to me. Who is being stolen from here? Not the end user, they're getting the tradeoff of more features for a low price in exchange for less optimized software.
- skydhash 1y agoFrom what I’m seeing people do on their computers, it barely changed from what they’ve been doing on their pentium 4 one. But now, with Electron-based software and the generals state of Windows, you can’t recommend something older than 4 years. It’s hard to not see it as stealing when you have to buy a 1000+ laptop, when a 400 one could easily do the job if the software were a bit better.
- Workaccount2 1y agoMost people today could be using excel '98 and be no less productive.
- skydhash 1y agoIn my SO's job (HR), it's basically Word, Excel and email. And nothing more than what was available around 2005 other than some convenient utilities.
- cosmic_cheese 1y agoIt’s only a tradeoff for the user if the user find the added features useful. Increasingly, this is not the case. My favorite example here is the Adobe Creative Suite, which for many users useful new features became far and few between some time ~15 years ago. For those users, all they got was a rather absurd degree of added bloat and slowness for essentially the same thing they were using in 2010. These users would’ve almost certainly been happier had 80-90% of the feature work done in that time instead been bug fixes and optimization.
- deleted 1y ago[deleted]
- victorbjorklund 1y agoNot really stealing. You could off course build software that is more optimized and with the same features but at a higher cost. Would most buyers pay twice the price for a webb app that loads in 1 sec instead of 2? Probably not.
- skydhash 1y agoTry loading slack and youtube on a 4 year old laptop. It’s more in the 10s, and good luck if you only have 8GB of ram.
- victorbjorklund 1y agoThat is not stealing. Try transporting a large bed in a tiny city car. And of course you can use youtube in say a mac m1 with only 8 gb of ram.
- inetknght 1y ago> It's basically stealing. This is exactly right. Why should the company pay an extra $250k in salary to "optimize" when they can just offload that salary to their customers' devices instead? The extra couple of seconds, extra megabytes of bandwidth, and shittery of the whole ecosystem has been externalized to customers in search of ill-gotten profits.
- 3036e4 1y agoIt's like ignoring backwards compatibility. That is really cheap since all the cost is pushed to end-users (that have to relearn the UI) or second/third-party developers (that have to rewrite their client code to work with a new API). But it's OK since everyone is doing it and also without all those pointless rewrites many of us would not have a job.
- inetknght 1y ago> without all those pointless rewrites many of us would not have a job. I hear arguments like this fairly often. I don't believe it's true. Instead of having a job writing a pointless rewrite, you might have a job optimizing software. You might have a different career altogether. Having a job won't go away: what you do for your job will simply change.
- franktankbank 1y agoAlso offloaded to the miserable devs maintaining the system.
- gwern 1y ago> has been externalized to customers in search of ill-gotten profits. 'Externality' does not mean 'thing I dislike'. If it is the customers running the software or waiting the extra couple of seconds, that's not an externality. By definition. (WP: "In economics, an externality is an indirect cost (external cost) or benefit (external benefit) to an uninvolved third party that arises as an effect of another party's (or parties') activity.") That is just the customers picking their preferred point on the tradeoff curves.
- knowitnone 1y agowould you spend 100 years writing the perfect editor optimizing every single function and continueously optimizing and when will it ever be complete? No you wouldn't. Do you use python or java or C? Obviously, that can be optimized if you wrote in assembly. Practice what you preach, otherwise you'd be stealing.
- MattSayar 1y agoEfficiency is critical to my everyday life. For example, before I get up from my desk to grab a snack from the kitchen, I'll bring any trash/dishes with me to double the trip's benefits. I do this kind of thing often. Optimizing software has a similar appeal. But when the problem is "spend hours of expensive engineering time optimizing the thing" vs "throw some more cheap RAM at it," the cheaper option will prevail. Sometimes, the problem is big enough that it's worth the optimization. The market will decide which option is worth pursuing. If we get to a point where we've reached diminishing returns on throwing hardware at a problem, we'll optimize the software. Moore's Law may be slowing down, but evidently we haven't reached that point yet.
- pier25 1y ago> Do you have someone spend extra time optimising your software or do you have them produce more functionality Depends. In general, I'd rather have devs optimize the software rather than adding new features just for the sake of change. I don't use most of the new features in macOS, Windows, or Android. I mostly want an efficient environment to run my apps and security improvements. I'm not that happy about many of the improvements in macOS (eg the settings app). Same with design software. I don't use most of the new features introduced by Adobe. I'd be happy using Illustrator or Photoshop from 10 years ago. I want less bloat, not more. I also do audio and music production. Here I do want new features because the workflow is still being improved but definitely not at the cost of efficiency. Regarding code editors I'm happy with VSCode in terms of features. I don't need anything else. I do want better LSPs but these are not part of the editor core. I wish VSCode was faster and consumed less memory though.
- xondono 1y agoI think you’re right in that it’s an economics problem, but you’re wrong about which one. For me this is a clear case of negative externalities inflicted by software companies against the population at large. Most software companies don’t care about optimization because they’re not paying the real costs on that energy, lost time or additional e-waste.
- magarnicle 1y agoIs there any realistic way to shift the payment of hard-to-trace costs like environmental clean-up, negative mental or physical health, and wasted time back to the companies and products/software that cause them?
- criticalfault 1y agoYou have just explained how enshitification works.
- conductr 1y agoUltimately it's a demand problem. If consumer demands more performant software, they would pay a premium for it. However, the opposite is more true. They would prefer an even less performant version if it came with a cheaper price tag.
- mkonecny 1y ago[flagged]
- nottorp 1y agoUnfortunately, bloated software passes the costs to the customer and it's hard to evaluate the loss. Except your browser taking 180% of available ram maybe. By the way, the world could also have some bug free software, if anyone could afford to pay for it.
- jillesvangurp 1y agoWhat cost? The hardware is dirt cheap. Programmers aren't cheap. The value of being able to use cheap software on cheap hardware is basically not having to spend a lot of time optimizing things. Time is the one thing that isn't cheap here. So there's a value in shipping something slightly sub optimal sooner rather than something better later. > Except your browser taking 180% of available ram maybe. For most business users, running the browser is pretty much the only job of the laptop. And using virtual memory for open tabs that aren't currently open is actually not that bad. There's no need to fit all your gazillion tabs into memory; only the ones you are looking at. Browsers are pretty good at that these days. The problem isn't that browsers aren't efficient but that we simply push them to the breaking content with content. Content creators simply expand their resource usage whenever browsers get optimized. The point of optimization is not saving cost on hardware but getting more out of the hardware. The optimization topic triggers the OCD of a lot of people and sometimes those people do nice things. John Carmack built his career when Moore's law was still on display. Everything he did to get the most out of CPUs was super relevant and cool but it also dated in a matter of a few years. One moment we were running doom on simple 386 computers and the next we were running Quake and Unreal with shiny new Voodoo GPUs on a Pentium II pro. I actually had the Riva 128 as my first GPU, which was one of the first products that Nvidia shipped running Unreal and other cool stuff. And while CPUs have increased enormously in performance, GPUs have increased even more by some ridiculous factor. Nvidia has come a long way since then. I'm not saying optimization is not important but I'm just saying that compute is a cheap commodity. I actually spend quite a bit of time optimizing stuff so I can appreciate what that feels like and how nice it is when you make something faster. And sometimes that can really make a big difference. But sometimes my time is better spent elsewhere as well.
- wtetzner 1y ago
- vermilingua 1y agoRelated: https://duskos.org/ https://duskos.org/
- tutuca 1y agoOh man, that's lovely. Awesome project!
- freddie_mercury 1y agoThe world DOES run on older hardware. How new do you think the CPU in your bank ATM or car's ECU is?
- kunley 1y agoRelated: I wonder what cpu Artemis/Orion is using
- jsheard 1y agoIBM PowerPC 750X apparently, which was the CPU the Power Mac G3 used back in the day. Since it's going into space it'll be one of the fancy radiation-hardened versions which probably still costs more than your car though, and they run four of them in lockstep to guard against errors. https://www.eetimes.com/comparing-tech-used-for-apollo-artemis-nasa-missions/ https://www.eetimes.com/comparing-tech-used-for-apollo-artem...
- ngangaga 1y agoI'm not sure what artemis or orion are, but you can blame defense contractors for this. Nobody ever got fired for hiring IBM or Lockheed, even if they deliver unimpressive results at massive cost.
- rescbr 1y agoPut a 4 nm CPU into something that goes to space and see how long it would take to fail. One of the tradeoffs of radiation hardening is increased transistor size. Cost-wise it also makes sense - it’s a specialized, certified and low-volume part.
- ngangaga 1y agoI don't disagree that the engineering can be justified. But you don't need custom hardware to achieve radiation hardening, much less hiring fucking IBM. And to be clear, I love power chips. I remain very bullish about the architecture. But as a taxpayer reading this shit just pisses me off. Pork-fat designed to look pro-humanity.
- yonisto 1y agoI'm not much into retro computing. But it amazes me what people are pulling out of a dated hardware. Doom on the Amiga for example (many consider it the main factor for the Amiga demise). Optimization and 30 years and it finally arrived
- busterarm 1y agoLet's keep the CPU efficiency golf to Zachtronics games, please. I/O is almost always the main bottleneck. I swear to god 99% of developers out there only know how to measure cpu cycles of their code so that's the only thing they optimize for. Call me after you've seen your jobs on your k8s clusters get slow because all of your jobs are inefficiently using local disk and wasting cycles waiting in queue for reads/writes. Or your DB replication slows down to the point that you have to choose between breaking the mirror and stop making money. And older hardware consumes more power. That's the main driving factor between server hardware upgrades because you can fit more compute into your datacenter. I agree with Carmack's assessment here, but most people reading are taking the wrong message away with them.
- wtetzner 1y ago> I/O is almost always the main bottleneck. People say this all the time, and usually it's just an excuse not to optimize anything. First, I/O can be optimized. It's very likely that most servers are either wasteful in the number of requests they make, or are shuffling more data around than necessary. Beyond that though, adding slow logic on top of I/O latency only makes things worse. Also, what does I/O being a bottleneck have to do with my browser consuming all of my RAM and using 120% of my CPU? Most people who say "I/O is the bottleneck" as a reason to not optimize only care about servers, and ignore the end users.
- busterarm 1y agoI/O _can_ be optimized. I know someone who had this as their fulltime job at Meta. Outside of that nobody is investing in it though. I'm a platform engineer for a company with thousands of microservices. I'm not thinking on your desktop scale. Our jobs are all memory hogs and I/O bound messes. Across all of the hardware we're buying we're using maybe 10% CPU. Peers I talk to at other companies are almost universally in the same situation. I'm not saying don't care about CPU efficiency, but I encounter dumb shit all the time like engineers asking us to run exotic new databases with bad licensing and no enterprise features just because it's 10% faster when we're nowhere near experiencing those kinds of efficiency problems. I almost never encounter engineers who truly understand or care about things like resource contention/utilization. Everything is still treated like an infinite pool with perfect 100% uptime, despite (at least) 20 years of the industry knowing better.
- titzer 1y agoI like to point out that since ~1980, computing power has increased about 1000X. If dynamic array bounds checking cost 5% (narrator: it is far less than that), and we turned it on everywhere, we could have computers that are just a mere 950X faster. If you went back in time to 1980 and offered the following choice: I'll give you a computer that runs 950X faster and doesn't have a huge class of memory safety vulnerabilities, and you can debug your programs orders of magnitude more easily, or you can have a computer that runs 1000X faster and software will be just as buggy, or worse, and debugging will be even more of a nightmare. People would have their minds blown at 950X. You wouldn't even have to offer 1000X. But guess what we chose... Personally I think the 1000Xers kinda ruined things for the rest of us.
- _aavaa_ 1y agoExcept we've squandered that 1000x not on bounds checking but on countless layers of abstractions and inefficiency.
- pydry 1y agoMost of it was exchanged for abstractions which traded runtime speed for the ability to create apps quickly and cheaply. The market mostly didn't want 50% faster code as much as it wanted an app that didn't exist before. If I look at the apps I use on a day to day basis that are dog slow and should have been optimized (e.g. slack, jira), it's not really a lack of the industry's engineering capability to speed things up that was the core problem, it is just an instance the principal-agent problem - i.e. I'm not the one buying, I don't get to choose not to use it and dog-slow is just one of many the dimensions in which they're terrible.
- fsloth 1y agoI don’t think abundance vs speed is the right lens. No user actually wants abundance. They use few programs and would benwfit if those programs were optimized. Established apps could be optimized to the hilt. But they seldom are.
- dardeaup 1y agoIt could also run on much less current hardware if efficiency was a priority. Then comes the AI bandwagon and everyone is buying loads of new equipment to keep up with the Jones.
- deleted 1y ago[deleted]
- SilverSlash 1y agoThe title made me think Carmack was criticizing poorly optimized software and advocating for improving performance on old hardware. When in fact, the tweet is absolutely not about either of the two. He's talking about a thought experiment where hardware stopped advancing and concludes with "Innovative new products would get much rarer without super cheap and scalable compute, of course".
- Cordiali 1y agoIt's related to a thread from yesterday, I'm guessing you haven't seen it: https://news.ycombinator.com/item?id=43967208 https://news.ycombinator.com/item?id=43967208 https://threadreaderapp.com/thread/1922015999118680495.html https://threadreaderapp.com/thread/1922015999118680495.html
- MrBuddyCasino 1y agoThis is exactly the point. People ignore that "bloat" is not (just) "waste", it is developer productivity increase motivated by economics. The ability to hire and have people be productive in a less complicated language expands the market for workers and lowers cost.
- ngangaga 1y ago> "Innovative new products would get much rarer without super cheap and scalable compute, of course". Interesting conclusion—I'd argue we haven't seen much innovation since the smartphone (18 years ago now), and it's entirely because capital is relying on the advances of hardware to sell what is to consumers essentially the same product that they already have. Of course, I can't read anything past the first tweet.
- bluGill 1y agoThere has been a lot of innovation - but it is focused to some niche and so if you are not in a niche you don't see it and wouldn't care if you did. Most of the major things you need have already invented - I recall word processors as a kid, so they for sure date back to the 1970s - we still need word processors and there is a lot of polish that can be added, but all innovation is in niche things that the majority of us wouldn't have a use for if we knew about it. Of course innovation is always in bits and spurts.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- wiz21c 1y agoI'd much prefer Carmack to think about optimizing for energy consumption.
- the__alchemist 1y agoThese two metrics often scale linearly.
- threetonesun 1y agoObviously, the world ran before computers. The more interesting part of this is what would we lose if we knew there were no new computers, and while I'd like to believe the world would put its resources towards critical infrastructure and global logistics, we'd probably see the financial sector trying to buy out whatever they could, followed by any data center / cloud computing company trying to lock all of the best compute power in their own buildings.
- Mindwipe 1y agoProbably, but we'd be in a pretty terrible security place without modern hardware based cryptographic operations.
- margorczynski 1y agoThe priority should be safety, not speed. I prefer an e.g. slower browser or OS that isn't ridden with exploits and attack vectors. Of course that doesn't mean everything should be done in JS and Electron as there's a lot of drawbacks to that. There exists a reasonable middle ground where you get e.g. memory safety but don't operate on layers upon layers of heavy abstraction and overhead.
- bob1029 1y agoWe've been able to run order matching engines for entire exchanges on a single thread for over a decade by this point. I think this specific class of computational power - strictly serialized transaction processing - has not grown at the same rate as other metrics would suggest. Adding 31 additional cores doesn't make the order matching engine go any faster (it could only go slower). If your product is handling fewer than several million transactions per second and you are finding yourself reaching for a cluster of machines, you need to back up like 15 steps and start over.
- HolyLampshade 1y ago> We've been able to run order matching engines for entire exchanges on a single thread for over a decade by this point. This is the bit that really gets me fired up. People (read: system “architects”) were so desperate to “prove their worth” and leave a mark that many of these systems have been over complicated, unleashing a litany of new issues. The original design would still satisfy 99% of use cases and these days, given local compute capacity, you could run an entire market on a single device.
- bluGill 1y agoYou are only able to do that because you are doing simple processing on each transaction. If you had to do more complex processing on each transaction it wouldn't be possible to do that many. Though it is hard for me to imagine what more complex processing would be (I'm not in your domain)
- bob1029 1y agoThe order matching engine is mostly about updating an in-memory order book representation. It is rarely the case that high volume transaction processing facilities also need to deal with deeply complex transactions. I can't think of many domains of business wherein each transaction is so compute intensive that waiting for I/O doesn't typically dominate.
- bluGill 1y ago
- VagabundoP 1y agoI've installed OSX Sequoia on 2015 iMacs with 8 gigs of ram and it runs great. More than great actually. Linux on 10-15 year old laptops and it runs good. if you beef up RAM and SSD then actually really good. So for everyday stuff we can and do run on older hardware.
- voidUpdate 1y agoI mean, if you put win 95 on a period appropriate machine, you can do office work easily. All that is really driving computing power is the web and gaming. If we weren't doing either of those things as much, I bet we could all quite happily use machines from the 2000s era
- jim180 1y agoI do have Windows 2000 installed with IIS (and some office stuff) in a ESXi for fun and nostalgia. It serves some static html pages within my local network. The host machine is some kind of i7 machine that is about 7-10 years old. That machine is SOOOOOO FAST. I love it. To be honest, that tasks that I was doing back in the day are identical to today
- therealmarv 1y agoTell me about it. Web development has only become fun again at my place since upgrading from Intel Mac to M4 Mac. Just throw in Slack chat, vscode editor in Electron, Next.js stack, 1-2 docker containers, one browser and you need top notch hardware to run it fluid (Apple Silicon is amazing though). I'm doing no fancy stuff. Chat, editor in a browser and docker don't seem the most efficient thing if put all together.
- caseyy 1y agoThere is an argument to be made that the market buys bug-filled, inefficient software about as well as it buys pristine software. And one of them is the cheapest software you could make. It's similar to the "Market for Lemons" story. In short, the market sells as if all goods were high-quality but underhandedly reduces the quality to reduce marginal costs. The buyer cannot differentiate between high and low-quality goods before buying, so the demand for high and low-quality goods is artificially even. The cause is asymmetric information. This is already true and will become increasingly more true for AI. The user cannot differentiate between sophisticated machine learning applications and a washing machine spin cycle calling itself AI. The AI label itself commands a price premium. The user overpays significantly for a washing machine[0]. It's fundamentally the same thing when a buyer overpays for crap software, thinking it's designed and written by technologists and experts. But IC1-3s write 99% of software, and the 1 QA guy in 99% of tech companies is the sole measure to improve quality beyond "meets acceptance criteria". Occasionally, a flock of interns will perform an "LGTM" incantation in hopes of improving the software, but even that is rarely done. [0] https://www.lg.com/uk/lg-experience/inspiration/lg-ai-wash-efficient-spins/ https://www.lg.com/uk/lg-experience/inspiration/lg-ai-wash-e...
- JKCalhoun 1y agoThat's generally what I think as well. Yes, the world could run on older hardware, but you keep making faster and adding more CPU's so, why bother making the code more efficient?
- kaonwarb 1y agoA big part of why I like shopping at Costco is that they generally don't sell garbage. Their filter doesn't always match mine, but they do have a meaningful filter.
- hombre_fatal 1y agoEven if end-users had the data to reasonably tie-break on software quality and performance, as I scroll my list of open applications not a single one of them can be swapped out with another just because it were more performant. For example: Docker, iterm2, WhatsApp, Notes.app, Postico, Cursor, Calibre. I'm using all of these for specific reasons, not for reasons so trivial that I can just use the best-performing solution in each niche. So it seems obviously true that it's more important that software exists to fill my needs in the first place than it pass some performance bar.
- eth0up 1y agoYeah, having browsers the size and complexities of OSs is just one of many symptoms. I intimate at this concept in a grumbling, helpless manner somewhat chronically. There's a lot today that wasn't possible yesterday, but it also sucks in ways that weren't possible then. I foresee hostility for saying the following, but it really seems most people are unwilling to admit that most software (and even hardware) isn't necessarily made for the user or its express purpose anymore. To be perhaps a bit silly, I get the impression of many services as bait for telemetry and background fun. While not an overly earnest example, looking at Android's Settings/System/Developer Options is pretty quick evidence that the user is involved but clearly not the main component in any respect. Even an objective look at Linux finds manifold layers of hacks and compensation for a world of hostile hardware and soft conflict. It often works exceedingly well, though as impractical as it may be to fantasize, imagine how badass it would be if everything was clean, open and honest. There's immense power, with lots of infirmities. I've said that today is the golden age of the LLM in all its puerility. It'll get way better, yeah, but it'll get way worse too, in the ways that matter.[1] Edit: 1. Assuming open source doesn't persevere
- nashashmi 1y agoThe world could run on older hardware if rapid development did not also make money. Rapid development is creating a race towards faster hardware.
- 1970-01-01 1y agoThe idea of a hand me down computer made of brass and mahogany still sounds ridiculous because it is, but we're nearly there in terms of Moore's law. We have true 2nm within reach and then the 1nm process is basically the end of the journey. I expect 'audiophile grade' PCs in the 2030s and then PCs become works of art, furniture, investments, etc. because they have nowhere to go. https://en.wikipedia.org/wiki/2_nm_process https://en.wikipedia.org/wiki/2_nm_process https://en.wikipedia.org/wiki/International_Roadmap_for_Devices_and_Systems https://en.wikipedia.org/wiki/International_Roadmap_for_Devi...
- ubermonkey 1y agoThe increasing longevity of computers has been impressing me for about 10 years. My current machine is 4 years old. It's absolutely fine for what I do. I only ever catch it "working" when I futz with 4k 360 degree video (about which: fine). It's a M1 Macbook Pro. I traded its predecessor in to buy it, so I don't have that one anymore; it was a 2019 model. But the one before that, a 2015 13" Intel Macbook Pro, is still in use in the house as my wife's computer. Keyboard is mushy now, but it's fine. It'd probably run faster if my wife didn't keep fifty billion tabs open in Chrome, but that's none of my business. ;) The one behind that one, purchased in 2012, is also still in use as a "media server" / ersatz SAN. It's a little creaky and is I'm sure technically a security risk given its age and lack of updates, but it RUNS just fine.
- WJW 1y agoWell obviously. And there would be no wars if everybody made peace a priority. It's obvious for both cases where the real priorities of humanity lie.
- don_searchcraft 1y ago100% agree with Carmack. There was a craft in writing software that I feel has been lost with access to inexpensive memory and compute. Programmers can be inefficient because they have all that extra headroom to do so which just contributes to the cycle of needing better hardware.
- myth_drannon 1y agoSoftware development has been commoditized and is directed by MBA's and others who don't see it as a craft. The need for fast project execution is above the craft of programming, hence, the code is bug-riddled and slow. There are some niche areas (vintage,pico-8, arduino...) where people can still practise the craft, but that's just a hobby now. When this topic comes up I always think about Tarkovsky's Andrei Rublev movie, the artist's struggle.
- ricardo81 1y agoMinimalism is excellent. As others have mentioned, using languages that are more memory safe (by assumption the language is wrote in such a way) may be worth the additional complexity cost. But surely with burgeoning AI use efficiency savings are being gobbled up by the brute force nature of it. Maybe model training and the likes of hugging face can avoid different groups trying to reinvent the same AI wheel using more resources than a cursory search of a resource.
- armchairhacker 1y agoIs there or could we make an iPhone-like that runs 100x slower than conventional phones but uses much less energy, so it powers itself on solar? It would be good for the environment and useful in survival situations. Or could we make a phone that runs 100x slower but is much cheaper? If it also runs on solar it would be useful in third-world countries. Processors are more than fast enough for most tasks nowadays; more speed is still useful, but I think improving price and power consumption is more important. Also cheaper E-ink displays, which are much better for your eyes, more visible outside, and use less power than LEDs.
- caseyy 1y agoWe have much hardware on the secondary market (resale) that's only 2-3x slower than pristine new primary market devices. It is cheap, it is reuse, and it helps people save in a hyper-consumerist society. The common complaint is that it doesn't run bloated software anymore. And I don't think we can make non-bloated software for a variety of reasons. As a video game developer, I can add some perspective (N=1 if you will). Most top-20 game franchises spawned years ago on much weaker hardware, but their current installments demand hardware not even a few years old (as recommended/intended way to play the game). This is due to hyper-bloating of software, and severe downskilling of game programmers in the industry to cut costs. The players don't often see all this, and they think the latest game is truly the greatest, and "makes use" of the hardware. But the truth is that aside from current-generation graphics, most games haven't evolved much in the last 10 years, and current-gen graphics arrived on PS4/Xbox One. Ultimately, I don't know who or what is the culprit of all this. The market demands cheap software. Games used to cost up to $120 in the 90s, which is $250 today. A common price point for good quality games was $80, which is $170 today. But the gamers absolutely decry any game price increases beyond $60. So the industry has no option but to look at every cost saving, including passing the cost onto the buyer through hardware upgrades. Ironically, upgrading a graphics card one generation (RTX 3070 -> 4070) costs about $300 if the old card is sold and $500 if it isn't. So gamers end up paying ~$400 for the latest games every few years and then rebel against paying $30 extra per game instead, which could very well be cheaper than the GPU upgrade (let alone other PC upgrades), and would allow companies to spend much more time on optimization. Well, assuming it wouldn't just go into the pockets of publishers (but that is a separate topic). It's an example of Scott Alexander's Moloch where it's unclear who could end this race to the bottom. Maybe a culture shift could, we should perhaps become less consumerist and value older hardware more. But the issue of bad software has very deep roots. I think this is why Carmack, who has a practically perfect understanding of software in games, doesn't prescribe a solution.
- noobermin 1y agoI'm already moving in this direction in my personal life. It's partly nostalgia but it's partly practical. It's just that work requires working with people who only use what hr and it hoists on them, then I need a separate machine for that.
- datax2 1y agoThis is a double edge sword problem, but I think what people are glazing over with the compute power topic is power efficiency. One thing I struggle with home labing old gaming equipment is the consideration to the power efficiency of new hardware. Hardly a valid comparison, but I can choose to recycle my Ryzen 1700x with a 2080ti for a media server that will probably consume a few hundred watts, or I can get a M1 that sips power. The double edge sword part is that Ryzen system becomes considerably more power efficient running proxmox or ubuntu server vs a windows client. We as a society choose our niche we want to leverage and it swings with and like economics, strapped for cash, choose to build more efficient code; no limits, buy the horsepower to meet the needs.
- jasonthorsness 1y agoWe are squandering bandwidth similarly and that hasn’t increased as much as processing power.
- x1unix 1y agobased
- vasco 1y agoHe mentions the rate of innovation would slow down which I agree with. But I think that even 5% slower innovation rate would delay the optimizations we can do or even figure out what we need to optimize through centuries of computer usage and in the end we'd be less efficient because we'd be slower at finding efficiencies. Low adoption rate of new efficiencies is worse than high adoption rate of old efficiencies is I guess how to phrase it. If Cadence for example releases every feature 5 years later because they spend more time optimizing them, it's software after all, how much will that delay semiconductor innovations?
- agentultra 1y agoI heartily agree. It would be nice if we could extend the lifetime of hardware 5, 10 years past its, "planned obsolescence." This would divert a lot of e-waste, leave a lot of rare earth minerals in the ground, and might even significantly lower GHG emissions. The market forces for producing software however... are not paying for such externalities. It's much cheaper to ship it sooner, test, and iterate than it is to plan and design for performance. Some organizations in the games industry have figured out a formula for having good performance and moving units. It's not spread evenly though. In enterprise and consumer software there's not a lot of motivation to consider performance criteria in requirements: we tend to design for what users will tolerate and give ourselves as much wiggle room as possible... because these systems tend to be complex and we want to ship changes/features continually. Every change is a liability that can affect performance and user satisfaction. So we make sure we have enough room in our budget for an error rate. Much different compared to designing and developing software behind closed doors until it's, "ready."
- hermitShell 1y agoPoint 1 is why growth/debt is not a good economic model in the long run. We should have a care & maintenance focused economy and center our macro scale efforts on the overall good of the human race, not perceived wealth of the few. If we focused on upkeep of older vehicles, re-use of older computers, etc. our landfills would be smaller proportional to 'growth'. I'm sure there's some game theory construction of the above that shows that it's objectively an inferior strategy to be a conservationist though.
- agentultra 1y agoI sometimes wonder how the game theorist would argue with physics.
- protoster 1y agoMy phone isn't getting slower, but rather the OS running on it becomes less efficient with every update. Shameful.
- alkonaut 1y ago"The world" runs on _features_ not elegant, fast, or bug free software. To the end user, there is no difference between a lack of a feature, and a bug. Nor is there any meaningful difference between software taking 5 minutes to complete something because of poor performance, compared to the feature not being there and the user having to spend 5 minutes completing the same task manually. It's "slow". If you keep maximizing value for the end user, then you invariably create slow and buggy software. But also, if you ask the user whether they would want faster and less buggy software in exchange for fewer features, they - surprise - say no. And even more importantly: if you ask the buyer of software, which in the business world is rarely the end user, then they want features even more, and performance and elegance even less. Given the same feature set, a user/buyer would opt for the fastest/least buggy/most elegant software. But if it lacks any features - it loses. The reason to keep software fast and elegant is because it's the most likely path to be able to _keep_ adding features to it as to not be the less feature rich offering. People will describe the fast and elegant solution with great reviews, praising how good it feels to use. Which might lead people to think that it's an important aspect. But in the end - they wouldn't buy it at all if it didn't do what they wanted. They'd go for the slow frustrating buggy mess if it has the critical feature they need.
- sabellito 1y agoPerfectly put. People who try to argue that more time should be spent on making software perform better probably aren't thinking about who's going to pay for that. For the home/office computer, the money spent on more RAM and a better CPU enables all software it runs to be shipped more cheaply and with more features.
- xg15 1y agoAlmost all of my nontechnical friends and family members have at some point complained about bloated and overly complicated software that they are required to use. Also remember that Microsoft at this point has to drag their users kicking and screaming into using the next Windows version. If users were let to decide for themselves, many would have never upgraded past Windows XP. All that despite all the pretty new features in the later versions. I'm fully with you that businesses and investors want "features" for their own sake, but definitely not users.
- QuadrupleA 1y agoThis always saddens me. We could have things instant, simple, and compute & storage would be 100x more abundant in practical terms than it is today. It's not even a trade off a lot of the time, simpler architectures perform better but are also vastly easier and cheaper to maintain. We just lack expertise I think, and pass on cargo cult "best practices" much of the time.
- inetknght 1y agoI was working as a janitor, moonlighting as an IT director, in 2010. Back then I told the business that laptops for the past five years (roughly since Nehalem) have plenty of horsepower to run spreadsheets (which is basically all they do) with two cores, 16 GB of RAM, and a 500GB SATA SSD. A couple of users in marketing did need something a little (not much) beefier. Saved a bunch of money by not buying the latest-and-greatest laptops. I don't work there any more. Today I am convinced that's true today: those computers should still be great for spreadsheets. Their workflow hasn't seriously changed. It's the software that has. If they've continued with updates (can it even "run" MS Windows 10 or 11 today? No idea, I've since moved on to Linux) then there's a solid chance that the amount of bloat and especially move to online-only spreadsheets would tank their productivity. Further, the internet at that place was terrible. The only offerings were ~16Mbit asynchronous DSL (for $300/mo just because it's a "business", when I could get the same speed for $80/mo at home), or Comcast cable 120Mbit for $500/mo. 120Mbit is barely enough to get by with an online-only spreadsheet, and 16Mbit definitely not. But worse: if internet goes down, then the business ceases to function. This is the real theft that another commenter [0] mentioned that I wholeheartedly agree with. There's no reason whatsoever that a laptop running spreadsheets in an office environment should require internet to edit and update spreadsheets, or crazy amounts of compute/storage, or even huge amounts of bandwidth. Computers today have zero excuse for terrible performance except only to offload costs onto customers - private persons and businesses alike. [0]: https://news.ycombinator.com/item?id=43971960 https://news.ycombinator.com/item?id=43971960
- Scene_Cast2 1y agoWhere lack of performance costs money, optimization is quite invested in. See PyTorch (Inductor CUDA graphs), Triton, FlashAttention, Jax, etc.
- OhNoNotAgain_99 1y ago[dead]
- ManlyBread 1y agoI have been thinking about this a lot ever since I played a game called "Balatro". In this game nothing extraordinary happens in terms of computing - some computations get done, some images are shuffled around on the screen, the effects are sparse. The hardware requirements aren't much by modern standards, but still, this game could be ported 1:1 to a machine with Pentium II with a 3dfx graphics card. And yet it demands so much more - not a lot by today standards, but still. I am tempted to try to run it on a 2010 netbook to see if it even boots up.
- reidrac 1y agoIt is made in lua using love2d. That helped the developers and comes with a cost in minimal requirements (even if they aren't much for a game released in 2024).
- 0xDEAFBEAD 1y agoOne way to think about it is: If we were coding all our games in C with no engine, they would run faster, but we would have far fewer games. Fewer games means fewer hits. Odds are Balatro wouldn't have been made, because those developer hours would've been allocated to some other game which wasn't as good.
- gwern 1y agoBalatro was started in vacation time and underwent a ton of tweaking: https://localthunk.com/blog/balatro-timeline-3aarh https://localthunk.com/blog/balatro-timeline-3aarh So if it had to be written in C, probably neither of those would have happened.
- thn-gap 1y agoThe game is ported to switch, and it does run slow when you do big combos. You can feel it visually to the point that it's a bit annoying.
- xg15 1y agoMeanwhile on every programmer's 101 forum: "Space is cheap! Premature optimization is the root of all evil! Dev time > runtime!"
- abanana 1y agoExactly. Yes I understand the meaning behind it, but the line gets drummed into developers everywhere, the subtleties and real meaning are lost, and every optimisation- or efficiency-related question on Stack Overflow is met with cries of "You're doing it wrong! Don't ever think about optimising unless you're certain you have a problem!" This habit of pushing it to extremes, inevitably leads to devs not even thinking about making their software efficient. Especially when they develop on high-end hardware and don't test on anything slower. Perhaps a classic case where a guideline, intended to help, ends up causing ill effects by being religiously stuck to at all times, instead of fully understanding its meaning and when to use it. A simple example comes to mind, of a time I was talking to a junior developer who thought nothing of putting his SQL query inside a loop. He argued it didn't matter because he couldn't see how it would make any difference in that (admittedly simple) case, to run many queries instead of one. To me, it betrays a manner of thinking. It would never have occurred to me to write it the slower way, because the faster way is no more difficult or time-consuming to write. But no, they'll just point to the mantra of "premature optimisation" and keep doing it the slow way, including all the cases where it unequivocally does make a difference.
- hnlurker22 1y agoMy professor back in the day told me that "software is eating hardware". No matter how hardware gets advanced, software will utilize that advancement.
- VoodooJuJu 1y ago[dead]
- shadowgovt 1y agoReally no notes on this. Carmack hit both sides of the coin: - the way we do industry-scale computing right now tends to leave a lot of opportunity on the table because we decouple, interpret, and de-integrate where things would be faster and take less space if we coupled, compiled, and made monoliths - we do things that way because it's easier to innovate, tweak, test, and pivot on decoupled systems that isolate the impact of change and give us ample signal about their internal state to debug and understand them
- knowitnone 1y agoI already run on older hardware and most people can if they chose to - haven't bought a new computer since 2005. Perhaps the OS can adopt a "serverless" model where high computational tasks are offloaded as long as there is sufficient bandwidth.
- jmward01 1y agoThe goal isn't optimized code, it is utility/value prop. The question then is how do we get the best utility/value given the resources we have. This question often leads to people believing optimization is the right path since it would use fewer resources and therefore the value prop would be higher. I believe they are both right and wrong. For me, almost universally, good optimization ends up simplifying things as it speeds things up. This 'secondary' benefit, to me, is actually the primary benefit. So when considering optimizations I'd argue that performance gains are a potential proxy for simplicity gains in many cases so putting a little more effort into that is almost always worth it. Just make sure you actually are simplifying though.
- jayd16 1y agoYou're just replacing one favorite solution with another. Would users want simplicity at the cost of performance? Would they pay more for it? I don't think so. You're right that the crux of it is that the only thing that matters is pure user value and that it comes in many forms. We're here because development cost and feature set provide the most obvious value.
- yencabulator 1y agoZ+6 months: Start porting everything to Collapse OS https://collapseos.org/ https://collapseos.org/
- Devasta 1y agoImagine software engineering was like real engineering, where the engineers had licensing and faced fines or even prison for negligence. How much of the modern worlds software would be tolerated? Very, very little. If engineers handled the Citicorp center the same way software engineers did, the fix would have been to update the documentation in Confluence to not expose the building to winds and then later on shrug when it collapsed.
- bitwize 1y ago"If this country built bridges they way it builds [information] systems, we'd be a nation run by ferryboats." --Tim Bryce
- cogman10 1y agoI'm going to be pretty blunt. Carmack gets worshiped when he shouldn't be. He has several bad takes in terms of software. Further, he's frankly behind the times when it comes to the current state of the software ecosystem. I get it, he's legendary for the work he did at id software. But this is the guy who only like 5 years ago was convinced that static analysis was actually a good thing for code. He seems to have a perpetual view on the state of software. Interpreted stuff is slow, networks are slow, databases are slow. Everyone is working with Pentium 1s and 2MB of ram. None of these are what he thinks they are. CPUs are wicked fast. Interpreted languages are now within a single digit multiple of natively compiled languages. Ram is cheap and plentiful. Databases and networks are insanely fast. Good on him for sharing his takes, but really, he shouldn't be considered a "thought leader". I've noticed his takes have been outdated for over a decade. I'm sure he's a nice guy, but I believe he's fallen into a trap that many older devs do. He's overestimating what the costs of things are because his mental model of computing is dated.
- xondono 1y ago> Interpreted languages are now within a single digit multiple of natively compiled languages. You have to be either clueless or delusional if you really believe that.
- zahlman 1y agoA simple do-nothing for loop in JavaScript via my browser's web console will run at hundreds of MHz. Single-threaded, implicitly working in floating-point (JavaScript being what it is) and on 2014 hardware (3GHz CPU).
- cogman10 1y agoLet me specify that what I'm calling interpreted (and I'm sure carmack agrees) is languages with a VM and JIT. The JVM and Javascript both fall into this category. The proof is in the pudding. [1] The JS version that ran in 8.54 seconds [2] did not use any sort of fancy escape hatches to get there. It's effectively the naive solution. But if you look at the winning C version, you'll note that it went all out pulling every single SIMD trick in the book to win [3]. And with all that, the JS version is still only ~4x slower (single digit multiplier). And if you look at the C++ version which is a near direct translation [4] which isn't using all the SIMD tricks in the books to win, it ran in 5.15. Bringing the multiple down to 1.7x. Perhaps you weren't thinking of these JIT languages as being interpreted. That's fair. But if you did, you need to adjust your mental model of what's slow. JITs have come a VERY long way in the last 20 years. I will say that languages like python remain slow. That wasn't what I was thinking of when I said "interpreted". It's definitely more than fair to call it an interpreted language. [1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/nbody.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/... [2] https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-node-6.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/... [3] https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-gcc-9.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/... [4] https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-gpp-9.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- markus_zhang 1y agoI think optimizations only occur when the users need them. That is why there are so many tricks for game engine optimization and compiling speed optimization. And that is why MSFT could optimize the hell out of VSCode. People simply do not care about the rest. So there will be as little money spent on optimization as possible.
- joaohaas 1y agoHN: Yeah! We should be go back to writing optimized code that fully uses the hardware capabilities! Also HN: Check this new AI tool that consumes 1000x more energy to do the exact same thing we could already do, but worse and with no reproducibility
- BeFlatXIII 1y agoGoogle the goomba fallacy
- redleader55 1y agoCarmack is a very smart guy and I agree with the sentiment behind his post, but he's a software guy. Unfortunately for all of us hardware has bugs, sometimes bugs so bad that you need to drop 30-40% of your performance to mitigate them - see Spectre, Meltdown and friends. I don't want the crap Intel has been producing for the last 20 years, I want the ARM, RiscV and AMD CPUs from 5 years in the future. I don't want a GPU by Nvidia that comes with buggy drivers and opaque firmware updates, I want the open source GPU that someone is bound to make in the next decade. I'm happy 10gb switches are becoming a thing in the home, I don't want the 100 mb hubs from the early 2000s.
- abetaha 1y agoSadly software optimization doesn't offer enough cost savings for most companies to address consumer frustration. However, for large AI workloads, even small CPU improvements yield significant financial benefits, making optimization highly worthwhile.
- fdr 1y agoOne of the things I think about sometimes, a specific example rather than a rebuttal to Carmack. The Electron Application is somewhere between tolerated and reviled by consumers, often on grounds of performance, but it's probably the single innovation that made using my Linux laptop in the workplace tractable. And it is genuinely useful to, for example, drop into a MS Teams meeting without installing. So, everyone laments that nothing is as tightly coded as Winamp anymore, without remembering the first three characters.
- bigstrat2003 1y ago> So, everyone laments that nothing is as tightly coded as Winamp anymore, without remembering the first three characters. I would far, far rather have Windows-only software that is performant than the Electron slop we get today. With Wine there's a decent chance I could run it on Linux anyway, whereas Electron software is shit no matter the platform.
- jeroenhd 1y agoWine doesn't even run Office, there's no way it'd run whatever native video stack Teams would use. Linux has Teams purely because Teams decided to go with web as their main technology. Even the Electron version of Teams on Linux has a reduced feature set because there's no Office to integrate with.
- kristianp 1y agoOf course Wine can run office! At least Word and Excel I have used under Wine. They're probably some of the primary targets of compatibility work.
- gmerc 1y agoPerfect parallel to the madness that is AI. With even modest sustainability incentives, the industry wouldn't have pulverized a trillion dollar on training models nobody uses to dominate the weekly attention fight and fundraising game. Evidence: DeepSeek
- turtlebits 1y ago1. Consumers are attracted to pretty UIs and lots of features, which pretty much drives inefficiency. 2. The consumers that have the money to buy software/pay for subscriptions have the newer hardware.
- cletus 1y agoSo I've worked for Google (and Facebook) and it really drives the point home of just how cheap hardware is and how not worth it optimizing code is most of the time. More than a decade ago Google had to start managing their resource usage in data centers. Every project has a budget. CPU cores, hard disk space, flash storage, hard disk spindles, memory, etc. And these are generally convertible to each other so you can see the relative cost. Fun fact: even though at the time flash storage was ~20x the cost of hard disk storage, it was often cheaper net because of the spindle bottleneck. Anyway, all of these things can be turned into software engineer hours, often called "mili-SWEs" meaning a thousandth of the effort of 1 SWE for 1 year. So projects could save on hardware and hire more people or hire fewer people but get more hardware within their current budgets. I don't remember the exact number of CPU cores amounted to a single SWE but IIRC it was in the thousands. So if you spend 1 SWE year working on optimization acrosss your project and you're not saving 5000 CPU cores, it's a net loss. Some projects were incredibly large and used much more than that so optimization made sense. But so often it didn't, particularly when whatever code you wrote would probably get replaced at some point anyway. The other side of this is that there is (IMHO) a general usability problem with the Web in that it simply shouldn't take the resources it does. If you know people who had to or still do data entry for their jobs, you'll know that the mouse is pretty inefficient. The old terminals from 30-40+ years ago that were text-based had some incredibly efficent interfaces at a tiny fraction of the resource usage. I had expected that at some point the Web would be "solved" in the sense that there'd be a generally expected technology stack and we'd move on to other problems but it simply hasn't happened. There's still a "framework of the week" and we're still doing dumb things like reimplementing scroll bars in user code that don't work right with the mouse wheel. I don't know how to solve that problem or even if it will ever be "solved".
- karmakaze 1y agoGoogle doesn't come up with better compression and binary serialization formats just for fun--it improves their bottom line.
- xondono 1y agoExcept you’re self selecting for a company that has high engineering costs, big fat margins to accommodate expenses like additional hardware, and lots of projects for engineers to work on. The evaluation needs to happen in the margins, even if it saves pennies/year on the dollar, it’s best to have those engineers doing that than have them idling. The problem is that almost no one is doing it, because the way we make these decisions has nothing to do with the economical calculus behind, most people just do “what Google does”, which explains a lot of the disfunction.
- pmontra 1y agoI work on a laptop from 2014. An i7 4xxx with 32 GB RAM and 3 TB SSD. It's OK for Rails and for Django, Vue, Slack, Firefox and Chrome. Browsers and interpreters got faster. Luckily there was pressure to optimize especially in browsers.
- 1vuio0pswjnm7 1y agoWorks without Javascript: https://nitter.poast.org/ID_AA_Carmack/status/1922100771392520710 https://nitter.poast.org/ID_AA_Carmack/status/19221007713925...
- narag 1y agoHow much of the extra power has gone to graphics? Most of it?
- generalizations 1y agoThe world runs on the maximization of ( - entropy / $) and that's definitely not the same thing as minimizing compute power or bug count.
- vishalontheline 1y agoWhen it's free, it doesn't need to be performant unless the free competition is performant.
- westurner 1y agoCode bloat: https://en.wikipedia.org/wiki/Code_bloat https://en.wikipedia.org/wiki/Code_bloat Software bloat > Causes: https://en.wikipedia.org/wiki/Software_bloat#Causes https://en.wikipedia.org/wiki/Software_bloat#Causes Program optimization > Automated and manual optimization: https://en.wikipedia.org/wiki/Program_optimization#Automated_and_manual_optimization https://en.wikipedia.org/wiki/Program_optimization#Automated...
- jrowen 1y agoThis is the story of life in a nutshell. It's extremely far from optimized, and that is the natural way of all that it spawns. It almost seems inelegant to attempt to "correct" it.
- WillAdams 1y agoWirth's Law: >software is getting slower more rapidly than hardware is becoming faster. https://en.wikipedia.org/wiki/Wirth%27s_law https://en.wikipedia.org/wiki/Wirth%27s_law
- Mr_Minderbinder 1y agoUnfortunately there is a distinct lack of any scientific investigation or rigorous analysis into the phenomenon allegedly occurring that is called “Wirth’s Law” unlike, say, Moore’s Law despite many anecdotal examples. Reasoning as if it were literally true leads to absurd conclusions that do not correspond with any reality that I can observe so I am tempted to say that as a broad phenomenon it is obviously false and that anyone who suggests otherwise is being disingenuous. For it to be true there would have to have been no progress whatever in computing-enabled technologies, yet the real manifestations of the increase in computing resources and the exploitation thereof permeates, alters and invades almost every aspect of society and of our personal day to day lives at a constantly increasing rate.
- WillAdams 1y agoCall it the X-Windows factor --- software gets more capable/more complex and there's a constant leap-frogging (new hardware release, stuff runs faster, software is written to take advantage of new hardware, things run more slowly, software is optimized, things run more quickly). The most striking example of this was Mac OS X Public Beta --- which made my 400MHz PowerPC G3 run at about the same speed as my 25 MHz NeXT Cube running the quite similar OPENSTEP 4.2 (just OS X added Java and Carbon and so forth) --- but each iteration got quicker until by 10.6.8, it was about perfect.
- Earw0rm 1y agoOptimise is never a neutral word. You always optimise FOR something at the expense of something. And that can, and frequently should, be lean resource consumption, but it can come at a price. Which might be one or more of: Accessibility. Full internationalisation. Integration paradigms (thinking about how modern web apps bring UI and data elements in from third parties). Readability/maintainability. Displays that can actually represent text correctly at any size without relying on font hinting hacks. All sorts of subtle points around UX. Economic/business model stuff (megabytes of cookie BS on every web site, looking at you right now.) Etc.
- cannabis_sam 1y agoAs long as sufficient amounts of wealthy people are able to wield their money as a force to shape society, this is will always be the outcome. Unfortunately,in our current society a rich group of people with a very restricted intellect, abnormal psychology, perverse views on human interaction and a paranoid delusion that kept normal human love and compassion beyond their grasp, were able to shape society to their dreadful imagination. Hopefully humanity can make it through these times, despite these hateful aberrations doing their best to wield their economic power to destroy humans as a concept.
- AtNightWeCode 1y agoWell, it is a point. But also remember the horrors of the monoliths he made. Like in Quake (123?) where you have hacks like if level name contains XYZ then do this magic. I think the conclusion might be wrong.
- MisterBastahrd 1y agoThe world will seek out software optimization only after hardware reaches its physical limits. We're still in Startup Land, where it's more important to be first than it is to be good. From that point onward, you have to make a HUGE leap and your first-to-market competitor needs to make some horrendous screwups in order to overtake them. The other problem is that some people still believe that the masses will pay more for quality. Sometimes, good enough is good enough. Tidal didn't replace iTunes or Spotify, and Pono didn't exactly crack the market for iPods.
- JohnMakin 1y agodon't major cloud companies do this and then sell the gains as a commodity?
- floathub 1y ago> npx create-expo-app@latest --template blank HelloWorldExpoReact > du -h HelloWorldExpoReact/ 258M! A quarter of a gigabyte for a HelloWorld example. Sheesh.
- actuallyalys 1y agoCarmack is right to some extent, although I think it’s also worth mentioning that people replace their computers for reasons other than performance, especially smartphones. Improvements in other components, damage, marketing, and status are other reasons. It’s not that uncommon for people to replace their phone after two years, and as someone who’s typically bought phones that are good but not top-of-the-line, I’m skeptical all of those people’s phones are getting bogged down by slow software.
- southernplaces7 1y agoReminded me of this interesting thought experiment https://x.com/lauriewired/status/1922015999118680495 https://x.com/lauriewired/status/1922015999118680495
- giancarlostoro 1y agoIf the tooling had kept up. We went from RADs that built you fully native GUIs to abandoning ship and letting Electron take over. Anyone else have 40 web browsers installed and they are each some Chromium hack?
- socalgal2 1y agoSorry, don't want to go back to a time where I could only edit ASCII in a single font. Do I like bloat? No. Do I like more software rather than less? Yes! Unity and Unreal are less efficient than custom engines but there are 100x more titles because that tradeoff of efficiency of the CPU vs efficiency of creation. The same is true for website based app (both online and off). Software ships 10x faster as a web page than as a native app for (windows/mac/linux/android/ios). For most, that's all I need. Even for native like apps, I use photopea.com over photoshop/gimp/krita/affinity etc because it's available everywhere no matter which machine I use or who's machine it is. Is it less efficient running in JS in the browser? Probaby. Do I care? No VSCode, now the most popular editor in the worlds (IIRC) is web-tech. This has so many benefits. For one, it's been integrated into 100s of websites, so this editor I use is available in more places. It's using tech more people know so more extension that do more things. Also, probably arguably because of JS's speed issues, it encouraged the creation of the Language Server Protocol. Before this, every editor rolled their own language support. The LSP is arguably way more bloat than doing it directly in the editor. I don't care. It's a great idea, way more flexible. Any language can write one LSP and then all editors get support for that language.
- dehrmann 1y agoThis is Carmack's favorite observation over the last decade+. It stems from what made him successful at id. The world's changed since then. Home computers are rarely compute-bound, the code we write is orders of magnitude more complex, and compilers have gotten better. Any wins would come at the cost of a massive investment in engineering time or degraded user experience.
- cadamsdotcom 1y agoConsider UX: Click the link and contemplate while X loads. First, the black background. Next it spends a while and you're ready to celebrate! Nope, it was loading the loading spinner. Then the pieces of the page start to appear. A few more seconds pass while the page is redrawn with the right fonts; only then can you actually scroll the page. Having had some time to question your sanity for clicking, you're grateful to finally see what you came to see. So you dwell 10x as long, staring at a loaded page and contemplating the tweet. You dwell longer to scroll and look at the replies. How long were you willing to wait for data you REALLY care about? 10-30 seconds; if it's important enough you'll wait even longer. Software is as fast as it needs to be to be useful to humans. Computer speed doesn't matter. If the computer goes too fast it may even be suspected of trickery.
- benced 1y agoFeels like half of this thread didn't read or ignored his last line: "Innovative new products would get much rarer without super cheap and scalable compute, of course."
- teleforce 1y agoIn the last Def Con 32 the badge can run full Doom on puny Pico 2 microcontroller [1]. [1] Running Doom on the Raspberry Pi Pico 2: A Def Con 32 Badge Hack: https://shop.sb-components.co.uk/blogs/posts/running-doom- https://shop.sb-components.co.uk/blogs/posts/running-doom-
- quantadev 1y agoDevelopers over 50ish (like me) grew up at a time when CPU performance and memory constraints affected every application. So you had to always be smart about doing things efficiently with both CPU and memory. Younger developers have machines that are so fast they can be lazy with all algorithms and do everything 'brute force'. Like searching thru an array every time when a hashmap would've been 10x faster. Or using all kinds of "list.find().filter().any().every()" chaining nonsense, when it's often smarter to do ONE loop, and inside that loop do a bunch of different things. So younger devs only optimize once they NOTICE the code running slow. That means they're ALWAYS right on the edge of overloading the CPU, just thru bad coding. In other words, their inefficiencies will always expand to fit available memory, and available clock cycles.
- oatmeal_croc 1y agoYes, but it is not a priority. GTM is the priority. Make money machine go brrr.
- deleted 1y ago[deleted]
- diego_sandoval 1y agoI generally believe that markets are somewhat efficient. But somehow, we've ended up with the current state of Windows as the OS that most people use to do their job. Something went terribly wrong. Maybe the market is just too dumb, maybe it's all the market distortions that have to do with IP, maybe it's the monopolístic practices of Microsoft. I don't know, but in my head, no sane civilization would think that Windows 10/11 is a good OS that everyone should use to optimize our economy. I'm not talking only about performance, but about the general crappiness of the experience of using it.
- casey2 1y agoTrue for large corporations. But for individuals the ability to put what was previously an entire stacks in a script that doesn't call out to the internet will be a big win. How many people are going to write and maintain shell scripts with 10+ curls? If we are being honest this is the main reason people use python.
- rsynnott 1y agoWell, yes, I mean, the world could run on less of all sorts of things, if efficient use of those things were a priority. It's not, though.
- melissabaerz60 1y ago[flagged]
- emsign 1y ago8bit/16bit demo scene can do it, but that's true dedication.
- shireboy 1y ago.NET has made great strides in this front in recent years. Newer versions optimize cpu and ram usage of lots of fundamentals, and introduced new constructs to reduce allocations and cpu for new code. One might argue they were able because they were so bad, but it’s worth looking into if you haven’t in a while.
- branko_d 1y agoOften, this is presented as a tradeoff between the cost of development and the cost of hardware. However, there is a third leg of that stool: the cost of end-user experience. When you have a system which is sluggish to use because your skimped on development, it is often the case that you cannot make it much faster no matter how expensive is the hardware you throw at it. Either there is a single-threaded critical path, so you hit the limit of what one CPU can do (and adding more does not help), or you hit the laws of physics, such as with network latency which is ultimately bound by the speed of light. And even when the situation could be improved by throwing more hardware at it, this is often done only to the extent to make the user experience "acceptable", but not "great". In either case, the user experience suffers and each individual user is less productive. And since there are (usually) orders of magnitude more users than developers, the total damage done can be much greater than the increased cost of performance-focused development. But the cost of development is "concentrated" while the cost of user experience is "distributed", so it's more difficult to measure or incentivize for. The cost of poor user experience is a real cost, is larger than most people seem to think and is non-linear. This was observed in the experiments done by IBM, Google, Amazon and others decades ago. For example, take a look at: The Economic Value of Rapid Response Time https://jlelliotton.blogspot.com/p/the-economic-value-of-rapid-response.html https://jlelliotton.blogspot.com/p/the-economic-value-of-rap... He and Richard P. Kelisky, Director of Computing Systems for IBM's Research Division, wrote about their observations in 1979, "...each second of system response degradation leads to a similar degradation added to the user's time for the following [command]. This phenomenon seems to be related to an individual's attention span. The traditional model of a person thinking after each system response appears to be inaccurate. Instead, people seem to have a sequence of actions in mind, contained in a short-term mental memory buffer. Increases in SRT [system response time] seem to disrupt the thought processes, and this may result in having to rethink the sequence of actions to be continued."
- randomcarbloke 1y agoisn't this Bane's rule?: https://news.ycombinator.com/item?id=8902739 https://news.ycombinator.com/item?id=8902739
- runlaszlorun 1y agoWow. That's a great comment. Been on a similar path myself lately. Thanks for posting.
- mcflubbins 1y agoWe have customers with thousands of machines that are still using spinning, mechanical 54000 RPM drives. The machines are unbelievably slow and only get slower with every single update, its nuts.
- Paianni 1y agoSo Metal and DirectX 12 capable GPUs are already hard requirements for their respective platforms, and I anticipate that Wayland compositors will start depending on Vulkan eventually. That will make pre-Broadwell laptops generally obsolete and there aren't many AMD laptops of that era that are worth saving. Servers don't need a graphical environment, but the inefficiencies of older hardware are much more acute in this context compared to personal computing, where the full capabilities of the hardware are rarely exploited.
- more_corn 1y agoThe world could run on old hardware if you wiped your win10 machines and installed Linux instead of buying new win11 machines.
- nurettin 1y agoIf memory doesn't fail me, we kind of went through this phase back in the early 2010s when a lot of companies rewrote their php/ruby web applications and delayed jobs in go, blogging about experiencing speedups and lowering server costs.
- fennecfoxy 1y agoOh look, Carmack says something obvious again and people listen to it like gospel. Don't get me wrong, I like the guy. But what has he done since getting booted from id/Doom team? Espousing VR but with no real breakthroughs in the space with his name on them? I'm thankful for Doom 2016. Without booting him it would have never been possible. Although looking at the recent vikings-wannabe expansion with a ridiculous, dumb "story" seems they've lost the plot again-executives get their grubby fingers into franchises. People just wanna rip&tear, don't need a story for that - if anything focus on combat/environment/number of enemy improvements & leave it at that.