[HN Gopher] The world could run on older hardware if software op...
___________________________________________________________________
The world could run on older hardware if software optimization was
a priority
Author : turrini
Score : 526 points
Date : 2025-05-13 10:31 UTC (12 hours ago)
(HTM) web link (twitter.com)
(TXT) w3m dump (twitter.com)
| AndrewDucker wrote:
| Well, 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 wrote:
| It'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 wrote:
| It 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 wrote:
| I 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 wrote:
| > 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 wrote:
| From 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 wrote:
| Most people today could be using excel '98 and be no less
| productive.
| skydhash wrote:
| In 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 wrote:
| It'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.
| victorbjorklund wrote:
| Not 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 wrote:
| Try 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.
| inetknght wrote:
| > _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 wrote:
| It'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 wrote:
| > _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 wrote:
| Also offloaded to the miserable devs maintaining the
| system.
| knowitnone wrote:
| would 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 wrote:
| Efficiency 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 wrote:
| > _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 wrote:
| I 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.
| criticalfault wrote:
| You have just explained how enshitification works.
| conductr wrote:
| Ultimately 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.
| nottorp wrote:
| Unfortunately, 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 wrote:
| What 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 wrote:
| > Time is the one thing that isn't cheap here.
|
| Right, and that's true of end users as well. It's just not
| taken into account by most businesses.
|
| I think your take is pretty reasonable, but I think most
| software is too far towards slow and bloated these days.
|
| Browsers are pretty good, but developers create horribly slow
| and wasteful web apps. That's where the optimization should
| be done. And I don't mean they should make things as fast as
| possible, just test on an older machine that a big chunk of
| the population might still be using, and make it feel
| somewhat snappy.
|
| The frustrating part is that most web apps aren't really
| doing anything that complicated, they're just built on layers
| of libraries that the developers don't understand very well.
| I don't really have a solution to any of this, I just wish
| developers cared a little bit more than they do.
| cube00 wrote:
| > I just wish developers cared a little bit more than they
| do.
|
| Ask the nice product owner to stop crushing me with their
| deadlines and I'll happily oblige.
| nottorp wrote:
| > The hardware is dirt cheap.
|
| It's not, because you multiply that 100% extra CPU time by
| all of an application's users and only then you come to the
| real extra cost.
|
| And if you want to pick on "application", think of the widely
| used libraries and how much any non optimization costs when
| they get into everything...
| kreco wrote:
| Your whole reply is focused at business level but not
| everybody can afford 32GB of RAM just to have a smooth
| experience on a web browser.
| inetknght wrote:
| > _The hardware is dirt cheap._
|
| Maybe to you.
|
| Meanwhile plenty of people are living paycheck-to-paycheck
| and literally cannot afford a phone, let alone a new phone
| and computer every few years.
| vermilingua wrote:
| Related: https://duskos.org/
| tutuca wrote:
| Oh man, that's lovely. Awesome project!
| freddie_mercury wrote:
| The world DOES run on older hardware.
|
| How new do you think the CPU in your bank ATM or car's ECU is?
| kunley wrote:
| Related: I wonder what cpu Artemis/Orion is using
| jsheard wrote:
| IBM 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-
| artem...
| ngangaga wrote:
| I'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 wrote:
| Put 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 wrote:
| I 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.
| rescbr wrote:
| > But you don't need custom hardware to achieve radiation
| hardening
|
| Citation needed
|
| > much less hiring fucking IBM
|
| It's an IBM designed processor, what are you talking
| about?!
| dreamcompiler wrote:
| > fancy radiation-hardened versions
|
| Ha! What's special about rad-hard chips is that they're
| _old_ designs. You need big geometries to survive cosmic
| rays, and new chips all have tiny geometries.
|
| So there are two solutions:
|
| 1. Find a warehouse full of 20-year old chips.
|
| 2. Build a fab to produce 20-year old designs.
|
| Both approaches are used, and both approaches are
| expensive. (Approach 1 is expensive because as you
| eventually run out of chips they become very, very valuable
| and you end up having to build a fab anyway.)
|
| There's more to it than just big geometries but that's a
| major part of the solution.
| scrapheap wrote:
| Well I know the CPU in my laptop is already over 10 years old
| and still works good enough for everything I do.
| forinti wrote:
| My daily drivers at home are an i3-540 and and Athlon II X4.
| Every time something breaks down, I find it much cheaper to
| just buy a new part than to buy a whole new kit with
| motherboard/CPU/RAM.
|
| I'm a sysadmin, so I only really need to log into other
| computers, but I can watch videos, browse the web, and do
| some programming on them just fine. Best ROI ever.
| hiq wrote:
| > I can watch videos
|
| Can you watch H.265 videos? That's the one limitation I
| regularly hit on my computer (that I got for free from some
| company, is pretty old, but is otherwise good enough that I
| don't think I'll replace it until it breaks). I don't think
| I can play videos recorded on modern iPhones.
| forinti wrote:
| Yes, they play just fine with Gnome Videos or VLC. Both
| machines have a GeForce GT 710 on them.
| PUSH_AX wrote:
| Some of it does.
|
| The chips in everyones pockets do a lot of compute and are
| relatively new though.
| ngangaga wrote:
| Sure, if you think the world consists of cash transactions and
| whatever a car needs to think about.
| leonheld wrote:
| If we're talking numbers, there are many, many more embedded
| systems than general purpose computers. And these are mostly
| built on ancient process nodes compared to the cutting edge
| we have today; the shiny octa-cores on our phones are
| supported by a myriad of ancilliary chips that are definitely
| not cutting edge.
| ngangaga wrote:
| We aren't talking numbers, though. Who cares about
| embedded? I mean that literally. This is computation
| invisible by design. If that were sufficient we wouldn't
| have smartphones.
| rescbr wrote:
| In a way, and for a long time, smartphones were/are
| defined as embedded devices.
|
| I still don't see how one can classify a smartphone as a
| general-purpose computing device, even though they have
| enough computing power as a laptop.
| dsego wrote:
| Doom can run on Apple's Lightning to HDMI adapter.
| alnwlsn wrote:
| A USB charger is more powerful than the Apollo Guidance
| Computer: https://web.archive.org/web/20240101203337/https://
| forresthe...
| KolmogorovComp wrote:
| Powerplants and planes still run on 80s hardware.
| Jtsummers wrote:
| Modern planes do not, and many older planes have been
| retrofitted, in whole or in part, with more modern computers.
|
| Some of the specific embedded systems (like the sensors that
| feed back into the main avionics systems) may still be using
| older CPUs if you squint, but it's more likely a modern
| version of those older designs.
| alnwlsn wrote:
| There's a decent chance something in the room you're in right
| now is running an 8051 core.
| yonisto wrote:
| I'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 wrote:
| Let'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 wrote:
| > 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 wrote:
| I/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.
| _aavaa_ wrote:
| There's servers and there's all of the rest of consumer
| hardware.
|
| I need to buy a new phone every few years simply because the
| manufacturer refuses to update it. Or they add progressively
| more computationally expensive effects that makes my old
| hardware crawl. Or the software I use only supports 2 old
| version of macOS. Or Microsoft decides that your brand new cpu
| is no good for win 11 because it's lacking a TPM. Or god help
| you if you try to open our poorly optimized electron app on
| your 5 year old computer.
| busterarm wrote:
| But Carmack is clearly talking about servers here. That is my
| problem -- the main audience is going to read this and think
| about personal compute.
|
| All those situations you describe are also a choice made so
| that companies can make sales.
| _aavaa_ wrote:
| It shows up in different ways, and I agree that some of my
| examples are planned obsolescence.
|
| I'm not so sure they're that different though. I do think
| that in the end most boil down to the same problem: no
| emphasis or care about performance.
|
| Picking a programming paradigm that all but incentivizes
| N+1 selects is stupid. An N+1 select is not an I/O problem,
| it's a design problem.
| pdhborges wrote:
| I'm looking at our Datadog stats right now. It is 64% cpu 36%
| IO.
| busterarm wrote:
| That's great for you. How much infrastructure do you run?
| pdhborges wrote:
| Small Python backend deployment 30 machines 1 DB.
| titzer wrote:
| I 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.
| ngangaga wrote:
| I don't think it's that deep. We are just stuck with browsers
| now, for better and worse. Everything else trails.
| slowmovintarget wrote:
| We're stuck with browsers now until the primary touch with
| the internet is assistants / agent UIs / chat consoles.
|
| That could end up being Electron (VS Code), though that would
| be a bit sad.
| scotty79 wrote:
| I don't think we are gonna go there. Talking is cumbersome.
| There's a reason, besides social anxiety that people prefer
| to use self-checkout and electronically order fastfood.
| There are easier ways to do a lot of things than with
| words.
|
| I'd bet on maybe ad hoc ai designed ui-s you click but have
| a voice search when you are confused about something.
| bluGill wrote:
| If you know what you want then not talking to a human is
| faster. However if you are not sure a human can figure
| out. I'm not sure I'd trust a voice assistant - the value
| in the human is an informed opinion which is hard to
| program, but it is easy to program a recommendation for
| whatever makes the most profit. Of course humans often
| don't have an informed opinion either, but at least
| sometimes they do, and they will also sometimes admit it
| when they don't.
| scotty79 wrote:
| > the value in the human is an informed opinion which is
| hard to program
|
| I don't think I ever used a human for that. They are
| usually very uninformed about everything that's not their
| standard operational procedure or some current
| promotional materials.
| bluGill wrote:
| 20 years ago when I was at McDonalds there would be
| several customers per shift (so many 1 in 500?) who
| didn't know what they wanted and asked for a
| recommendation. Since I worked there I ate there often
| enough to know if the special was something I liked or
| not.
| scotty79 wrote:
| Bless your souls. I'm not saying it doesn't happen. I
| just personally had only bad experiences so I actively
| avoid human interactive input in my commercial activity.
| slowmovintarget wrote:
| Search is being replaced by LLM chat. Agent workflows are
| going to get us to a place where people can rally
| software to their own purposes. At that point, they don't
| have to interact with the web front end, they can
| interact with their own personal front-end that is able
| to navigate your backend.
|
| Today a website is easier. But just like there's a very
| large percentage of people doing a great many things from
| their phone instead of tying themselves to a full-blown
| personal computer, there will be an increasing number of
| people who send their agents off to get things done. In
| that scenario, the user interface is further up the stack
| than a browser, if there's a browser as typically
| understood in the stack at all.
| ngangaga wrote:
| I think it'd be pretty funny if to book travel in 2035 you
| need to use a travel agent that's objectively dumber than a
| human. We'd be stuck in the eighties again, but this time
| without each other to rely on.
|
| Of course, that would be suicide for the industry. But I'm
| not sure investors see that.
| vrighter wrote:
| Don't forget the law of large numters. 5% performance hit on
| one system is one thing, 5% across almost all of the current
| computing landscape is still a pretty huge value.
| titzer wrote:
| It's about 5%.
|
| Cost of cyberattacks globally[1]: O($trillions)
|
| Cost of average data breach[2][3]: ~$4 million
|
| Cost of lost developer productivity: unknown
|
| We're really bad at measuring the secondary effects of our
| short-sightedness.
|
| [1] https://iotsecurityfoundation.org/time-to-fix-our-
| digital-fo...
|
| [2] https://www.internetsociety.org/resources/doc/2023/how-
| to-ta...
|
| [3] https://www.ibm.com/reports/data-breach
| pron wrote:
| But it's not free for the taking. The point is that we'd get
| more than that 5%'s worth in exchange. So sure, we'll get
| significant value "if software optimization was truly a
| priority", but we get even _more_ value by making other
| things a priority.
|
| Saying "if we did X we'd get a lot in return" is similar to
| the fallacy of inverting logical implication. The question
| isn't, will doing something have significant value, but
| rather, to get the most value, what is the thing we should
| do? The answer may well be _not_ to make optimisation a
| priority even if optimisation has a lot of value.
| vrighter wrote:
| depends on whether the fact that software can be finished
| will ever be accepted. If you're constantly redeveloping
| the same thing to "optimize and streamline my experience"
| (please don't) then yes, the advantage is dubious. But if
| not, then the saved value in operating costs keeps
| increasing as time goes on. It won't make much difference
| in my homelab, but at datacenter scale it does
| pron wrote:
| Even the fact that value keeps increasing doesn't mean
| it's a good idea. It's a good idea if it keeps increasing
| _more_ than other value. If a piece of software is more
| robust against attacks then the value in that also keeps
| increasing over time, possibly more than the cost in
| hardware. If a piece of software is easier to add
| features to, then that value also keeps increasing over
| time.
|
| If what we're asking is whether value => X, i.e. to get
| the most value we should do X, you cannot answer that in
| the positive by proving X => value. If optimising
| something is worth a gazillion dollars, you still should
| not do it if doing something else is worth two gazillion
| dollars.
| _aavaa_ wrote:
| Except we've squandered that 1000x not on bounds checking but
| on countless layers of abstractions and inefficiency.
| pydry wrote:
| Most 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 wrote:
| I 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.
| pydry wrote:
| >No user actually wants abundance.
|
| No, all users just want the few programs which they
| themselves need. The market is not one user, though. It's
| all of them.
| skydhash wrote:
| But each vendor only develop a few software and generally
| supports only three platforms -/+ one. It's so damning
| when I see projects reaching out for electron, when they
| only support macOS and Windows. And software like Slack
| has no excuse for being this slow on anything other than
| latest gen cpu and 1gb internet connection.
| pydry wrote:
| slack is shit along all sorts of dimensions (not just
| speed and bloat) because you're not the customer.
| bluGill wrote:
| Users only want 5% of the features of the few programs
| they use. However everyone has a different list of
| features and a different list of programs. And so to get
| a market you need all the features on all the programs.
| infogulch wrote:
| > They use few programs
|
| Yes but it's a different 'few programs' than 99% of all
| other users, so we're back to square one.
| ffsm8 wrote:
| > _Most of it was exchanged for abstractions which traded
| runtime speed for the ability to create apps quickly and
| cheaply._
|
| Really? Because while abstractions like that exist (i.e. a
| webserver frameworks, reactivity, SQL and ORMs etc), I
| would argue that these aren't the abstractions that cause
| the most maintenance and performance issues. These are
| usually in the domain/business application and often not
| something that made anything quicker to develop or
| anything, but instead created by a developer that just
| couldn't help themselves
| tonyarkles wrote:
| I think they're referring to Electron.
|
| Edit: and probably writing backends in Python or Ruby or
| JavaScript.
| Zak wrote:
| The backend programming language usually isn't a
| significant bottleneck; running dozens of database
| queries in sequence is the usual bottleneck, often
| compounded by inefficient queries, inappropriate
| indexing, and the like.
| sgarland wrote:
| Yep. I'm a DBRE, and can confirm, it's almost always the
| DB, _with_ the explicit caveat that it's also rarely the
| fault of the DB itself, but rather the fault of poor
| schema and query design.
|
| Queries I can sometimes rewrite, and there's nothing more
| satisfying than handing a team a 99% speed-up with a
| couple of lines of SQL. Sometimes I can't, and it's both
| painful and frustrating to explain that the reason the
| dead-simple single-table SELECT is slow is because they
| have accumulated billions of rows that are all bloated
| with JSON and low-cardinality strings, and short of at a
| minimum table partitioning (with concomitant query
| rewrites to include the partition key), there is nothing
| anyone can do. This has happened on giant instances,
| where I know the entire working set they're dealing with
| is in memory. Computers are fast, but there is a limit.
|
| The other way the DB gets blamed is row lock contention.
| That's almost always due to someone opening a transaction
| (e.g. SELECT... FOR UPDATE) and then holding it
| needlessly while doing other stuff, but sometimes it's
| due to the dev not being aware of the DB's locking
| quirks, like MySQL's use of gap locks if you don't
| include a UNIQUE column as a search predicate. Read docs,
| people!
| Zak wrote:
| It seems to me most developers don't want to learn much
| about the database and would prefer to hide it behind the
| abstractions used by their language of choice. I can
| relate to a degree; I was particularly put off by SQL's
| syntax (and still dislike it), but eventually came to see
| the value of leaning into the database's capabilities.
| Tainnor wrote:
| > ORMs
|
| Certain ORMs such as Rails's ActiveRecord are part of the
| problem because they create the illusion that local
| memory access and DB access are the same thing. This can
| lead to N+1 queries and similar issues. The same goes for
| frameworks that pretend that remote network calls are
| just a regular method access (thankfully, such frameworks
| seem to have become largely obsolete).
| _aavaa_ wrote:
| The fact that this was seen as an acceptable design
| decision both by the creators, and then taken up by the
| industry is in an of itself a sign of a serious issue.
| pona-a wrote:
| Did people make this exchange or did __the market__? I feel
| like we're assigning a lot of intention to a self-
| accelerating process.
|
| You add a new layer of indirection to fix that one problem
| on the previous layer, and repeat it ad infinitum until
| everyone is complaining about having too many layers of
| indirection, yet nobody can avoid interacting with them, so
| the only short-term solution is a yet another abstraction.
| grumpymuppet wrote:
| This is something I've wished to eliminate too. Maybe we just
| cast the past 20 years as the "prototyping phase" of modern
| infrastructure.
|
| It would be interesting to collect a roadmap for optimizing
| software at scale -- where is there low hanging fruit? What
| are the prime "offenders"?
|
| Call it a power saving initiative and get environmentally-
| minded folks involved.
| sgarland wrote:
| IMO, the prime offender is simply not understanding
| fundamentals. From simple things like "a network call is
| orders of magnitude slower than a local disk, which is
| orders of magnitude slower than RAM..." (and moreover, not
| understanding that EBS et al. are networked disks, albeit
| highly specialized and optimized), or doing insertions to a
| DB by looping over a list and writing each row
| individually.
|
| I have struggled against this long enough that I don't
| think there is an easy fix. My current company is the first
| I've been at that is taking it seriously, and that's only
| because we had a spate of SEV0s. It's still not easy,
| because a. I and the other technically-minded people have
| to find the problems, then figure out how to explain them
| b. At its heart, it's a culture war. Properly normalizing
| your data model is harder than chucking everything into
| JSON, even if the former will save you headaches months
| down the road. Learning how to profile code (and fix the
| problems) may not be exactly hard, but it's certainly
| harder than just adding more pods to your deployment.
| mike_hearn wrote:
| Use of underpowered databases and abstractions that don't
| eliminate round-trips is a big one. The hardware is fast
| but apps take seconds to load because on the backend
| there's a lot of round-trips to the DB and back, and the
| query mix is unoptimized because there are no DBAs anymore.
|
| It's the sort of thing that can be handled via better
| libraries, if people use them. Instead of Hibernate use a
| mapper like Micronaut Data. Turn on roundtrip diagnostics
| in your JDBC driver, look for places where they can be
| eliminated by using stored procedures. Have someone whose
| job is to look out for slow queries and optimize them, or
| pay for a commercial DB that can do that by itself. Also:
| use a database that lets you pipeline queries on a
| connection and receive the results asynchronously, along
| with server languages that make it easy to exploit that for
| additional latency wins.
| Gigachad wrote:
| Am I taking crazy pills or are programs not nearly as slow as
| HN comments make them out to be? Almost everything loads
| instantly on my 2021 MacBook and 2020 iPhone. Every program
| is incredibly responsive. 5 year old mobile CPUs load modern
| SPA web apps with no problems.
|
| The only thing I can think of that's slow is Autodesk Fusion
| starting up. Not really sure how they made that so bad but
| everything else seems super snappy.
| mjburgess wrote:
| People conflat the insanity of running a network cable
| through every application with the poor performance of
| their computers.
| sgarland wrote:
| Correction: devs have made the mistake of turning
| everything into remote calls, without having any
| understanding as to the performance implications of doing
| so.
|
| Sonos' app is a perfect example of this. The old app
| controlled everything locally, since the speakers set up
| their own wireless mesh network. This worked
| fantastically well. Someone at Sonos got the bright idea
| to completely rewrite the app such that it wasn't even
| backwards-compatible with older hardware, and everything
| is now a remote calls. Changing volume? Phone --> Router
| --> WAN --> Cloud --> Router --> Speakers. Just... WHY.
| This failed so spectacularly that the CEO responsible
| stepped down / was forced out, and the new one claims
| that fixing the app is his top priority. We'll see.
| mjburgess wrote:
| Presumably they wanted the telemetry. It's not clear that
| this was a dev-initiated switch.
|
| Perhaps we can blame the 'statistical monetization'
| policies of adtech and then AI for all this -- i'm not
| entirely sold on developers.
|
| What, after all, is the difference between an
| `/etc/hosts` set of loop'd records vs. an ISP's dns -- as
| far as the software goes?
| sgarland wrote:
| You're right, and I shouldn't necessarily blame devs for
| the idea, though I do blame their CTO for not standing up
| to it if nothing else.
|
| Though it's also unclear to me in this particular case
| why they couldn't collect commands being issued, and then
| batch-send them hourly, daily, etc. instead of having
| each one route through the cloud.
| skydhash wrote:
| > _Presumably they wanted the telemetry_
|
| Why not log them to a file and cron a script to upload
| the data? Even if the feature request is nonsensical, you
| can architect a solution that respect the platform's
| constraints. It's kinda like when people drag in React
| and Next.js just to have a static website.
| arolihas wrote:
| someone out there now has a cool resume line item about
| doing real time cloud microservices on the edge
| LocalPCGuy wrote:
| We (probably) can guess the why - tracking and data
| opportunities which companies can eventually sell or
| utilize for profit is some way.
| sorcerer-mar wrote:
| I think it's a very theoretical argument: we could of
| course _theoretically_ make everything _even faster._ It 's
| nowhere near the most optimal use of the available
| hardware. All we'd have to give up is squishy hard-to-
| measure things like "feature sets" and "engineering
| velocity."
| Cthulhu_ wrote:
| > All we'd have to give up is squishy hard-to-measure
| things like "feature sets" and "engineering velocity."
|
| Would we? Really? I don't think giving up performance
| needs to be a compromise for the number of features or
| speed of delivering them.
| sorcerer-mar wrote:
| People make higher-order abstractions for funzies?
| CyberDildonics wrote:
| _we could of course theoretically make everything even
| faster. It 's nowhere near the most optimal use of the
| available hardware. All we'd have to give up is squishy
| hard-to-measure things like "feature sets" and
| "engineering velocity."_
|
| Says who? Who are these experienced people that know how
| to write fast software that think it is such a huge
| sacrifice?
|
| The reality is that people who say things like this don't
| actually know much about writing fast software because it
| really isn't that difficult. You just can't grab electron
| and the lastest javascript react framework craze.
|
| These kinds of myths get perpetuated by people who repeat
| it without having experienced the side of just writing
| native software. I think mostly it is people
| rationalizing not learning C++ and sticking to javascript
| or python because that's what they learned first.
| sorcerer-mar wrote:
| > These kinds of myths get perpetuated by people who
| repeat it without having experienced the side of just
| writing native software. I think mostly it is people
| rationalizing not learning assembly and sticking to C++
| or PERL because that's what they learned first.
|
| Why stop at C++? Is that what _you_ happen to be
| comfortable with? Couldn 't you create _even faster_
| software if you went down another level? Why don 't you?
| CyberDildonics wrote:
| _Couldn 't you create even faster software if you went
| down another level? Why don't you?_
|
| No and if you understood what makes software fast you
| would know that. Most software is allocating memory
| inside hot loops and taking that out is extremely easy
| and can easily be a 7x speedup. Looping through
| contiguous memory instead of chasing pointers through
| heap allocated variables is another 25x - 100x speed
| improvement at least. This is all after switching from a
| scripting language, which is about a 100x in itself if
| the language is python.
|
| It isn't about the instructions it is about memory
| allocation and prefetching.
| sorcerer-mar wrote:
| Sorry but it is absolutely the case that there are
| optimizations available to someone working in assembly
| that are not available to someone working in C++.
|
| You are probably a lazy or inexperienced engineer if you
| choose to work in C++.
|
| In fact, there are optimizations available at the silicon
| level that are not available in assembly.
|
| You are probably a lazy or inexperienced engineer if you
| choose to work in assembly.
| CyberDildonics wrote:
| Go ahead and give me examples of what you mean.
|
| I'm talking about speeding software up by 10x-100x by
| language choice, then 7x with extremely minimal
| adjustments (allocate memory outside of hot loops), then
| 25x - 100x with fairly minimal design changes (use
| vectors, loop through them straight).
|
| I'm also not saying people are lazy, I'm saying they
| don't know that with something like modern C++ and a
| little bit of knowledge of how to write fast software
| MASSIVE speed gains are easy to get.
|
| You are helping make my point here, most programmers
| don't realize that huge speed gains are low hanging
| fruit. They aren't difficult, they don't mean anything is
| contorted or less clear (just the opposite), they just
| have to stop rationalizing not understanding it.
|
| I say this with knowledge of both sides of the story
| instead of guessing based on conventional wisdom.
| sorcerer-mar wrote:
| So you agree there's a trade off between developer
| productivity and optimization (coding in assembly isn't
| worth it, but allocating memory outside of hot loops is)
|
| You agree with my original point then?
| CyberDildonics wrote:
| Are you seriously replying and avoiding everything we
| both said? I'll simplify it for you:
|
| Writing dramatically fast software that is 1,000x or even
| 10,000 times faster than a scripting language takes
| basically zero effort once you know how to do it and
| these assembly optimization are a myth that you would
| have already shown me if you could.
| sorcerer-mar wrote:
| "Zero effort once you know how to do it" is another way
| of saying "time and effort."
|
| Congratulations you've discovered the value of
| abstractions!
|
| I mean, you're the one who started this off with the
| insane claim that there's no tradeoff, then claimed there
| are no optimizations available below C++ (i.e. C++ is the
| absolute most optimized code a person can write). Not my
| fault you stake out indefensible positions.
| BobaFloutist wrote:
| I mean do you think JavaScript and Python _aren 't_
| easier than C++? Then why do they exist?
| CyberDildonics wrote:
| Javascript was made in a few weeks so that some sort of
| programmability could be built in to web pages. Python
| was made in the 90s as a more modern competition to perl
| for scripting.
|
| Modern C++ and systems language didn't exist and neither
| was made with the intention that people would write
| general purpose interactive programs that leveraged
| computers 1,000x faster so that software could run 1,000x
| slower.
| high_na_euv wrote:
| Yup, people run software on shitty computers and blame all
| the software.
|
| The only slow (local) software I know is llvm and cpp
| compilers
|
| Other are pretty fast
| maleldil wrote:
| You have stories of people running 2021 MacBooks and
| complaining about performance. Those are not shitty
| computers.
| flohofwoe wrote:
| I guess you don't need to wrestle with Xcode?
|
| Somehow the Xcode team managed to make startup and some
| features in newer Xcode versions slower than older Xcode
| versions running on old Intel Macs.
|
| E.g. the ARM Macs are a perfect illustration that software
| gets slower faster than hardware gets faster.
|
| After a very short 'free lunch' right after the Intel =>
| ARM transition we're now back to the same old software
| performance regression spiral (e.g. new software will only
| be optimized until it feels 'fast enough', and that 'fast
| enough' duration is the same no matter how fast the
| hardware is).
|
| Another excellent example is the recent release of the
| Oblivion Remaster on Steam (which uses the brand new UE5
| engine):
|
| On my somewhat medium-level PC I have to reduce the
| graphics quality in the Oblivion Remaster so much that the
| result looks worse than 14-year old Skyrim (especially
| outdoor environments), and that doesn't even result in a
| stable 60Hz frame rate, while Skyrim runs at a rock-solid
| 60Hz and looks objectively better in the outdoors.
|
| E.g. even though the old Skyrim engine isn't by far as
| technologically advanced as UE5 and had plenty of
| performance issues at launch on a ca. 2010 PC, the Oblivion
| Remaster (which uses a "state of the art" engine) looks and
| performs worse than its own 14 years old predecessor.
|
| I'm sure the UE5-based Oblivion remaster can be properly
| optimized to beat Skyrim both in looks and performance, but
| apparently nobody cared about that during development.
| jayd16 wrote:
| You're comparing the art(!) of two different games, that
| targeted two different sets of hardware while using the
| ideal hardware for one and not the other. Kind of a
| terrible example.
| flohofwoe wrote:
| > You're comparing the art(!)
|
| The art direction, modelling and animation work is mostly
| fine, the worse look results from the lack of dynamic
| lighting and ambient occlusion in the Oblivion Remaster
| when switching Lumen (UE5's realtime global illumination
| feature) to the lowest setting, this results in
| completely flat lighting for the vegetation but is needed
| to get an acceptable base frame rate (it doesn't solve
| the random stuttering though).
|
| Basically, the best art will always look bad without good
| lighting (and even baked or faked ambient lighting like
| in Skyrim looks better than no ambient lighting at all.
|
| Digital Foundry has an excellent video about the issues:
|
| https://www.youtube.com/watch?v=p0rCA1vpgSw
|
| TL;DR: the 'ideal hardware' for the Oblivion Remaster
| doesn't exist, even if you get the best gaming rig money
| can buy.
| KronisLV wrote:
| > ...when switching Lumen (UE5's realtime global
| illumination feature) to the lowest setting, this results
| in completely flat lighting for the vegetation but is
| needed to get an acceptable base frame rate (it doesn't
| solve the random stuttering though).
|
| This also happens to many other UE5 games like
| S.T.A.L.K.E.R. 2 where they try to push the graphics
| envelope with expensive techniques and most people
| without expensive hardware have to turn the settings way
| down (even use things like upscaling and framegen which
| further makes the experience a bit worse, at least when
| the starting point is very bad and you have to use them
| as a crutch), often making these modern games look worse
| than something a decade old.
|
| Whatever UE5 is doing (or rather, how so many developers
| choose to use it) is a mistake now and might be less of a
| mistake in 5-10 years when the hardware advances further
| and becomes more accessible. Right now it feels like a
| ploy by the Big GPU to force people to upgrade to
| overpriced hardware if they want to enjoy any of these
| games; or rather, sillyness aside, is an attempt by
| studios to save resources by making the artists spend
| less time on faking and optimizing effects and detail
| that can just be brute forced by the engine.
|
| In contrast, most big CryEngine and idTech games run
| great even on mid range hardware and still look great.
| flohofwoe wrote:
| It's like (usable) realtime global illumination is the
| fusion power of rendering, always just 10 years away ;)
|
| I remember that UE4 also hyped a realtime GI solution
| which then was hardly used in realworld games because it
| had a too big performance hit.
| jayd16 wrote:
| I haven't really played it myself but it sounds like from
| the video you posted the remasters a bit of an outlier in
| terms of bad performance. Again it seems like a bad
| example to pull from.
| mschild wrote:
| A mix of both. There are large number of websites that are
| inefficiently written using up unnecessary amounts of
| resources. Semi-modern devices make up for that by just
| having a massive amount of computing power.
|
| However, you also need to consider 2 additional factors.
| Macbooks and iPhones, even 4 year old ones, have usually
| been at the upper end of the scale for processing power.
| (When compared to the general mass-market of private end-
| consumer devices)
|
| Try doing the same on a 4 year old 400 Euro laptop and it
| might look a bit different. Also consider your connection
| speed and latency. I usually have no loading issue either.
| But I have a 1G fiber connection. My parents don't.
| _aavaa_ wrote:
| I'd wager that a 2021 MacBook, like the one I have, is
| stronger than the laptop used by majority of people in the
| world.
|
| Life on an entry or even mid level windows laptop is a very
| different world.
| josephg wrote:
| Yep. Developers make programs run well enough on the
| hardware sitting on our desks. So long as we're well paid
| (and have decent computers ourselves), we have no idea
| what the average computing experience is for people still
| running 10yo computers which were slow even for the day.
| And that keeps the treadmill going. We make everyone need
| to upgrade every few years.
|
| A few years ago I accidentally left my laptop at work on
| a Friday afternoon. Instead of going into the office, I
| pulled out a first generation raspberry pi and got
| everything set up on that. Needless to say, our nodejs
| app started pretty slowly. Not for any good reason -
| there were a couple modules which pulled in huge amounts
| of code which we didn't use anyway. A couple hours work
| made the whole app start 5x faster and use half the ram.
| I would never have noticed that was a problem with my
| snappy desktop.
| thewebguyd wrote:
| > Yep. Developers make programs run well enough on the
| hardware sitting on our desks. So long as we're well paid
| (and have decent computers ourselves), we have no idea
| what the average computing experience is for people still
| running 10yo computers which were slow even for the day.
| And that keeps the treadmill going. We make everyone need
| to upgrade every few years.
|
| Same thing happens with UI & Website design. When the
| designers and front-end devs all have top-spec MacBooks,
| with 4k+ displays, they design to look good in that
| environment.
|
| Then you ship to the rest of the world which are still
| for the most part on 16:9 1920x1080 (or god forbid,
| 1366x768), low spec windows laptops and the UI looks like
| shit and is borderline unstable.
|
| Now I don't necessarily think things should be designed
| for the lowest common denominator, but at the very least
| we should be taking into consideration that the majority
| of users probably don't have super high end machines or
| displays. Even today you can buy a brand new "budget"
| windows laptop that'll come with 8GB of RAM, and a tiny
| 1920x1080 display, with poor color reproduction and crazy
| low brightness - and that's what the majority of people
| are using, if they are using a computer at all and not a
| phone or tablet.
| thfuran wrote:
| I've found so many performance issues at work by booting
| up a really old laptop or working remotely from another
| continent. It's pretty straightforward to simulate either
| poor network conditions or generally low performance
| hardware, but we just don't generally bother to chase
| down those issues.
| _aavaa_ wrote:
| Oh yeah, I didn't even touch on devs being used to
| working on super faster internet.
|
| If you're on Mac, go install Network Link Conditioner and
| crank that download an upload speed way down. (Xcode >
| Open Developer Tools > More Developer Tools... >
| "Additional Tools for Xcode {Version}").
| BobaFloutist wrote:
| When I bought my current laptop, it was the cheapest one
| Costco had with 8 gigs of memory, which was at the time
| plenty for all but specialized uses. I've since upgraded
| it to 16, which feels like the current standard for that.
|
| But...why? Why on earth do I need 16 gigs of memory for
| web browsing and basic application use? I'm not even
| playing games on this thing. But there was an immediate,
| massive spike in performance when I upgraded the memory.
| It's bizarre.
| aspenmayer wrote:
| Most cheap laptops these days ship with only one stick of
| RAM, and thus are only operating in single-channel mode.
| By adding another memory module, you can operate in dual-
| channel mode which can increase performance a lot. You
| can see the difference in performance by running a full
| memory test in single-channel mode vs multi-channel mode
| with a program like memtest86 or memtest86+ or others.
| tjader wrote:
| I just clicked on the network icon next to the clock on a
| Windows 11 laptop. A gray box appeared immediately, about
| one second later all the buttons for wifi, bluetooth, etc
| appeared. Windows is full of situations like this, that
| require no network calls, but still take over one second to
| render.
| Cthulhu_ wrote:
| It's strange, it visibly loading the buttons is
| indicative they use async technology that can use
| multithreaded CPUs effectively... but it's slower than
| the old synchronous UI stuff.
|
| I'm sure it's significantly more expensive to render than
| Windows 3.11 - XP were - rounded corners and scalable
| vector graphics instead of bitmaps or whatever - but
| surely not that much? And the resulting graphics can be
| cached.
| vel0city wrote:
| Windows 3.1 wasn't checking WiFi, Bluetooth, energy
| saving profile, night light setting, audio devices,
| current power status and battery level, audio devices,
| and more when clicking the non-existent icon on the non-
| existent taskbar. Windows XP didn't have this quick
| setting area at all. But I do recall having the volume
| slider take a second to render on XP from time to time,
| and that was only rendering a slider.
|
| And FWIW this stuff is then cached. I hadn't clicked that
| setting area in a while (maybe the first time this boot?)
| and did get a brief gray box that then a second later
| populated with all the buttons and settings. Now every
| time I click it again it appears instantly.
| tjader wrote:
| But is this cache trustworthy or will it eventually lead
| you to click in the wrong place because the situation
| changed and now there's a new button making everything
| change place?
|
| And even if every information takes a bit to figure out,
| it doesn't excuse taking a second to even draw the UI. If
| checking bluetooth takes a second, then draw the button
| immediately but disable interaction and show a loading
| icon, and when you get the blutooth information update
| the button, and so on for everything else.
| vel0city wrote:
| As someone who routinely hops between WiFi networks, I've
| never seen a wrong value here.
|
| And OK, we'll draw a tile with all the buttons with
| greyed out status for that half second _and then_ refresh
| to show the real status. Did that really make things
| better, or did it make it worse?
|
| And if we bothered keeping all that in memory, and kept
| using the CPU cycles to make sure it was actually
| accurate and up to date on the click six hours later,
| wouldn't people then complain about how obviously bloated
| it was? How is this not a constant battle of being unable
| to appease any critics until we're back at the Win 3.1
| state of things with no Bluetooth devices, no WiFi
| networks, no dynamic changing or audio devices, etc?
|
| And remember, we're comparing this to just rendering a
| volume slider which still took a similar or worse amount
| of time and offered _far_ less features.
| tjader wrote:
| > And OK, we'll draw a tile with all the buttons with
| greyed out status for that half second and then refresh
| to show the real status. Did that really make things
| better, or did it make it worse?
|
| Clearly better. Most of the buttons should also work
| instantly, most of the information should also be
| available instantly. The button layout is rendered
| instantly, so I can already figure out where I want to
| click without having to wait one second even if the
| button is not enabled yet, and by the time my mouse
| reaches it it will probably be enabled.
|
| > And remember, we're comparing this to just rendering a
| volume slider which still took a similar or worse amount
| of time and offered far less features.
|
| I've never seen the volume slider in Windows 98 take one
| second to render. Not even the start menu, which is much
| more complex, and which in Windows 11 often takes a
| second, and search results also show up after a random
| amount of time and shuffle the results around a few
| times, leading to many misclicks.
| vel0city wrote:
| It doesn't even know if the devices are still attached
| (as it potentially hasn't tried interfacing them for
| hours) but should instantly be able to allow input to
| control them and fully understand their current status.
| Right. Makes sense.
|
| And if you don't remember the volume slider taking
| several seconds to render on XP you must be much
| wealthier than me or have some extremely rose colored
| glasses. I play around with old hardware all the time and
| get frustrated with the unresponsiveness of old equipment
| with period accurate software, and had a lot of decent
| hardware (to me at least) in the 90s and 00s. I've
| definitely experienced lots of times of the start menu
| painting one entry after the other at launch, taking a
| second to roll out, seeking on disk for that third level
| menu in 98, etc.
|
| Rose colored glasses, the lot of you. Go use an old 386
| for a month. Tell me how much more productive you are
| after.
| jandrese wrote:
| Honestly it behaves like the interface is some Electron
| app that has to load the visual elements from a little
| internal webserver. That would be a very silly way to
| build an OS UI though, so I don't know what Microsoft is
| doing.
| RajT88 wrote:
| This one drives me nuts.
|
| I have to stay connected to VPN to work, and if I see VPN
| is not connected I click to reconnect.
|
| If the VPN button hasn't loaded you end up turning on
| Airplane mode. Ouch.
| buzzerbetrayed wrote:
| Yep. I suspect GP has just gotten used to this and it is
| the new "snappy" to them.
|
| I see this all the time with people who have old
| computers.
|
| "My computer is really fast. I have no need to upgrade"
|
| I press cmd+tab and watch it take 5 seconds to switch to
| the next window.
|
| That's a real life interaction I had with my parents in
| the past month. People just don't know what they're
| missing out on if they aren't using it daily.
| vel0city wrote:
| Yeah, I play around with retro computers all the time.
| Even with IO devices that are unthinkably performant
| compared to storage hardware actually common at the time
| these machines are often dog slow. Just rendering JPEGs
| can be really slow.
|
| Maybe if you're in a purely text console doing purely
| text things 100% in memory it can feel snappy. But the
| moment you do anything graphical or start working on
| large datasets its so incredibly slow.
|
| I still remember trying to do photo editing on a Pentium
| II with a massive 64MB of RAM. Or trying to get decent
| resolutions scans off a scanner with a Pentium III and
| 128MB of RAM.
| titzer wrote:
| 64MB is about the size of (a big) L3 cache. Today's L3
| caches have a latency of 3-12ns and throughput measured
| in _hundreds of gigabytes per second_. And yet we can 't
| manage to get responsive UIs because of tons of crud.
| vel0city wrote:
| My modern machine running a modern OS _is still way
| snappier_ while actually loading the machine and doing
| stuff. Sure, if I 'm directly on a tty and just running
| vim on a small file its super fast. The same on my modern
| machine. Try doing a few things at once or handle some
| large dataset and see how well it goes.
|
| My older computers would completely lock up when given a
| large task to do, often for many seconds. Scanning an
| image would take over the whole machine for like a minute
| per page! Applying a filter to an image would lock up the
| machine for several seconds even for a much smaller image
| a much simpler filter. _The computer cannot even play mp3
| 's and have a responsive word processor_, if you really
| want to listen to music while writing a paper you better
| have it pass through the audio from a CD, much less think
| about streaming it from some remote location and have a
| whole encrypted TCP stream and decompression.
|
| These days I can have lots of large tasks running at the
| same time and still have more responsiveness.
|
| I have fun playing around with retro hardware and old
| applications, but "fast" and "responsive" are not
| adjectives I'd use to describe them.
| kristianp wrote:
| The newish windows photo viewer in Win 10 is painfully
| slow and it renders a lower res preview first, but then
| the photo seems to move when the full resolution is
| shown. The photo viewer in windows 7 would prerender the
| next photo so the transition to the next one would be
| instant. The is for 24 megapixel photos, maybe 4mb jpegs.
|
| So the quality has gone backwards in the process of
| rewriting the app into the touch friendly style. A lot of
| core windows apps are like that.
|
| Note that the windows file system is much slower than the
| linux etx4, I don't know about Mac filesystems.
| mike_hearn wrote:
| Windows 11 shell partly uses React Native in the start
| button flyout. It's not a heavily optimized codebase.
| tjader wrote:
| That's the point. It's so bloated that an entirely local
| operation that should be instantaneous takes over 1
| second.
| subjectsigma wrote:
| I have a 2019 Intel MacBook and Outlook takes about five
| seconds to load and constantly sputters
| CelestialMystic wrote:
| You are using a relatively high end computer and mobile
| device. Go and find a cheap laptop x86 and try doing the
| same. It will be extremely painful. Most of this is due to
| a combination of Windows 11 being absolute trash and
| JavaScript being used extensively in applications/websites.
| JavaScript is memory hog and can be extremely slow
| depending on how it is written (how you deal with loops
| massively affects the performance).
|
| What is frustrating though that until relatively recently
| these devices would work fine with JS heavy apps and work
| really well with anything that is using a native toolkit.
| g-mork wrote:
| Lightroom non-user detected
| alnwlsn wrote:
| It depends. Can Windows 3.11 be faster than Windows 11?
| Sure, maybe even in most cases:
| https://jmmv.dev/2023/06/fast-machines-slow-machines.html
| xnorswap wrote:
| It vastly depends on what software you're forced to use.
|
| Here's some software I use all the time, which feels
| horribly slow, even on a new laptop:
|
| Slack.
|
| Switching channels on slack, even when you've just switched
| so it's all cached, is painfully slow. I don't know if they
| build in a 200ms or so delay deliberately to mask when it's
| not cached, or whether it's some background rendering, or
| what it is, but it just feels sluggish.
|
| Outlook
|
| Opening an email gives a spinner before it's opened. Emails
| are about as lightweight as it gets, yet you get a spinner.
| It's "only" about 200ms, but that's still 200ms of waiting
| for an email to open. Plain text emails were faster 25
| years ago. Adding a subset of HTML shouldn't have caused
| such a massive regression.
|
| Teams
|
| Switching tabs on teams has the same delayed feeling as
| Slack. Every iteraction feels like it's waiting 50-100ms
| before actioning. Clicking an empty calendar slot to book a
| new event gives 30-50ms of what I've mentally internalised
| as "Electron blank-screen" but there's probably a real name
| out there for basically waiting for a new dialog/screen to
| even have a chrome, let alone content. Creating a new
| calendar event should be instant, it should not take
| 300-500ms or so of waiting for the options to render.
|
| These are basic "productivity" tools in which every single
| interaction feels like it's gated behind at least a 50ms
| debounce waiting period, with often extra waiting for
| content on top.
|
| Is the root cause network hops or telemetry? Is it some
| corporate antivirus stealing the computer's soul?
|
| Ultimately the root cause doesn't actually matter, because
| no matter the cause, it still feels like I'm wading through
| treacle trying to interact with my computer.
| maccard wrote:
| I'd take 50ms but in my experience it's more like 250.
| xnorswap wrote:
| You're probably right, I'm likely massively
| underestimating the time, it's long enough to be
| noticable, but not so long that it feels instantly
| frustrating the first time, it just contributes to an
| overall sluggishness.
| vel0city wrote:
| I don't get any kind of spinner on Outlook opening
| emails. Especially emails which are pure text or only
| lightly stylized open instantly. Even emails with
| calendar invites load really fast, I don't see any kind
| of spinner graphic at all.
|
| Running latest Outlook on Windows 11, currently >1k
| emails in my Inbox folder, on an 11th gen i5, while also
| on a Teams call a ton of other things active on my
| machine.
|
| This is also a machine with a lot of corporate security
| tools sapping a lot of cycles.
| xnorswap wrote:
| I guess I shall screen record it, this is new-ish windows
| 11 laptop.
|
| ( This might also be a "new outlook" vs "out outlook"
| thing? )
| vel0city wrote:
| I am using New Outlook.
|
| I don't doubt it's happening to you, but I've never
| experienced it. And I'm not exactly using bleeding edge
| hardware here. A several year old i5 and a Ryzen 3 3200U
| (a cheap 2019 processor in a cheap Walmart laptop).
|
| Maybe your IT team has something scanning every email on
| open. I don't know what to tell you, but it's not the
| experience out of the box on any machine I've used.
| mike_hearn wrote:
| Some of this is due to the adoption of React. GUI
| optimization techniques that used to be common are hard
| to pull off in the React paradigm. For instance, pre-
| rendering parts of the UI that are invisible doesn't mesh
| well with the React model in which the UI tree is
| actually being built or destroyed in response to user
| interactions and in which data gets loaded in response to
| that, etc. The "everything is functional" paradigm is
| popular for various legitimate reasons, although React
| isn't really functional. But what people often forget is
| that functional languages have a reputation for being
| slow...
| makeitdouble wrote:
| To note, people will have wildly different tolerance to
| delays and lag.
|
| On the extreme, my retired parents don't feel the
| difference between 5s or 1s when loading a window or
| clicking somewhere. I offered a switch to a new laptop,
| cloning their data, and they didn't give a damn and just
| opened the laptop the closest to them.
|
| Most people aren't that desensitized, but for some a 600ms
| delay is instantaneous when for other it's 500ms too slow.
| maccard wrote:
| Slack, teams, vs code, miro, excel, rider/intellij,
| outlook, photoshop/affinity are all applications I use
| every day that take 20+ seconds to launch. My corporate VPN
| app takes 30 seconds to go from a blank screen to deciding
| if it's going to prompt me for credentials or remember my
| login, every morning. This is on an i9 with 64GB ram, and
| 1GN fiber.
|
| On the website front - Facebook, twitter, Airbnb, Reddit,
| most news sites, all take 10+ seconds to load or be
| functional, and their core functionality has regressed
| significantly in the last decade. I'm not talking about
| features that I prefer, but as an example if you load two
| links in Reddit in two different tabs my experience has
| been that it's 50/50 if they'll actually both load or if
| one gets stuck either way skeletons.
| aloha2436 wrote:
| I'm on a four year old mid-tier laptop and opening VS
| Code takes maybe five seconds. Opening IDEA takes five
| seconds. Opening twitter on an empty cache takes perhaps
| four seconds and I believe I am a long way from their
| servers.
|
| On my work machine slack takes five seconds, IDEA is
| pretty close to instant, the corporate VPN starts nearly
| instantly (although the Okta process seems unnecessarily
| slow I'll admit), and most of the sites I use day-to-day
| (after Okta) are essentially instant to load.
|
| I would say that your experiences are not universal,
| although snappiness was the reason I moved to apple
| silicon macs in the first place. Perhaps Intel is to
| blame.
| Cthulhu_ wrote:
| VS Code defers a lot of tasks to the background at least.
| This is a bit more visible in intellij; you seem to
| measure how long it takes to show its window, but how
| long does it take for it to warm up and finish indexing /
| loading everything, or before it actually becomes
| responsive?
|
| Anyway, five seconds is long for a text editor; 10, 15
| years ago, sublime text loaded and opened up a file in <1
| second, and it still does today. Vim and co are instant.
|
| Also keep in mind that desktop computers haven't gotten
| significantly faster for tasks like opening applications
| in the past years; they're more efficient (especially the
| M line CPUs) and have more hardware for specialist
| workloads like what they call AI nowadays, but not much
| innovation in application loading.
|
| You use a lot of words like "pretty close to", "nearly",
| "essentially", but 10, 20 years ago they WERE instant;
| applications from 10, 20 years ago should be so much
| faster today than they were on hardware from back then.
|
| I wish the big desktop app builders would invest in
| native applications. I understand why they go for web
| technology (it's the crossplatform GUI technology that
| Java and co promised and offers the most advanced styling
| of anything anywhere ever), but I wish they invested in
| it to bring it up to date.
| _Algernon_ wrote:
| >Anyway, five seconds is long for a text editor; 10, 15
| years ago, sublime text loaded and opened up a file in <1
| second, and it still does today. Vim and co are instant.
|
| Do any of those do the indexing that cause the slowness?
| If not it's comparing apples to oranges.
| maccard wrote:
| Riders startup time isn't including indexing. Indexing my
| entire project takes minutes but it does it in the
| background.
| rtkwe wrote:
| Sublime Text isn't an IDE though so comparing it to VS
| Code is comparing grapes and apples. VS Code is doing a
| lot more.
| maccard wrote:
| I disagree. Vs code uses plugins for all its heavy
| lifting. Even a minimal plugin setup is substantially
| slower to load than sublime is, which can also have an
| LSP plugin.
| maccard wrote:
| > You use a lot of words like "pretty close to",
| "nearly", "essentially", but 10, 20 years ago they WERE
| instant; applications from 10, 20 years ago should be so
| much faster today than they were on hardware from back
| then.
|
| 11 years ago I put in a ticket to slack asking them about
| their resource usage. Their desktop app was using more
| memory than my IDE and compilers and causing heap space
| issues with visual studio. 10 years ago things were
| exactly the same. 15 years ago, my coworkers were
| complaining that VS2010 was a resource hog compared to 10
| years ago. My memory of loading photoshop in the early
| 2000's was that it took absolutely forever and was slow
| as molasses on my home PC.
|
| I don't think it's necessarily gotten worse, I think it's
| always been pathetically bad.
| vel0city wrote:
| It's probably more so that any corporate Windows box has
| dozens of extra security and metrics agents interrupting
| and blocking every network request and file open and OS
| syscall installed by IT teams while the Macs have some
| very basic MDM profile applied.
| maccard wrote:
| This is my third high end workstation computer in the
| last 5 years and my experience has been roughly
| consistent with.
|
| My corporate vpn app is a disaster on so many levels,
| it's an internally developed app as opposed to Okta or
| anything like that.
|
| I would likewise say that your experience is not
| universal, and that in many circumstances the situation
| is much worse. My wife is running an i5 laptop from 2020
| and her work intranet is a 60 second load time. Outlook
| startup and sync are measured in minutes including
| mailbox fetching. You can say this is all not the app
| developers fault, but the crunch that's installed on her
| machine is slowing things down by 5 or 10x and that
| slowdown wouldn't be a big deal if the apps had
| reasonable load times in the first place.
| thewebguyd wrote:
| 5 seconds is a lot for a machine with an M4 Pro, and tons
| of RAM and a very fast SSD.
|
| There's native apps just as, if not more, complicated
| than VSCode that open faster.
|
| The real problem is electron. There's still good,
| performant native software out there. We've just settled
| on shipping a web browser with every app instead.
| maccard wrote:
| There is snappy electron software out there too, to be
| fair. If you create a skeleton electron app it loads just
| fine. A perceptible delay but still quick.
|
| The problem is when you load it and then react and all
| its friends, and design your software for everything to
| be asynchronous and develop it on a 0 latency connection
| over localhost with a team of 70 people where nobody is
| holistically considering "how long does it take from
| clicking the button to doing the thing I want it to do"
| yetihehe wrote:
| > are all applications I use every day that take 20+
| seconds to launch.
|
| I suddenly remembered some old Corel Draw version circa
| year 2005, which had loading screen enumerating random
| things it loaded and was computing until a final message
| "Less than a minute now...". It most often indeed lasted
| less than a minute to show interface :).
| crubier wrote:
| HOW does Slack take 20s to load for you? My huge
| corporate Slack takes 2.5s to cold load.
|
| I'm so dumbfounded. Maybe non-MacOS, non-Apple silicon
| stuff is complete crap at that point? Maybe the complete
| dominance of Apple performance is understated?
| bflesch wrote:
| Most likely the engineers at many startups only use apple
| computers themselves and therefore only optimize
| performance for those systems. It's a shame but IMO
| result of their incompetence and not result of some magic
| apple performance gains.
| bloomca wrote:
| I use Windows alongside my Mac Mini, and I would say they
| perform pretty similarly (but M-chip is definitely more
| power efficient).
|
| I don't use Slack, but I don't think anything takes 20
| seconds for me. Maybe XCode, but I don't use it often
| enough to be annoyed.
| maccard wrote:
| I have an i9 windows machine with 64GB ram and an M1 Mac.
| I'd say day to day responsiveness the Mac is heads and
| tails above the windows machine, although getting worse.
| I'm not sure if the problem is the arm electron apps are
| getting slower or if my machine is just aging
| homebrewer wrote:
| It's Windows. I'm on Linux 99% of the time and it's
| significantly more responsive on hardware from 2014 than
| Windows is on a high end desktop from 2023. I'm not being
| dramatic.
|
| (Yes, I've tried all combinations of software to hardware
| and accounted for all known factors, it's not caused by
| viruses or antiviruses).
|
| XP was the last really responsive Microsoft OS, it went
| downhill from then and never recovered.
| maccard wrote:
| My current machine I upgraded from win10 to win11 and I
| noticed an across the board overnight regression in
| everything. I did a clean install so if anything it
| should have been quicker but boot times, app launch
| times, compile times all took a nosedive on that update.
|
| I still think there's a lot of blame to go around for the
| "kitchen sink" approach to app development where we have
| entire OS's that can boot faster than your app can get
| off a splash screen.
|
| Unfortunately, my users are on windows and work has no
| Linux vpn client so a switch isn't happening any time
| soon.
| mike_hearn wrote:
| Yes it is and the difference isn't understated, I think
| everyone knows by now that Apple has run away with
| laptop/desktop performance. They're just leagues ahead.
|
| It's a mix of better CPUs, better OS design (e.g. much
| less need for aggressive virus scanners), a faster
| filesystem, less corporate meddling, high end SSDs by
| default... a lot of things.
| xboxnolifes wrote:
| That sounds like a corporate anti-virus slowing
| everything down to me. vscode takes a few seconds to
| launch for me from within WSL2, with extensions. IntelliJ
| on a large project takes a while I'll give you that, but
| just intelliJ takes only a few seconds to launch.
| maccard wrote:
| Vscode is actually 10 seconds, you're right.
|
| I have no corp antivirus or MDM on this machine, just
| windows 11 and windows defender.
| maccard wrote:
| For all the people who are doubting that applications are
| slow and that it must just be me - here [0] is a debugger
| that someone has built from the ground up that compiles,
| launches, attaches a debugger and hits a breakpoint in
| the same length of time that visual studio displays the
| splash screen for.
|
| [0] https://x.com/ryanjfleury/status/1747756219404779845
| conradfr wrote:
| All those things takes 4 seconds to launch or load on my
| M1. Not great, not bad.
| maccard wrote:
| Even 4-5 seconds is long enough for me to honestly get
| distracted. That is just so much time even on a single
| core computer from a decade ago.
|
| On my home PC, in 4 seconds I could download 500MB, load
| 12GB off an SSD, perform 12 billion cycles (before
| pipelining ) per core (and I have 24 of them) - and yet
| miro still manages to bring my computer to its knees for
| 15 seconds just to load an empty whiteboard.
| conductr wrote:
| IMO they just don't think of "initial launch speed" as a
| meaningful performance stat to base their entire tech
| stack upon. Most of these applications and even websites,
| once opened, are going to be used for several
| hours/days/weeks before being closed by most of their
| users
| Aurornis wrote:
| > Slack, teams, vs code, miro, excel, rider/intellij,
| outlook, photoshop/affinity are all applications I use
| every day that take 20+ seconds to launch.
|
| > On the website front - Facebook, twitter, Airbnb,
| Reddit, most news sites, all take 10+ seconds to load or
| be functional
|
| I just launched IntelliJ (first time since reboot). Took
| maybe 2 seconds to the projects screen. I clicked a
| random project and was editing it 2 seconds after that.
|
| I tried Twitter, Reddit, AirBnB, and tried to count the
| loading time. Twitter was the slowest at about 3 seconds.
|
| I have a 4 year old laptop. If you're seeing 10 second
| load times for every website and 20 second launch times
| for every app, you have something else going on. You
| mentioned corporate VPN, so I suspect you might have some
| heavy anti-virus or corporate security scanning that's
| slowing your computer down more than you expect.
| accrual wrote:
| > heavy anti-virus or corporate security scanning that's
| slowing your computer down more than you expect.
|
| Ugh, I personally witnessed this. I would wait to take my
| break until I knew the unavoidable, unkillable AV scans
| had started and would peg my CPU at 100%. I wonder how
| many human and energy resources are wasted checking for
| non-existant viruses on corp hardware.
| maccard wrote:
| In a previous job, I was benchmarking compile times. I
| came in on a Monday and everything was 10-15% slower. IT
| had installed carbon black on my machine over the
| weekend, which was clearly the culprit. I sent WPA traces
| to IT but apparently the sales guys said there was no
| overhead so that was that.
| m-schuetz wrote:
| How does your vscode take 20+ seconds to launch? Mine
| launches in 2 seconds.
| viraptor wrote:
| What timescale are we talking about? Many DOS stock and
| accounting applications were basically instantaneous. There
| are some animations on iPhone that you can't disable that
| take longer than a series of keyboard actions of a skilled
| operator in the 90s. Windows 2k with a stripped shell was
| way more responsive that today's systems as long as you
| didn't need to hit the harddrives.
|
| The "instant" today is really laggy compared to what we
| had. Opening Slack takes 5s on a flagship phone and opening
| a channel which I just had open and should be fully cached
| takes another 2s. When you type in JIRA the text entry lags
| and all the text on the page blinks just a tiny bit (full
| redraw). When pages load on non-flagship phones (i.e. most
| of the world), they lag a lot, which I can see on
| monitoring dashboards.
| sgarland wrote:
| I'm sure you know this, but a reminder that modern devices
| cache a hell of a lot, even when you "quit" such that
| subsequent launches are faster. Such is the benefit of more
| RAM.
|
| I could compare Slack to, say, HexChat (or any other IRC
| client). And yeah, it's an unfair comparison in many ways -
| Slack has _far_ more capabilities. But from another
| perspective, how many of them do you immediately need at
| launch? Surely the video calling code could be delayed
| until after the main client is up, etc. (and maybe it is,
| in which case, oh dear).
|
| A better example is Visual Studio [0], since it's apples to
| apples.
|
| [0]: https://youtu.be/MR4i3Ho9zZY
| anthk wrote:
| Compare it to qutecom, or any other xmpp client.
| lenkite wrote:
| 2021 MacBook and 2020 iPhone are not "old". Still using
| 2018 iPhone. Used a 2021 Macbook until a month ago.
| api wrote:
| They're comparing these applications to older applications
| that loaded instantly on much slower computers.
|
| Both sides are right.
|
| There is a _ton_ of waste and bloat and inefficiency. But
| there 's also a ton of stuff that genuinely does demand
| more memory and CPU. An incomplete list:
|
| - Higher DPI displays use intrinsically more memory and CPU
| to paint and rasterize. My monitor's pixel array uses 4-6X
| more memory than my late 90s PC had in the entire machine.
|
| - Better font rendering is the same.
|
| - Today's UIs support Unicode, right to left text,
| accessibility features, different themes (dark/light at a
| minimum), dynamic scaling, animations, etc. A modern GUI
| engine is similar in difficulty to a modern game engine.
|
| - Encryption everywhere means that protocols are no longer
| just opening a TCP connection but require negotiation of
| state and running ciphers.
|
| - The Web is an incredibly rich presentation platform that
| comes with the overhead of an incredibly rich presentation
| platform. It's like PostScript meets a GUI library meets a
| small OS meets a document markup layer meets...
|
| - The data sets we deal with today are often a lot larger.
|
| - Some of what we've had to do to get 1000X performance
| itself demands more overhead: multiple cores, multiple
| threads, 64 bit addressing, sophisticated MMUs, multiple
| levels of cache, and memory layouts optimized for
| performance over compactness. Those older machines were
| single threaded machines with much more minimal OSes,
| memory managers, etc.
|
| - More memory means more data structure overhead to manage
| that memory.
|
| - Larger disks also demand larger structures to manage
| them, and modern filesystems have all kinds of useful
| features like journaling and snapshots that also add
| overhead.
|
| ... and so on.
| skydhash wrote:
| Then you install Linux and get all that without the mess
| that is Win11. Inefficient software is inefficient
| software.
| afavour wrote:
| I think it's a little more nuanced than the broad takes
| make it seem.
|
| One of the biggest performance issues I witness is that
| everyone assumes a super fast, always on WiFi/5G
| connection. Very little is cached locally on device so even
| if I want to do a very simple search through my email inbox
| I have to wait on network latency. Sometimes that's great,
| often it really isn't.
|
| Same goes for many SPA web apps. It's not that my phone
| can't process the JS (even though there's way too much of
| it), it's poor caching strategies that mean I'm downloading
| and processing >1MB of JS way more often than I should be.
| Even on a super fast connection that delay is noticeable.
| jayd16 wrote:
| A lot of nostalgia is at work here. Modern tech is amazing.
| If the old tools were actually better people would actually
| use them. Its not like you can't get them to work.
| mbac32768 wrote:
| In Carmack's Lex Fridman interview he says he knows C++
| devs who still insist on using some ancient version of MSVC
| because it's *so fast* compared to the latest, on the
| latest hardware.
| OtherShrezzing wrote:
| Spotify takes 7 seconds from clicking on its icon to
| playing a song on a 2024 top-of-the-range MacBook Pro.
| Navigating through albums saved on your computer can take
| several seconds. Double clicking on a song creates a 1/4sec
| pause.
|
| This is absolutely remarkable inefficiency considering the
| application's core functionality (media players) was
| perfected a quarter century ago.
| everdrive wrote:
| And on RhythmBox, on a 2017 laptop it works
| instantaneously. These big monetized apps were a huge
| mistake.
| thewebguyd wrote:
| > These big monetized apps were a huge mistake.
|
| It's electron. Electron was a mistake.
| asciimov wrote:
| One example is Office. Microsoft is going back to
| preloading office during Windows Boot so that you don't
| notice it loading. With the average system spec 25 years
| ago it made sense to preload office. But today, what is
| Office doing that it needs to offload its startup to
| running at boot?
| yifanl wrote:
| The Nintendo Switch on a chipset that was outdated a decade
| ago can run Tears of the Kingdom. It's not sensible that
| modern hardware is anything less than instant.
| andy12_ wrote:
| Online Word (or Microsoft 365, or whatever it is called)
| regularly took me 2 minutes to load a 120 page document.
| I'm being very literal here. You could see it load in real
| time approximately 1 page a second. And it wasn't a network
| issue, mind you. It was just that slow.
|
| Worse, the document strained my laptop so much as I used
| it, I regularly had to reload the web-page.
| joaohaas wrote:
| Try forcefully closing VSCode and your browser, and see how
| long it takes to open them again. The same is true for most
| complex webpages/'webapps' (Slack, Discord, etc).
|
| A lot of other native Mac stuff is also less than ideal.
| Terminal keeps getting stuck all the time, Mail app can
| take a while to render HTML emails, Xcode is Xcode, and so
| on.
| bjourne wrote:
| Apple unlike the other Silicon Valley giants has figured
| out that latency >>> throughput. Minimizing latency is much
| more important for making a program "feel" fast than
| maximizing latency. Some of the apps I interact with daily
| are Slack, Teams (ugh), Gmail, and YouTube and they are all
| slow as dogshit.
| KapKap66 wrote:
| There's a problem when people who aren't very sensitive to
| latency and try and track it, and that is that their
| perception of what "instant" actually means is wrong. For
| them, instant is like, one second. For someone who cares
| about latency, instant is less than 10 milliseconds, or
| whatever threshold makes the difference between input and
| result imperceptible. People have the same problem judging
| video game framerates because they don't compare them back
| to back very often (there are perceptual differences
| between framerates of 30, 60, 120, 300, and 500, at the
| minimum, even on displays incapable of refreshing at these
| higher speeds), but you'll often hear people say that 60
| fps is "silky smooth," which is not true whatsoever lol.
|
| If you haven't compared high and low latency directly next
| to each other then there are good odds that you don't know
| what it looks like. There was a twitter video from awhile
| ago that did a good job showing it off that's one of the
| replies to the OP. It's here:
| https://x.com/jmmv/status/1671670996921896960
|
| Sorry if I'm too presumptuous, however; you might be
| completely correct and instant is instant in your case.
| JoeAltmaier wrote:
| I fear that such comments are similar to the old 'a
| monster cable makes my digital audio sound more mellow!'
|
| The eye percieves at about 10 hz. That's 100ms per
| capture. All the rest, I'd have to see a study that shows
| how any higher framerate can possibly be perceived or
| useful.
| zahlman wrote:
| >The eye percieves at about 10 hz. That's 100ms per
| capture. All the rest, I'd have to see a study that shows
| how any higher framerate can possibly be perceived or
| useful.
|
| It takes effectively no effort to conduct such a study
| yourself. Just try re-encoding a video at different frame
| rates up to your monitor refresh rate. Or try _looking
| at_ a monitor that has a higher refresh rate than the one
| you normally use.
| KapKap66 wrote:
| Well if you believe that, start up a video game with a
| framerate limiter and set your game's framerate limit to
| 10 fps and tell me how much you enjoy the experience. By
| default your game will likely be running at either 60 fps
| or 120 fps if you're vertical synced (depends on your
| monitor's refresh rate). Make sure to switch back and
| forth between 10 and 60/120 to compare.
|
| Even your average movie captures at 24 hz. Again, very
| likely you've never actually just compared these things
| for yourself back to back, as I mentioned originally.
| bpshaver wrote:
| Sure, but there's not limit to what people can decide to
| care about. There will always be people who want more
| speed and less latency, but the question is: _are they
| right to do so?_
|
| I'm with the person you're responding. I use the regular
| suite of applications and websites on my 2021 M1 Macbook.
| Things seem to load just fine.
| Aurornis wrote:
| > For someone who cares about latency, instant is less
| than 10 milliseconds
|
| Click latency of the fastest input devices is about 1ms
| and with a 120Hz screen you're waiting 8.3ms between
| frames. If someone is annoyed by 10ms of latency they're
| going to have a hard time in the real world where
| everything takes longer than that.
|
| I think the real difference is that 1-3 seconds is
| completely negligible launch time for an app when you're
| going to be using it all day or week, so most people do
| not care. That's effectively instant.
|
| The people who get irrationally angry that their app
| launch took 3 seconds out of their day instead of being
| ready to go on the very next frame are just never going
| to be happy.
| zahlman wrote:
| How long did your computer take to start up, from power off
| (and no hibernation, although that presumably wasn't a
| thing yet), the first time you got to use a computer?
|
| How long did it take the last time you had to use an HDD
| rather than SSD for your primary drive?
|
| How long did it take the first time you got to use an SSD?
|
| How long does it take today?
|
| Did literally anything other than the drive technology ever
| make a significant difference in that, in the last 40
| years?
|
| > Almost everything loads instantly on my 2021 MacBook
|
| Instantly? Your applications don't have splash screens? I
| think you've probably just gotten used to however long it
| does take.
|
| > 5 year old mobile CPUs load modern SPA web apps with no
| problems.
|
| "An iPhone 11, which has 4GB of RAM (32x what the first-gen
| model had), can run the operating system and display a
| current-day webpage that does a few useful things with
| JavaScript".
|
| This _should_ sound like clearing a _very_ low bar, but it
| doesn 't seem to.
| stronglikedan wrote:
| Mine open instantly, as long as I only have one open at a
| time. The power users on HN likely encounter a lot of slow
| loading apps, like I do.
| Aurornis wrote:
| I can never tell if all of these comments are exaggerations
| to make a point, or if some people really have computers so
| slow that everything takes 20 seconds to launch (like the
| other comment claims).
|
| I'm sure some of these people are using 10 year old
| corporate laptops with heavy corporate anti-virus scanning,
| leading to slow startup times. However, I think a lot of
| people are just exaggerating. If it's not instantly open,
| it's too long for them.
|
| I, too, can get programs like Slack and Visual Studio Code
| to launch in a couple seconds at most, in contrast to all
| of these comments claiming 20 second launch times. I also
| don't quit these programs, so the only time I see that load
| time is after an update or reboot. Even if every program
| did take 20 seconds to launch and I rebooted my computer
| once a week, the net time lost would be measured in a
| couple of minutes.
| vdqtp3 wrote:
| It's not an exaggeration.
|
| I have a 12 core Ryzen 9 with 64GB of RAM, and clicking
| the emoji reaction button in Signal takes long enough to
| render the fixed set of emojis that I've begun clicking
| the empty space where I know the correct emoji will
| appear.
|
| For years I've been hitting the Windows key, typing the
| three or four unique characters for the app I want and
| hitting enter, because the start menu takes too long to
| appear. As a side note, that no longer works since
| Microsoft decided that predictability isn't a valuable
| feature, and the list doesn't filter the same way every
| time or I get different results depending on how fast I
| type and hit enter.
|
| Lots of people literally outpace the fastest hardware on
| the market, and that is insane.
| dijit wrote:
| You're a pretty bad sample, that machine you're talking
| about probably cost >$2,000 new; and if it's an M-series
| chip; well that was a multi-generational improvement.
|
| I (very recently I might add) used a Razer Blade 18, with
| i9 13950HX and 64G of DDR5 memory, and it felt _awfully_
| slow, not sure how much of that is Windows 11 's fault
| however.
|
| My daily driver is an M2 Macbook Air (or a Threadripper
| 3970x running linux); but the workers in my office? Dell
| Latitudes with an i5, 4 real cores and 16G of RAM if
| they're lucky... and of course, Windows 11.
|
| Don't even ask what my mum uses at home, it cost less than
| my monthly food bill; and that's pretty normal for people
| who don't love computers.
| nsagent wrote:
| It really depends on the software. I have the top-of-the-
| line M4 Max laptop with 128GB of memory. I recently
| switched from Zotero [1] to using papis [2] at the command
| line.
|
| Zotero would take 30 seconds to a minute to start up. papis
| has no startup time as it's a cli app and searching is
| nearly instantaneous.
|
| There is no reason for Zotero to be so slow. In fact,
| before switching I had to cut down on the number of papers
| it was managing because at one point it stopped loading
| altogether.
|
| It's great you haven't run into poorly optimized software,
| but but not everyone is so lucky.
|
| [1]: https://www.zotero.org/ [2]:
| https://github.com/papis/papis
| bitmasher9 wrote:
| The major slowdown of modern applications is network calls.
| Spend 50-500ms a pop for a few kilos of data. Many modern
| applications will spin up a half dozen blocking network calls
| casually.
| TiredOfLife wrote:
| And text that is not a pixely or blurry mess. And Unicode.
| anthk wrote:
| Unicode worked since Plan9. And antialiasing it's from the
| early 90's.
| fsloth wrote:
| The problem is 1000xers are a rarity.
|
| The software desktop users have to put up with is _slow_.
| HappMacDonald wrote:
| You can always install DOS as your daily driver and run
| 1980's software on any hardware from the past decade, and
| then tell me how _that 's_ slow.
|
| 1000x referred to the hardware capability, and that's not a
| rarity that is here.
|
| The trouble is how software has since _wasted_ a majority of
| that performance improvement.
|
| Some of it has been quality of life improvements, leading
| nobody to want to use 1980s software or OS when newer
| versions are available.
|
| But the lion's share of the performance benefit got chucked
| into the bin with poor design decisions, layers of
| abstractions, too many resources managed by too many
| different teams that never communicate making any software
| task have to knit together a zillion incompatible APIs, etc.
| 3036e4 wrote:
| The sad thing is that even running DOS software in DOSBox
| (or in QEMU+FreeDOS), or Amiga software in UAE, is much
| faster than any native software I have run in many years on
| any modern systems. They also use more reasonable amounts
| of storage/RAM.
|
| Animations is part of it of course. A lot of old software
| just updates the screen immediately, like in a single
| frame, instead of adding frustrating artificial delays to
| every interaction. Disabling animations in Android (an
| accessibility setting) makes it feel a lot faster for
| instance, but it does not magically fix all apps
| unfortunately.
| justincormack wrote:
| Most programming languages have array bounds checking now.
| oblio wrote:
| Most programming languages are written in C, which doesn't.
|
| Fairly sure that was OP's point.
| scotty79 wrote:
| Since 1980 maybe. But since 2005 it increased maybe 5x and even
| that's generous. And that's half of the time that passed and
| two decades.
|
| https://youtu.be/m7PVZixO35c?si=px2QKP9-80hDV8Ui
| jandrese wrote:
| 2005 was Pentium 4 era.
|
| For comparison:
| https://www.cpubenchmark.net/compare/1075vs5852/Intel-
| Pentiu...
|
| That's about a 168x difference. That was from before Moores
| law started petering out.
|
| For only a 5x speed difference you need to go back to the 4th
| or 5th generation Intel Core processors from about 10 years
| ago.
|
| It is important to note that the speed figure above is
| computed by adding all of the cores together and that single
| core performance has not increased nearly as much. A lot of
| that difference is simply from comparing a single core
| processor with one that has 20 cores. Single core performance
| is only about 8 times faster than that ancient Pentium 4.
| ngneer wrote:
| I agree with the sentiment and analysis that most humans prefer
| short term gains over long term ones. One correction to your
| example, though. Dynamic bounds checking does not solve
| security. And we do not know of a way to solve security. So,
| the gains are not as crisp as you are making them seem.
| HappMacDonald wrote:
| You don't have to "solve" security in order to improve
| security hygiene by a factor of X, and thus risk of negative
| consequences by that same factor of X.
| bluGill wrote:
| Bounds checking solves one tiny subset of security. There are
| hundreds of other subsets that we know how to solve. However
| these days the majority of the bad attacks are social and no
| technology is likely to solve them - as more than 10,000
| years of history of the same attack has shown. Technology
| makes the attacks worse because they now scale, but social
| attacks have been happening for longer than recorded history
| (well there is every reason to believe that - there is
| unlikely to evidence going back that far).
| titzer wrote:
| > However these days the majority of the bad attacks are
| social
|
| You're going to have to cite a source for that.
|
| Bounds checking is one mechanism that addresses memory
| safety vulnerabilities. According to MSFT and CISA[1],
| nearly 70% of CVEs are due to memory safety problems.
|
| You're saying that we shouldn't solve one (very large) part
| of the (very large) problem because there are other parts
| of the problem that the solution wouldn't address?
|
| [1] https://www.cisa.gov/news-events/news/urgent-need-
| memory-saf...
| dist-epoch wrote:
| It's more like 100,000X.
|
| Just the clockspeed increased 1000X, from 4 MHz to 4 GHz.
|
| But then you have 10x more cores, 10x more powerful
| instructions (AVX), 10x more execution units per core.
| noobermin wrote:
| The first reply is essentially right. This isn't what happened
| at all, just because C is still prevalent. All the inefficiency
| is everything down the stack, not in C.
| card_zero wrote:
| I don't trust that shady-looking narrator. 5% of what exactly?
| Do you mean that testing for x >= start and < end is only 5% as
| expensive as assigning an int to array[x]?
|
| Or would bounds checking in fact more than double the time to
| insert a bunch of ints separately into the array, testing where
| each one is being put? Or ... is there some gimmick to avoid
| all those individual checks, I don't know.
| timbit42 wrote:
| You only need to bounds check once before a for loop starts,
| not every iteration.
| card_zero wrote:
| If they're all being inserted contiguously.
|
| Anyway that's a form of saying "I know by reasoning that
| none of these will be outside the bounds, so let's not
| check".
| ricardo81 wrote:
| >Personally I think the 1000Xers kinda ruined things for the
| rest of us.
|
| Reminds me of when NodeJS came out that bridged client and
| server side coding. And apparently their repos can be a bit of
| a security nightmare nowadays- so the minimalist languages with
| limited codebase do have their pros.
| monkeyelite wrote:
| > If dynamic array bounds checking cost 5% (narrator: it is far
| less than that)
|
| It doesn't work like that. If an image processing algorithm
| takes 2 instructions per pixel, adding a check to every access
| could 3-4x the cost.
|
| This is why if you dictate bounds checking then the language
| becomes uncompetitive for certain tasks.
|
| The vast majority of cases it doesn't matter at all - much less
| than 5%. I think safe/unsafe or general/performance scopes are
| a good way to handle this.
| miloignis wrote:
| It's not that simple either - normally, if you're doing some
| loops over a large array of pixels, say, to perform some
| operation to them, there will only be a couple of bounds
| checks before the loop starts, checking the starting and
| ending conditions of the loops, not re-doing the bounds check
| for every pixel.
|
| So very rarely should it be anything like 3-4x the cost,
| though some complex indexing could cause it to happen, I
| suppose. I agree scopes are a decent way to handle it!
| monkeyelite wrote:
| You're describing a situation where I - or a very smart
| compiler can choose when to bounds check or not to make
| that intelligent realization.
| timbit42 wrote:
| Your argument is exactly why we ended up with the
| abominations of C and C++ instead of the safety of Pascal,
| Modula-2, Ada, Oberon, etc. Programmers at the time didn't
| realize how little impact safety features like bounds
| checking have. The bounds only need to be checked once for a
| for loop, not on each iteration.
| monkeyelite wrote:
| > The bounds only need to be checked once for a for loop,
| not on each iteration.
|
| This is a theoretical argument. It depends on the compiler
| being able to see that's what you're doing and prove that
| there is no other mutation.
|
| > abominations of C and C++
|
| Sounds like you don't understand the design choices that
| made this languages successful.
| timbit42 wrote:
| I understand the design choices and they're crap.
| Choosing a programming language shouldn't be a popularity
| contest.
| Aurornis wrote:
| > It doesn't work like that. If an image processing algorithm
| takes 2 instructions per pixel, adding a check to every
| access could 3-4x the cost.
|
| Your understanding of how bounds checking works in modern
| languages and compilers is not up to date. You're not going
| to find a situation where bounds checking causes an algorithm
| to take 3-4X longer.
|
| A lot of people are surprised when the bounds checking in
| Rust is basically negligible, maybe 5% at most. In many cases
| if you use iterators you might not see a hit at all.
|
| Then again, if you have an image processing algorithm that is
| literally reading every single pixel one-by-one to perform a
| 2-instruction operation and calculating bounds check on every
| access in the year 2025, you're doing a lot of things very
| wrong.
|
| > This is why if you dictate bounds checking then the
| language becomes uncompetitive for certain tasks.
|
| Do you have any examples at all? Or is this just speculation?
| monkeyelite wrote:
| > Your understanding of how bounds checking works in modern
| languages and compilers is not up to date.
|
| One I am familiar with is Swift - which does exactly this
| because it's a library feature of Array.
|
| Which languages will always be able to determine through
| function calls, indirect addressing, etc whether it needs
| to bounds check or not?
|
| And how will I know if it succeeded or whether something
| silently failed?
|
| > if you have an image processing algorithm that is
| literally reading every single pixel one-by-one to perform
| a 2-instruction operation and calculating bounds check on
| every access in the year 2025, you're doing a lot of things
| very wrong
|
| I agree. And note this is an example of a scenario you can
| encounter in other forms.
|
| > Do you have any examples at all? Or is this just
| speculation?
|
| Yes. Java and python are not competitive for graphics and
| audio processing.
| CyberDildonics wrote:
| Clock speeds are 2000x higher than the 80s.
|
| IPC could be 80x higher when taking into account SIMD and then
| you have to multiply by each core. Mainstream CPUs are more
| like 1 to 2 million times faster than what was there in the
| 80s.
|
| You can get full refurbished office computers that are still in
| the million times faster range for a few hundred dollars.
|
| The things you are describing don't have much to do with
| computers being slow and feeling slow, but they are happening
| anyway.
|
| Scripting languages that are constantly allocating memory to
| any small operation and pointer chasing ever variable because
| the type is dynamic is part of the problem, then you have
| people writing extremely inefficient programs in an already
| terrible environment.
|
| Most programs are written now in however way the person writing
| them wants to work, not how someone using it wishes they were
| written.
|
| Most people have actually no concept of optimization or what
| runs faster than something else. The vast majority of programs
| are written by someone who gets it to work and thinks "this is
| how fast this program runs".
|
| The idea that the same software can run faster is a niche
| thought process, not even everyone on hacker news thinks about
| software this way.
| wustus wrote:
| And this is JavaScript. And you. are. going. to. LOVE IT!
| billfor wrote:
| I made a vendor run their buggy and slow software on a Sparc 20
| against their strenuous complaints to just let them have an
| Ultra, but when they eventually did optimize their software to
| run efficiently (on the 20) it helped set the company up for
| success in the wider market. Optimization should be treated as
| competitive advantage, perhaps in some cases one of the most
| important.
| AtlasBarfed wrote:
| I think on year 2001 GHz CPU should be a performance benchmark
| that every piece of basic non-high performance software should
| execute acceptably on.
|
| This is kind of been a disappointment to me of AI when I've
| tried it. This has kind of been a disappointment to me of AI
| when I've tried it. Llm should be able to Port things. It
| should be able to rewrite things with the same interface. It
| should be able to translate from inefficient languages to more
| efficient ones.
|
| It should even be able to optimize existing code bases
| automatically, or at least diagnose or point out poor
| algorithms, cache optimization, etc.
|
| Heck I remember powerbuilder in the mid 90s running pretty well
| on 200 mhz CPUs. It doesn't even really interpreted stuff. It's
| just amazing how slow stuff is. Do rounded corners and CSS
| really consume that much CPU power?
|
| My limited experience was trying to take the unix sed source
| code and have AI port it into a jvm language, and it could do
| the most basic operations, but utterly failed at even the
| intermediate sed capabilities. And then optimize? Nope
|
| Of course there's no desire for something like that. Which
| really shows what the purpose of all this is. It's to kill
| jobs. It's not to make better software. And it means AI is
| going to produce a flood of bad software. Really bad software.
| mikewarot wrote:
| The realization that a string could hold a gigabyte of text
| might have killed off null terminated strings, and saved us all
| a f@ckton of grief
| hello_computer wrote:
| > the 1000Xers kinda ruined things for the rest of us
|
| Robert Barton (of Burroughs 5000 fame) once referred to these
| people as " _high priests of a low cult_."
| dijit wrote:
| Maybe since 1980.
|
| I recently watched a video that can be summarised quite simply
| as: "Computers today aren't that much faster than the computers
| of 20 years ago, unless you specifically code for them".
|
| https://www.youtube.com/watch?v=m7PVZixO35c
|
| It's a little bit ham-fisted, as the author was shirking
| decades of compile optimisations _also_ , and it's not apples
| to apples as he's comparing desktop class hardware with what is
| essentially laptop hardware; but it's also interesting to see
| that a lot of the performance gains really weren't that great
| actually. he observes a doubling of performance in 15 years!
| Truth be told _most_ people use laptops now, and truth be told
| 20 years ago _most_ people used desktops, so it 's not totally
| unfair.
|
| Maybe we've bought a lot into marketing.
| nitwit005 wrote:
| The cost of bounds checking, by itself, is low. The cost of
| using safe languages generally can be vastly higher.
|
| Garbage collected languages often consume several times as much
| memory. They aren't immediately freeing memory no longer being
| used, and generally require more allocations in the first
| place.
| dardeaup wrote:
| It 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.
| caseyy wrote:
| Suddenly, American towns are running out of water, and we're
| building out nuclear power for text auto-complete. It's one for
| the history books, for sure.
| SilverSlash wrote:
| The 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 wrote:
| It's related to a thread from yesterday, I'm guessing you
| haven't seen it:
|
| https://news.ycombinator.com/item?id=43967208
| https://threadreaderapp.com/thread/1922015999118680495.html
| MrBuddyCasino wrote:
| This 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 wrote:
| > "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 wrote:
| There 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.
| HappMacDonald wrote:
| And I'd argue that we've seen tons of innovation in the past
| 18 years aside from just "the smartphone" but it's all too
| easy to take for granted and forget from our current
| perspective.
|
| First up, the smartphone itself had to evolve a hell of a lot
| over 18 years or so. Go try to use an iPhone 1 and you'll
| quickly see all of the roadblocks and what we now consider
| poor design choices littered everywhere, vs improvements
| we've all taken for granted since then.
|
| 18 years ago was 2007? Then we didn't have (for better or for
| worse on all points):
|
| * Video streaming services
|
| * Decent video game market places or app stores. Maybe
| "Battle.net" with like 5 games, lol!
|
| * VSCode-style IDEs (you really would not have appreciated
| Visual Studio or Eclipse of the time..)
|
| * Mapping applications on a phone (there were some stand-
| alone solutions like Garmin and TomTom just getting off the
| ground)
|
| * QR Codes (the standard did already exist, but mass adoption
| would get nowhere without being carried _by_ the smartphone)
|
| * Rideshare, food, or grocery delivery services (aside from
| taxis and whatever pizza or chinese places offered their own
| delivery)
|
| * Voice-activated assistants (including Alexa and other
| standalone devices)
|
| * EV Cars (that anyone wanted to buy) or partial autopilot
| features aside from 1970's cruise control
|
| * Decent teleconferencing (Skype's featureset was damn
| limited at the time, and any expensive enterprise solutions
| were dead on the launchpad due to lack of network effects)
|
| * Decent video displays (flatscreens were still busy trying
| to mature enough to push CRTs out of the market at this
| point)
|
| * Color printers were far worse during this period than
| today, though that tech will never run out of room for
| improvement.
|
| * Average US Internet speeds to the home were still ~1Mbps,
| with speeds to cellphone of 100kbps being quite luxurious.
| Average PCs had 2GB RAM and 50GB hard drive space.
|
| * Naturally: the tech everyone loves to hate such as AI,
| Cryptocurrencies, social network platforms, "The cloud" and
| SaaS, JS Frameworks, Python (at least 3.0 and even
| realistically heavy adoption of 2.x), node.js, etc. Again "Is
| this a net benefit to humanity" and/or "does this get poorly
| or maliciously used a lot" doesn't speak to whether or not a
| given phenomena is _innovative_ , and all of these
| objectively are.
| xnorswap wrote:
| Your post seems entirely anachronistic.
|
| 2007 is the year we did get video streaming services:
| https://en.wikipedia.org/wiki/BBC_iPlayer
|
| Steam was selling games, even third party ones, for years
| by 2007.
|
| I'm not sure what a "VS-Code style IDE" is, but I
| absolutely did appreciate Visual Studio ( and VB6! ) prior
| to 2007.
|
| 2007 was in fact the peak of TomTom's profit, although GPS
| navigation isn't really the same as general purpose mapping
| application.
|
| Grocery delivery was well established, Tesco were doing
| that in 1996. And the idea of takeaways not doing delivery
| is laughable, every establishment had their own delivery
| people.
|
| Yes, there are some things on that list that didn't exist,
| but the top half of your list is dominated by things that
| were well established by 2007.
| bitwize wrote:
| Sublime Text was out by 2008. Its spiritual predecessor,
| TextMate, was out a few years before that.
|
| And of course, Vim and Emacs were out long before that.
| conorjh wrote:
| most of that list is iteration, not innovation. like going
| from "crappy colour printer" to "not-so-crappy colour
| printer"
| 00N8 wrote:
| I worked for a 3rd party food delivery service in the
| summer of 2007. Ordering was generally done by phone, then
| the office would text us (the drivers) order details for
| pickup & delivery. They provided GPS navigation devices,
| but they were stand-alone units that were slower & less
| accurate than modern ones, plus they charged a small fee
| for using it that came out of our pay.
| piperswe wrote:
| > * Video streaming services
|
| Netflix video streaming launched in 2007.
|
| > * VSCode-style IDEs (you really would not have
| appreciated Visual Studio or Eclipse of the time..)
|
| I used VS2005 a little bit in the past few years, and I was
| surprised to see that it contains most of the features that
| I want from an IDE. Honestly, I wouldn't mind working on a
| C# project in VS2005 - both C# 2.0 and VS2005 were complete
| enough that they'd only be a mild annoyance compared to
| something more modern.
|
| > partial autopilot features aside from 1970's cruise
| control
|
| Radar cruise control was a fairly common option on mid-
| range to high-end cars by 2007. It's still not standard in
| all cars today (even though it _is_ standard on multiple
| economy brands). Lane departure warning was also available
| in several cars. I will hand it to you that L2 ADAS didn't
| really exist the way it does today though.
| eesmith wrote:
| The future is unevenly distributed.
|
| > Video streaming services
|
| We watched a stream of the 1994 World Cup. There was a
| machine at MIT which forwarded the incoming video to an X
| display window xhost +machine.mit.edu
|
| and we could watch it from several states away. (The
| internet was so trusting in those days.)
|
| To be sure, it was only a couple of frames per second, but
| it was video, and an audience collected to watch it.
|
| > EV Cars (that anyone wanted to buy)
|
| People wanted to buy the General Motors EV1 in the 1990s.
| Quoting Wikipedia, "Despite favorable customer reception,
| GM believed that electric cars occupied an unprofitable
| niche of the automobile market. The company ultimately
| crushed most of the cars, and in 2001 GM terminated the EV1
| program, disregarding protests from customers."
|
| I know someone who managed to buy one. It was one of the
| few which had been sold rather than leased.
| jayd16 wrote:
| We have self driving cars, amazing advancement in computer
| graphics, dead reckoning of camera position from visual
| input...
|
| In the meantime, hardware has had to go wide on threads as
| single core performance has not improved. You could argue
| that's been a software gain and a hardware failure.
| cogman10 wrote:
| > single core performance has not improved.
|
| Single core performance has improved, but at a much slower
| rate than I experienced as a kid.
|
| Over the last 10 years, we are something like 120%
| improvement in single core performance.
|
| And, not for nothing, efficiency has become much more
| important. More CPU performance hasn't been a major driving
| factor vs having a laptop that runs for 12 hours. It's
| simply easier to add a bunch of cores and turn them all off
| (or slow them down) to gain power efficiency.
|
| Not to say the performance story would be vastly different
| with more focus on performance over efficiency. But I'd say
| it does have an effect on design choices.
| franktankbank wrote:
| I think its a bad argument though. If we had to stop with the
| features for a little while and created some breathing room,
| the features would come roaring back. There'd be a downturn
| sure but not a continuous one.
| wiz21c wrote:
| I'd much prefer Carmack to think about optimizing for energy
| consumption.
| the__alchemist wrote:
| These two metrics often scale linearly.
| threetonesun wrote:
| Obviously, 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 wrote:
| Probably, but we'd be in a pretty terrible security place without
| modern hardware based cryptographic operations.
| margorczynski wrote:
| The 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.
| wtetzner wrote:
| Unfortunately currently the priority is neither.
| bob1029 wrote:
| We'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 wrote:
| > 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 wrote:
| You 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 wrote:
| The 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 wrote:
| HFT would love to do more complex calculations for some of
| their trades. They often make the compromise of using a
| faster algorithm that is known to be right only 60% of the
| time vs the better but slower algorithm that is right 90%
| of the time.
|
| That is a different problem from yours though and so it has
| different considerations. In some areas I/O dominates, in
| some it does not.
| queuebert wrote:
| In a perfect world, maximizing (EV/op) x (ops/sec) should
| be done for even user software. How many person-years of
| productivity are lost each year to people waiting for
| Windows or Office to start up, finish updating, etc?
| agentultra wrote:
| I work in card payments transaction processing and IO
| dominates. You need to have big models and lots of data to
| authorize a transaction. And you need that data as fresh as
| possible and as close to your compute as possible... but
| you're always dominated by IO. Computing the authorization
| is super cheap.
|
| Tends to scale vertically rather than horizontally. Give me
| massive caches and wide registers and I can keep them full.
| For now though a lot of stuff is run on commodity cloud
| hardware so... eh.
| queuebert wrote:
| Why can you not match orders in parallel using logarithmic
| reduction, the same way you would sort in parallel? Is it that
| there is not enough other computation being done other than
| sorting by time and price?
| tossandthrow wrote:
| I think it is the temporal aspect of order matching - for
| exchanges it is an inherently serial process.
| mike_hearn wrote:
| It's an inherently serial problem and regulations require it
| to be that way. Users who submit first want their orders to
| be the one that crosses.
| VagabundoP wrote:
| I'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 wrote:
| I 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
| therealmarv wrote:
| Tell 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 wrote:
| There 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-e...
| hombre_fatal wrote:
| Even 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.
| kasey_junk wrote:
| I'm surprised in your list because it contains 3 apps that
| I've replaced specifically due to performance issues (docker,
| iterm and notes). I don't consider myself particularly
| performance sensitive (at home) either. So it might be true
| that the world is even _less_ likely to pay for resource
| efficiency than we think.
| defen wrote:
| What did you replace Docker with?
| kasey_junk wrote:
| Podman
| hombre_fatal wrote:
| Podman might have some limited API compatibility, but it's
| a completely different tool. Just off the bat it's not
| compatible with Skaffold, apparently.
|
| That an alternate tool might perform better is compatible
| with the claim that performance alone is never the only
| difference between software.
|
| Podman might be faster than Docker, but since it's a
| different tool, migrating to it would involve figuring out
| any number of breakage in my toolchain that doesn't feel
| worth it to me since performance isn't the only thing that
| matters.
| jpalawaga wrote:
| Except you've already swapped terminal for iterm, and
| orbstack already exists in part because docker left so much
| room for improvement, especially on the perf front.
| hombre_fatal wrote:
| I swapped Terminal for iTerm2 because I wanted specific
| features, not because of performance. iTerm2 is probably
| slower for all I care.
|
| Another example is that I use oh-my-zsh which is adds
| weirdly long startup time to a shell session, but it lets
| me use plugins that add things like git status and kubectl
| context to my prompt instead of fiddling with that myself.
| genghisjahn wrote:
| I have worked for large corporations that have foisted awful
| HR, expense reporting, time tracking and insurance "portals"
| that were so awful I had to wonder if anyone writing the checks
| had ever seen the product. I brought up the point several times
| that if my team tried to tell a customer that we had their
| project all done but it was full of as many bugs and UI
| nightmares as these back office platforms, I would be
| chastised, demoted and/or fired.
| api wrote:
| What you're describing is Enterprise(tm) software. Some
| consultancy made tens of millions of dollars building,
| integrating, and deploying those things. This of course was
| after they made tens of millions of dollars producing reports
| exploring how they would build, integrate, and deploy these
| things and all the various "phases" involved. Then they
| farmed all the work out to cheap coders overseas and everyone
| went for golf.
|
| Meanwhile I'm a founder of startup that has gotten from zero
| to where it is on probably what that consultancy spends every
| year on catering for meetings.
| monkeyelite wrote:
| The job it's paid to do is satisfy regulation requirements.
| Ajedi32 wrote:
| > I had to wonder if anyone writing the checks had ever seen
| the product
|
| Probably not, and that's like 90% of the issue with
| enterprise software. Sadly enterprise software products are
| often sold based mainly on how many boxes they check in the
| list of features sent to management, not based on the actual
| quality and usability of the product itself.
| econ wrote:
| If they think it is unimportant talk as if it is. It could be
| more polished. Do we want to impress them or just satisfy
| their needs?
| hamburglar wrote:
| I used to work at a large company that had a lousy internal
| system for doing performance evals and self-reviews. The UI
| was shitty, it was unreliable, it was hard to use, it had
| security problems, it would go down on the eve of reviews
| being due, etc. This all stressed me out until someone in
| management observed, rather pointedly, that the reason for
| existence of this system is that we are contractually
| required to have such a system because the rules for
| government contracts mandate it, and that there was a
| possibility (and he emphasized the word possibility
| knowingly) that the managers _actully_ are considering their
| personal knowledge of your performance rather than this
| performative documentation when they consider your promotions
| and comp adjustments. It was like being hit with a zen
| lightning bolt: this software meets its requirements
| _exactly_ , and I can stop worrying about it. From that day
| on I only did the most cursory self-evals and minimal
| accomplishents, and my career progressed just fine.
|
| You might not think about this as "quality" but it does have
| the quality of meeting the perverse functional requirements
| of the situation.
| regularfry wrote:
| Across three jobs, I have now seen three different HR systems
| _from the same supplier_ which were all differently terrible.
| dmos62 wrote:
| Bad software is not cheaper to make (or maintain) in the long-
| term.
| usefulcat wrote:
| Maybe not, but that still leaves the question of who ends up
| bearing the actual costs of the bad software.
| monkeyelite wrote:
| That's true - but finding good engineers who know how to do
| it is more expensive, at least in expenditures.
| caseyy wrote:
| There are many exceptions.
|
| 1. Sometimes speed = money. Being the first to market,
| meeting VC-set milestones for additional funding, and not
| running out of runway are all things cheaper than the
| alternatives. Software maintenance costs later don't come
| close to opportunity costs if a company/project fails.
|
| 2. Most of the software is disposable. It's made to be sold,
| and the code repo will be chucked into a .zip on some
| corporate drive. There is no post-launch support, and the
| software's performance after launch is irrelevant for the
| business. They'll never touch the codebase again. There is no
| "long-term" for maintenance. They may harm their reputation,
| but that depends on whether their clients can talk with each
| other. If they have business or govt clients, they don't
| care.
|
| 3. The average tenure in tech companies is under 3 years.
| Most people involved in software can consider maintenance
| "someone else's problem." It's like the housing stock is in
| bad shape in some countries (like the UK) because the average
| tenure is less than 10 years. There isn't a person in the
| property's owner history to whom an investment in long-term
| property maintenance would have yielded any return. So now
| the property is dilapidated. And this is becoming a real
| nationwide problem.
|
| 4. Capable SWEs cost a lot more money. And if you hire an
| incapable IC who will attempt to future-proof the software,
| maintenance costs (and even onboarding costs) can balloon
| much more than some inefficient KISS code.
|
| 5. It only takes 1 bad engineering manager in the whole
| history of a particular piece of commercial software to ruin
| its quality, wiping out all previous efforts to maintain it
| well. If someone buys a second-hand car and smashes it into a
| tree hours later, was keeping the car pristinely maintained
| for that moment (by all the previous owners) worth it?
|
| And so forth. What you say is true in some cases (esp where a
| company and its employees act in good faith) but not in many
| others.
| pessimizer wrote:
| What does "make in the long-term" even mean? How do you make
| a sandwich in the long-term?
|
| Bad things are cheaper and easier to make. If they weren't,
| people would always make good things. You might say "work
| smarter," but smarter people cost more money. If smarter
| people didn't cost more money, everyone would always have the
| smartest people.
| caseyy wrote:
| I guess some sandwiches are made in a way that has awful
| long-term health consequences, if we were to overanalyze
| it...
| asoneth wrote:
| "In the long run, we are all dead." -- Keynes
|
| In my experiences, companies can afford to care about good
| software if they have extreme demands (e.g. military,
| finance) or amortize over very long timeframes (e.g.
| privately owned). It's rare for consumer products to fall
| into either of these categories.
| davidw wrote:
| I don't think it's necessarily a market for lemons. That
| involves information asymmetry.
|
| Sometimes that happens with buggy software, but I think in
| general, people just want to pay less and don't mind a few bugs
| in the process. Compare and contrast what you'd have to charge
| to do a very thorough process with multiple engineers checking
| every line of code and many hours of rigorous QA.
|
| I once did some software for a small book shop where I lived in
| Padova, and created it pretty quickly and didn't charge the guy
| - a friend - much. It wasn't perfect, but I fixed any problems
| (and there weren't many) as they came up and he was happy with
| the arrangement. He was patient because he knew he was getting
| a good deal.
| graemep wrote:
| I do think there is an information problem in many cases.
|
| It is easy to get information of features. It is hard to get
| information on reliability or security.
|
| The result is worsened because vendors compete on features,
| therefore they all make the same trade off of more features
| for lower quality.
| davidw wrote:
| There's likely some, although it depends on the
| environment. The more users of the system there are, the
| more there are going to be reviews and people will know
| that it's kind of buggy. Most people seem more interested
| in cost or features though, as long as they're not losing
| hours of work due to bugs.
| HideousKojima wrote:
| Some vendors even make it impossible to get information.
| See Oracle and Microsoft forbidding publishing benchmarks
| for their SQL databases.
| mjr00 wrote:
| > the market sells as if all goods were high-quality
|
| The phrase "high-quality" is doing work here. The implication
| I'm reading is that poor performance = low quality. However,
| the applications people are mentioning in this comment section
| as low performance (Teams, Slack, Jira, etc) all have
| competitors with _much_ better performance. But if I ask a
| person to pick between Slack and, say, a a fast IRC client like
| Weechat... what do you think the _average_ person is going to
| consider low-quality? It 's the one with a terminal-style UI,
| no video chat, no webhook integrations, and no custom avatars
| or emojis.
|
| Performance is a feature like everything else. Sometimes, it's
| a really important feature; the dominance of Internet Explorer
| was destroyed by Chrome largely because it was _so_ much faster
| than IE when it was released, and Python devs are quickly
| migrating to uv /ruff due to the performance improvement. But
| when you start getting into the territory of "it takes Slack 5
| seconds to start up instead of 10ms", you're getting into the
| realm where very few people care.
| caseyy wrote:
| That's true. I meant it in a broader sense. Quality = {speed,
| function, lack of bugs, ergonomics, ... }.
| dgb23 wrote:
| You are comparing applications with wildly different features
| and UI. That's neither an argument for nor against
| performance as an important quality metric.
|
| How fast you can compile, start and execute some particular
| code matters. The experience of using a program that performs
| well if you use it daily matters.
|
| Performance is not just a quantitative issue. It leaks into
| everything, from architecture to delivery to user experience.
| Bad performance has expensive secondary effects, because we
| introduce complexity to patch over it like horizontal
| scaling, caching or eventual consistency. It limits our
| ability to make things immediately responsive and reliable at
| the same time.
| mjr00 wrote:
| > You are comparing applications with wildly different
| features and UI. That's neither an argument for nor against
| performance as an important quality metric.
|
| I never said performance wasn't an important quality
| metric, just that it's not the _only_ quality metric. If a
| slow program has the features I need and a fast program
| doesn 't, the slow program is going to be "higher quality"
| in my mind.
|
| > How fast you can compile, start and execute some
| particular code matters. The experience of using a program
| that performs well if you use it daily matters.
|
| Like any other feature, whether or not performance is
| important depends on the user and context. Chrome being
| faster than IE8 at general browsing (rendering pages,
| opening tabs) was very noticeable. uv/ruff being faster
| than pip/poetry is important because of how the tools
| integrate into performance-sensitive development workflows.
| Does Slack taking 5-10 seconds to load on startup matter?
| -- to me not really, because I have it come up on boot and
| forget about it until my next system update forced reboot.
| Do I use LibreOffice or Word and Excel, even though
| LibreOffice is faster? -- I use Word/Excel because I've run
| into annoying compatibility issues enough times with LO to
| not bother. LibreOffice could reduce their startup and file
| load times to 10 picoseconds and I would _still_ use MS
| Office, because I just want my damn documents to keep the
| same formatting my colleagues using MS Office set on their
| Windows computers.
|
| Now of course I would _love_ the best of all worlds;
| programs to be fast _and_ have all the functionality I
| want! In reality, though, companies can 't afford to build
| _every_ feature, performance included, and need to pick and
| choose what 's important.
| Retric wrote:
| > If a slow program has the features I need and a fast
| program doesn't, the slow program is going to be "higher
| quality" in my mind.
|
| That's irrelevant here, the fully featured product can
| also be fast. The overwhelming majority of software is
| slow because the company simply doesn't care about
| efficiency. Google actively penalized slow websites and
| many companies still didn't make it a priority.
| mjr00 wrote:
| > That's irrelevant here, the fully featured product can
| also be fast.
|
| So why is it so rarely the case? If it's so simple, why
| hasn't anyone recognized that Teams, Zoom, etc are all
| bloated and slow and made a hyper-optimized, feature-
| complete competitor, dominating the market?
|
| Software costs money to build, and performance
| optimization doesn't come for free.
|
| > The overwhelming majority of software is slow because
| the company simply doesn't care about efficiency.
|
| Don't care about efficiency _at all_ , or don't consider
| it as important as other features and functionality?
| Retric wrote:
| Not being free upfront isn't the same thing as expensive.
|
| Zoom's got 7,412 employees a small team of say 7
| employees could make a noticeable difference here and the
| investment wouldn't disappear, it would help drive
| further profits.
|
| > Don't care about efficiency at all
|
| Doesn't care beyond basic functionality. Obviously they
| care if something takes an hour to load, but rarely do
| you see considerations for people running on lower
| hardware than the kind of machines you see at a major
| software company etc.
| mjr00 wrote:
| > Zoom's got 7,412 employees a small team of say 7
| employees could make a noticeable difference here
|
| What would those 7 engineers specifically be working on?
| How did you pick 7? What part of the infrastructure would
| they be working on, and what kind of performance gains,
| in which part of the system, would be the result of their
| work?
| Retric wrote:
| What consumers care about is the customer facing aspects
| of the business. As such you'd benchmark Zoom on various
| clients/plugins (Windows, Max, Android, iOS) and create a
| never ending priority list of issues weighted by
| marketshare.
|
| 7 people was roughly chosen to be able to cover the
| relevant skills while also being a tiny fraction of the
| workforce. Such efforts run into diminishing returns, but
| the company is going to keep creating low hanging fruit.
| dgb23 wrote:
| > Software costs money to build, and performance
| optimization doesn't come for free.
|
| Neither do caching, operational/architectural overhead,
| slow builds and all the hoops we jump through in order to
| satisfy stylistic choices. All of this stuff introduces
| complexity and often demands specialized expertise on
| top.
|
| And it's typically not about optimization, but about not
| doing things that you don't necessarily have to do. A
| little bit of frugality goes a long way. Often leading to
| simpler code and fewer dependencies.
|
| The hardware people are (actually) optimizing, trying
| hard to make computers fast, to a degree that it
| introduces vulnerabilities (like the apple CPU cache
| prefetching memory from arrays of pointers, which opened
| it up for timing attacks, or the branch prediction
| vulnerability on intel chips). Meanwhile we software
| people are piling more and more stuff into programs that
| aren't needed, from software patterns/paradigms to
| unnecessary dependencies etc.
|
| There's also the issue of programs feeling entitled to
| resources. When I'm running a video game or a data
| migration, I obviously want to give it as many resources
| as possible. But it shouldn't be necessary to provide
| gigabytes of memory for utility programs and operative
| applications.
| kristofferR wrote:
| > You are comparing applications with wildly different
| features and UI. That's neither an argument for nor against
| performance as an important quality metric.
|
| Disagree, the main reason so many apps are using "slow"
| languages/frameworks is precisely that it allows them to
| develop way more features way quicker than more efficient
| and harder languages/frameworks.
| homebrewer wrote:
| If you're being honest, compare Slack and Teams not with
| weechat, but with Telegram. Its desktop client (along with
| other clients) is written by an actually competent team that
| cares about performance, and it shows. They have enough money
| to produce a native client written in C++ that has fantastic
| performance and is high quality overall, but these software
| behemoths with budgets higher than most countries' GDP
| somehow never do.
| bri3d wrote:
| This; "quality" is such an unclear term here.
|
| In an efficient market people buy things based on a value
| which in the case of software, is derived from overall
| fitness for use. "Quality" as a raw performance metric or a
| bug count metric aren't relevant; the criteria is "how much
| money does using this product make or save me versus its
| competition or not using it."
|
| In some cases there's a Market of Lemons / contract / scam /
| lack of market transparency issue (ie - companies selling
| defective software with arbitrary lock-ins and long
| contracts), but overall the slower or more "defective"
| software is often more fit for purpose than that provided by
| the competition. If you _must_ have a feature that only a
| slow piece of software provides, it's still a better deal to
| acquire that software than to not. Likewise, if software is
| "janky" and contains minor bugs that don't affect the end
| results it provides, it will outcompete an alternative which
| can't produce the same results.
| pessimizer wrote:
| > 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.
|
| That's where FOSS or even proprietary "shared source" wins. You
| know if the software you depend on is generally badly or
| generally well programmed. You may not be able to find the
| bugs, but you can see how long the functions are, the comments,
| and how things are named. YMMV, but conscientiousness is a
| pretty great signal of quality; you're at least confident that
| their code is clean enough that _they_ can find the bugs.
|
| Basically the opposite of the feeling I get when I look at the
| db schemas of proprietary stuff that we've paid an enormous
| amount for.
| turtlebits wrote:
| IME, the problem is that FOSS consumer facing software is
| just about the worst in UX and design.
| carlosjobim wrote:
| Technically correct, since you know it's bad because it's
| FOSS.
|
| At least when talking about software that has any real world
| use case, and not development for developments sake.
| ashoeafoot wrote:
| Therefore brands as guardians of quality .
| Xelbair wrote:
| the thing is - countries have set down legal rules preventing
| selling of food that actively harms the consumer(expired, known
| poisonous, addition of addictive substances(opiates) etc) to
| continue your food analogy.
|
| in software the regulations can be boiled down to 'lol lmao' in
| pre-GDPR era. and even now i see GDPR violations daily.
| 0_____0 wrote:
| I have that washing machine btw. I saw the AI branding and had
| a chuckle. I bought it anyway because it was reasonably priced
| (the washer was $750 at Costco).
| reidrac wrote:
| In my case I bought it because LG makes appliances that fit
| under the counter if you don't have much space.
|
| It bothered me the AI BS, but the price was good and the
| machine works fine.
| reidrac wrote:
| The user tolerance has changed as well because the web 2.0
| "perpetual beta" and SaaS replacing other distribution models.
|
| Also Microsoft has educated now several generations to accept
| that software fails and crashes.
|
| Because "all software is the same", customers may not
| appreciate good software when they're used to live with bad
| software.
| azemetre wrote:
| Is this really tolerance and not just monopolistic companies
| abusing their market position? I mean workers can't even
| choose what software they're allowed to use, those choices
| are made by the executive/management class.
| dahart wrote:
| The dumbest and most obvious of realizations finally dawned on
| me after trying to build a software startup that was based on
| quality differentiation. We were sure that a better product
| would win people over and lead to viral success. It didn't.
| Things grew, but so slowly that we ran out of money after a few
| years before reaching break even.
|
| What I realized is that lower costs, and therefore lower
| quality, are a competitive advantage in a competitive market.
| Duh. I'm sure I knew and said that in college and for years
| before my own startup attempt, but this time I really _felt_ it
| in my bones. It suddenly made me realize exactly why everything
| in the market is mediocre, and why high quality things always
| get worse when they get more popular. Pressure to reduce costs
| grows with the scale of a product. Duh. People want cheap, so
| if you sell something people want, someone will make it for
| less by cutting "costs" (quality). Duh. What companies do is
| pay the minimum they need in order to stay alive & profitable.
| I don't mean it never happens, sometimes people get excited and
| spend for short bursts, young companies often try to make high
| quality stuff, but eventually there will be an inevitable slide
| toward minimal spending.
|
| There's probably another name for this, it's not quite the
| Market for Lemons idea. I don't think this leads to market
| collapse, I think it just leads to stable mediocrity
| everywhere, and that's what we have.
| thijson wrote:
| I kind of see this in action when I'm comparing products on
| Amazon. When comparing two products on Amazon that are
| substantially the same, the cheaper one will have way more
| reviews. I guess this implies that it has captured the
| majority of the market.
| thijson wrote:
| Luxury items however seem to buck this trend, but this is
| all about conspicuous consumption.
| rpnx wrote:
| I think this honestly has more to do with moslty Chinese
| sellers engaging in review fraud, which is a rampant
| problem. I'm not saying non-Chinese sellers don't engage in
| review fraud, but I have noticed a trend that around 98% of
| fake or fraudulently advertised products are of Chinese
| origin.
|
| If it was just because it was cheap, we'd also see similar
| fraud from Mexican or Vietnamese sellers, but I don't
| really see that.
| olejorgenb wrote:
| You have to have bought the item om Amazon to review
| right? So these reviewers buy and return, or how does it
| work?
| svachalek wrote:
| There are various ways to do the trick, sometimes they
| ship out rocks to create a paper trail, sometimes they
| take a cheap/light product and then replace the listing
| with something more expensive and carry over all the
| reviews (which is just stupid that Amazon allows but
| apparently they do)
| rom16384 wrote:
| I had the same realization but with car mechanics. If you
| drive a beater you want to spend the least possible on
| maintenance. On the other hand, if the car mechanic cares
| about cars and their craftsmanship they want to get
| everything to tip-top shape at high cost. Some other
| mechanics are trying to scam you and get the most amount of
| money for the least amount of work. And most people looking
| for car mechanics want to pay the least amount possible, and
| don't quite understand if a repair should be expensive or
| not. This creates a downward pressure on price at the expense
| of quality and penalizes the mechanics that care about
| quality.
| AtlasBarfed wrote:
| Luckily for mechanics, the shortage of actual blue collar
| Hands-On labor is so small, that good mechanics actually
| can charge more.
|
| The issue is that you have to be able to distinguish a good
| mechanic from a bad mechanic cuz they all get to charge a
| lot because of the shortage. Same thing for plumbing,
| electrical, HVAC, etc etc etc
|
| But I understand your point.
| Multicomp wrote:
| Here in Atlanta Georgia, we have a ToyoTechs business.
| They perform maintenance on only Toyota-family
| automobiles. They have 2 locations, one for large trucks,
| one for cars, hybrids, and SUV-looking cars. Both are
| always filled up with customers. Some of whom drive
| hundreds of miles out of state to bring their vehicles
| exclusively there, whether the beater is a customized
| off-roader or a simple econobox with sentimental value.
|
| Why? Because they are on a different incentive structure:
| non-comissioned payments for employees. They buy OEM
| parts, give a good warranty, charge fair prices, and they
| are always busy.
|
| If this computer fad goes away, I'm going to open my own
| Toyota-only auto shop, trying to emulate them. They have
| 30 years of lead time on my hypothetical business, but
| the point stands: when people discover that high quality
| in this market, they stick to it closely.
| worik wrote:
| People understand cars. Abstract data structures, not so
| much.
|
| There are laws about what goes into a car, strict
| regulation. Software, not so much.
|
| Until my boss can be prosecuted for selling untested bug
| ridden bad software that is what I am instructed to
| produce
| jimbokun wrote:
| With the introduction of insurance for covering the cost
| of a security breach, suddenly managers have an
| understanding of the value of at least the security
| aspect of software quality. As it impacts their premiums.
| worik wrote:
| I really hope so. But I do not have much faith in
| insurance companies. I have seen what they have done to
| worker safety, made it a minefield for workers, a box
| ticking exercise for bosses, and done very little for
| worker safety.
|
| What works for worker safety is regulation. I am afraid
| the same will be true for software.
| AtlasBarfed wrote:
| That's a particularly good strategy with Toyota, a
| company with both a good reputation and a huge market
| share.
|
| Currently trading at a price to earnings ratio of about
| seven, compared to 150-800 for Tesla (depending on how
| you judge their book cooking)
| naasking wrote:
| > What I realized is that lower costs, _and therefore lower
| quality,_
|
| This implication is the big question mark. It's often true
| but it's not at all clear that it's _necessarily_ true.
| Choosing better languages, frameworks, tools and so on can
| all help with lowering costs without necessarily lowering
| quality. I don 't think we're anywhere near the bottom of the
| cost barrel either.
|
| I think the problem is focusing on improving the quality of
| the end products directly when the quality of the end product
| for a given cost is downstream of the quality of our tools.
| We need much better tools.
|
| For instance, why are our languages still obsessed with
| manipulating pointers and references as a primary mode of
| operation, just so we can program yet another linked list?
| Why can't you declare something as a "Set with O(1) insert"
| and the language or its runtime chooses an implementation?
| Why isn't direct relational programming more common? I'm not
| talking programming in verbose SQL, but something more modern
| with type inference and proper composition, more like LINQ,
| eg. why can't I do: let usEmployees = from
| x in Employees where x.Country == "US"; func
| byFemale(Query<Employees> q) => from x in q where
| x.Sex == "Female"; let femaleUsEmployees =
| byFemale(usEmployees);
|
| These abstract over implementation details that we're
| constantly fiddling with in our end programs, often for
| little real benefit. Studies have repeatedly shown that
| humans can write less than 20 lines of _correct_ code per
| day, so each of those lines should be as expressive and
| powerful as possible to drive down costs without sacrificing
| quality.
| bflesch wrote:
| Your argument makes sense. I guess now it's your time to
| shine and to be the change you want to see in the world.
| naasking wrote:
| I wish I had the time... always "some day"...
| jimbokun wrote:
| Thus the answer to your question of why those languages
| don't exist.
| rjbwork wrote:
| I consider functional thinking and ability to use list
| comprehensions/LINQ/lodash/etc. to be fundamental skills in
| today's software world. The what, not the how!
| naasking wrote:
| Agreed, but it doesn't go far enough IMO. Why not add
| language/runtime support for _durable_ list
| comprehensions, and also _atomically updatable_ ones so
| they can be concurrently shared, etc. Bring the database
| into the language in a way that 's just as easily to use
| and query as any other value.
| rjbwork wrote:
| Well, you can do that with LINQ + EF and embedded
| databases like SQL Lite or similar.
| mike_hearn wrote:
| Hm, you could do that quite easily but there isn't much
| juice to be squeezed from runtime selected data structures.
| Set with O(1) insert: var set = new
| HashSet<Employee>();
|
| Done. Don't need any fancy support for that. Or if you want
| to load from a database, using the repository pattern and
| Kotlin this time instead of Java:
| @JdbcRepository(dialect = ANSI) interface EmployeeQueries :
| CrudRepository<Employee, String> { fun
| findByCountryAndGender(country: String, gender: String):
| List<Employee> } val femaleUSEmployees
| = employees.findByCountryAndGender("US", "Female")
|
| That would turn into an efficient SQL query that does a
| WHERE ... AND ... clause. But you can also compose queries
| in a type safe way client side using something like jOOQ or
| Criteria API.
| naasking wrote:
| > Hm, you could do that quite easily but there isn't much
| juice to be squeezed from runtime selected data
| structures. Set with O(1) insert:
|
| But now you've hard-coded this selection, why can't the
| performance characteristics also be easily parameterized
| and combined, eg. insert is O(1), delete is O(log(n)), or
| by defining indexes in SQL which can be changed at any
| time at runtime? Or maybe the performance characteristics
| can be inferred from the types of queries run on a
| collection elsewhere in the code.
|
| > That would turn into an efficient SQL query that does a
| WHERE ... AND ... clause.
|
| For a database you have to manually construct, with a
| schema you have to manually and poorly to an object model
| match, using a library or framework you have to
| painstakingly select from how many options?
|
| You're still stuck in this mentality that you have to
| assemble a set of distinct tools to get a viable
| development environment for most general purpose
| programming, which is not what I'm talking about. Imagine
| the relational model built-in to the language, where you
| could parametrically specify whether collections need
| certain efficient operations, whether collections need to
| be durable, or atomically updatable, etc.
|
| There's a whole space of possible languages that have
| relational or other data models built-in that would
| eliminate a lot of problems we have with standard
| programming.
| mike_hearn wrote:
| There are research papers that examine this question of
| whether runtime optimizing data structures is a win, and
| it's mostly not outside of some special cases like
| strings. Most collections are quite small. Really big
| collections tend to be either caches (which are often
| specialized anyway), or inside databases where you do
| have more flexibility.
|
| A language fully integrated with the relational model
| exists, that's PL/SQL and it's got features like classes
| and packages along with 'natural' SQL integration. You
| can do all the things you ask for: specify what
| operations on a collection need to be efficient
| (indexes), whether they're durable (temporary tables),
| atomically updatable (LOCK TABLE IN EXCLUSIVE MODE) and
| so on. It even has a visual GUI builder (APEX). And
| people do build whole apps in it.
|
| Obviously, this approach is not universal. There are
| downsides. One can imagine a next-gen attempt at such a
| language that combined the strengths of something like
| Java/.NET with the strengths of PL/SQL.
| naasking wrote:
| > There are research papers that examine this question of
| whether runtime optimizing data structures is a win
|
| If you mean JIT and similar tech, that's not really what
| I'm describing either. I'm talking about lifting the time
| and space complexity of data structures to parameters so
| you don't have to think about specific details.
|
| Again, think about how tables in a relational database
| work, where you can write queries against sets without
| regard for the underlying implementation, and you have
| external/higher level tools to tune a running program's
| data structures for better time or space behavior.
|
| > A language fully integrated with the relational model
| exists, that's PL/SQL
|
| Not a general purpose language suitable for most
| programming, and missing all of the expressive language
| features I described, like type/shape inference, higher
| order queries and query composition and so on. See my
| previous comments. The tool you mentioned leaves a lot to
| be desired.
| jimbokun wrote:
| Why aren't you building these languages?
| ndriscoll wrote:
| You can do this in Scala[0], and you'll get type inference
| and compile time type checking, informational messages
| (like the compiler prints an INFO message showing the SQL
| query that it generates), and optional schema checking
| against a database for the queries your app will run. e.g.
| case class Person(name: String, age: Int) inline
| def onlyJoes(p: Person) = p.name == "Joe" //
| run a SQL query run( query[Person].filter(p =>
| onlyJoes(p)) ) // Use the same function
| with a Scala list val people: List[Person] = ...
| val joes = people.filter(p => onlyJoes(p)) //
| Or, after defining some typeclasses/extension methods
| val joesFromDb = query[Person].onlyJoes.run val
| joesFromList = people.onlyJoes
|
| This integrates with a high-performance functional
| programming framework/library that has a bunch of other
| stuff like concurrent data structures, streams, an async
| runtime, and a webserver[1][2]. The tools already exist.
| People just need to use them.
|
| [0] https://github.com/zio/zio-protoquill?tab=readme-ov-
| file#sha...
|
| [1] https://github.com/zio
|
| [2] https://github.com/zio/zio-http
| regularfry wrote:
| There's an analogy with evolution. In that case, what
| survives might be the fittest, but it's not the fittest
| possible. It's the _least_ fit that can possibly win.
| Anything else represents an energy expenditure that something
| else can avoid, and thus outcompete.
| mtalantikite wrote:
| My wife has a perfume business. She makes really high quality
| extrait de parfums [1] with expensive materials and great
| formulations. But the market is flooded with eau de parfums
| -- which are far more diluted than a extrait -- using cheaper
| ingredients, selling for about the same price. We've had so
| many conversations about whether she should dilute everything
| like the other companies do, but you lose so much of the
| beauty of the fragrance when you do that. She really doesn't
| want to go the route of mediocrity, but that does seem to be
| what the market demands.
|
| [1] https://studiotanais.com/
| ayewo wrote:
| > But the market is flooded with eau de parfums -- which
| are far more diluted than a extrait -- using cheaper
| ingredients, selling for about the same price.
|
| Has she tried raising prices? To signal that her product is
| highly quality and thus more expensive than her
| competition?
| arolihas wrote:
| looks like they are trying native advertising first
| mtalantikite wrote:
| That's actually been new for her, maybe the past two or
| so months after 10 years in business, and it seems to be
| working better than any other type of advertising she's
| done in the past.
| mtalantikite wrote:
| She has, these prices are actually lower than they were
| before, as most customers don't seem to care about things
| like concentration. Likely it's just that most aren't
| that informed about the differences. They'll pay more
| because it's Chanel or because a European perfumer made
| it, not because the quality is higher.
| nothercastle wrote:
| The market can't tell high quality vs not it's all
| signaling. Wine has the same problem
| esafak wrote:
| Offer an eau de parfum line for price anchoring, and market
| segmentation. Win win.
| mtalantikite wrote:
| For sure. I suggested having an eau de parfum option, but
| it does make things smell totally different -- much
| weaker, doesn't last long on the body, and can get
| overpowered by the alcohol carrier. Plus as a small
| business it'd mean having a dozen new formulations, with
| the associated packaging changes, inventory, etc. which
| makes it harder as a totally bootstrapped business. It's
| definitely still something to think about though, as even
| fragrances like a Tom Ford or Le Labo selling for
| $300-400 are just eau de parfums.
| jimbokun wrote:
| She should double the price so customers wonder why hers
| costs so much more. Then have a sales pitch explaining the
| difference.
|
| Some customers WANT to pay a premium just so they know
| they're getting the best product.
| codethief wrote:
| > [1] https://studiotanais.com/
|
| First, honest impression: At least on my phone
| (Android/Chromium) the typography and style of the website
| don't quite match that "high quality & expensive
| ingredients" vibe the parfums are supposed to convey. The
| banners (3 at once on the very first screen, one of them
| animated!), italic text, varying font sizes, and janky
| video header would be rather off-putting to me. It lacks...
| elegance and refinedness.
| rpnx wrote:
| I actually disagree. I think that people will pay more for
| higher quality software, but only if they know the software
| is higher quality.
|
| It's great to say your software is higher quality, but the
| question I have is whether or not is is higher quality with
| the same or similar features, and second, whether the better
| quality is known to the customers.
|
| It's the same way that I will pay hundreds of dollars for
| Jetbrains tools each year even though ostensibly VS Code has
| most of the same features, but the quality of the
| implementation greatly differs.
|
| If a new company made their IDE better than jetbrains though,
| it'd be hard to get me to fork over money. Free trials and so
| on can help spread awareness.
| dsr_ wrote:
| The Lemon Market exists specifically when customers cannot
| tell, prior to receipt and usage, whether they are buying
| high quality or low quality.
| disgruntledphd2 wrote:
| Wow, that's actually a good argument for some kind of
| trial or freemium setup. Interesting.
| codethief wrote:
| That must be why WinRAR became so popular. :-)
| esafak wrote:
| That does not describe the current subscription-based
| software market, then, because we do try it, and we can
| always stop paying, transaction costs aside.
| dsr_ wrote:
| The transaction costs are generally significant.
| rstuart4133 wrote:
| There are two costs to software: what you pay for it, and
| the time needed to learn how to use it. That's a big
| different to the original Lemon paper. You don't need to
| invest time in learning how to use a car, so the only
| cost to replacing it is the upfront cost of a new car.
| Worse "Time needed to learn it" understates it, because
| the cost replacing lemon software is often far more than
| just training. For example: replacing your accounting
| system, where you need to keep the data it has for 7
| years as a tax record. Replacing a piece of software will
| typically cost many times the cost of the software
| itself.
|
| If you look around, notice people still use Microsoft yet
| ransomware almost universally attacks Windows
| installations. This is despite everyone knowing Windows
| is a security nightmare courtesy of the Sony hack 2014:
| https://en.wikipedia.org/wiki/2014_Sony_Pictures_hack
|
| Mind you, when I say "everyone", Microsoft's marketing is
| very good. A firm I worked lost $500k to a windows
| keyboard logger stealing banking credentials. They had
| virus scanners for firewalls installed of course, but
| they aren't a sure deference. As the technical lead for
| many years, I was asked about my opinion of what they
| could do. The answer is pretty simple: don't use Windows
| for banking. Buy an iPad of Android tablet, and do you
| safety critical stuff on there. The CEO didn't believe a
| tablet could be more secure than a several thousand
| dollar laptop when copy of Windows cost more than the
| tablet. Sigh.
|
| So the answer to why don't people move away from poor
| quality subscription software is by the time they've
| figure out it's crap, the cost of moving isn't just the
| subscription. It's much larger than that.
| wang_li wrote:
| > but only if they know the software is higher quality.
|
| I assume all software is shit in some fashion because every
| single software license includes a clause that has "no
| fitness for any particular purpose" clause. Meaning, if
| your word processor doesn't process words, you can't sue
| them.
|
| When we get consumer protection laws that require that
| software does what is says on the tin quality will start
| mattering.
| mieubrisse wrote:
| I had the exact same experience trying to build a startup.
| The thing that always puzzled me was Apple: they've grown
| into one of the most profitable companies in the world on the
| basis of high-quality stuff. How did they pull it off?
| dsr_ wrote:
| Not on Macintosh. On iPod, iPhone and iPad.
|
| All of those were marketed as just-barely-affordable
| consumer luxury goods. The physical design and the
| marketing were more important than the specs.
| ivm wrote:
| _" Market comes first, marketing second, aesthetic third,
| and functionality a distant fourth"_ -- Rob Walling in
| "Start Small, Stay Small"
|
| Apple's aesthetic is more important than the quality (which
| has been deteriorating lately)
| mike_hearn wrote:
| They focused heavily on the quality of things you can see,
| i.e. slick visuals, high build quality, even fancy
| cardboard boxes.
|
| Their software quality itself is about average for the tech
| industry. It's not bad, but not amazing either. It's
| sufficient for the task and better than their primary
| competitor (Windows). But, their UI quality is much higher,
| and that's what people can check quickly with their own
| eyes and fingers in a shop.
| alt227 wrote:
| This is one of the best descriptions I have seen of
| Apple, very well put
| esafak wrote:
| By being a luxury _consumer_ company. There is no luxury
| (quality) enterprise software. There is lock-in-extortion
| enterprise software.
| turol wrote:
| > There's probably another name for this
|
| Race to the bottom
| anigbrowl wrote:
| _There's probably another name for this_
|
| Capitalism? Marx's core belief was that capitalists would
| always lean towards paying the absolute lowest price they
| could for labor and raw materials that would allow them to
| stay in production. If there's more profit in manufacturing
| mediocrity at scale than quality at a smaller scale,
| mediocrity it is.
|
| Not all commerce is capitalistic. If a commercial venture is
| dedicated to quality, or maximizing value for its customers,
| or the wellbeing of its employees, then it's not solely
| driven by the goal of maximizing capital. This is easier for
| a private than a public company, in part because of a
| misplaced belief that maximizing shareholder return is the
| only legally valid business objective. I think it's the
| corporate equivalent of diabetes.
| didibus wrote:
| In the 50s and 60s, capitalism used to refer to stakeholder
| capitalism. It was dedicated to maximize value for
| stakeholders, such as customers, employees, society, etc.
|
| But that shifted later, with Milton Friedman, who pushed
| the idea of shareholder capitalism in the 70s. Where
| companies switched to thinking the only goal is to maximize
| shareholder value.
|
| In his theory, government would provide regulation and
| policies to address stakeholder's needs, and companies
| therefore needed focus on shareholders.
|
| In practice, lobbying, propaganda and corruption made it so
| governments dropped the ball and also sided to maximize
| shareholder value, along with companies.
| nothercastle wrote:
| But do you think you could have started with a bug laden
| mess? Or is it just the natural progression down the quality
| and price curve that comes with scale
| esafak wrote:
| It depends on who is paying versus using the product. If the
| buyer is the user, they tend value quality more so than
| otherwise.
|
| Do you drive the cheapest car, eat the cheapest food, wear
| the cheapest clothes, etc.?
| abetusk wrote:
| This is a really succinct analysis, thanks.
|
| I'm thinking out loud but it seems like there's some other
| factors at play. There's a lower threshold of quality that
| needs to happen (the thing needs to work) so there's at least
| two big factors, functionality and cost. In the extreme, all
| other things being equal, if two products were presented at
| the exact same cost but one was of superior quality, the
| expectation is that the better quality item would win.
|
| There's always the "good, fast, cheap" triangle but with
| Moore's law (or Wright's law), cheap things get cheaper,
| things iterate faster and good things get better. Maybe
| there's an argument that when something provides an order of
| magnitude quality difference at nominal price difference,
| that's when disruption happens?
|
| So, if the environment remains stable, then mediocrity wins
| as the price of superior quality can't justify the added
| expense. If the environment is growing (exponentially) then,
| at any given snapshot, mediocrity might win but will
| eventually be usurped by quality when the price to produce it
| drops below a critical threshold.
| brundolf wrote:
| Exactly. People on HN get angry and confused about low
| software quality, compute wastefulness, etc, but what's
| happening is not a moral crisis: the market has simply chosen
| the trade-off it wants, and industry has adapted to it
|
| If you want to be rewarded for working on quality, you have
| to find a niche where quality has high economic value. If you
| want to put effort into quality regardless, that's a very
| noble thing and many of us take pleasure in doing so, but we
| shouldn't act surprised when we aren't economically rewarded
| for it
| qaq wrote:
| I see another dynamic "customer value" features get
| prioritized and eventually product reaches a point of
| crushing tech debt. It results in "customer value" features
| delivery velocity grinding to a halt. Obviously subject to
| other forces but it is not infrequent for someone to come in
| and disrupt the incumbents at this point.
| bruce511 wrote:
| You're on the right track, but missing an important aspect.
|
| In most cases the company making the inferior product didn't
| spend less. But they did spend differently. As in, they spent
| a lot on marketing.
|
| You were focused on quality, and hoped for viral word of
| mouth marketing. Your competitors spent the same as you, but
| half their budget went to marketing. Since people buy what
| they know, they won.
|
| Back in the day MS made Windows 95. IBM made OS/2. MS spend a
| billion $ on marketing Windows 95. That's a billion back when
| a billion was a lot. Just for the launch.
|
| Techies think that Quality leads to sales. If does not.
| Marketing leads to sales. There literally is no secret to
| business success other than internalizing that fact.
| nostrademons wrote:
| Quality _can_ lead to sales - this was the premise behind
| the original Google (they never spent a dime on advertising
| their own product until the Parisian Love commercial [1]
| came out in 2009, a decade after founding), and a few other
| tech-heavy startups like Netscape or Stripe. Microsoft
| certainly didn 't spend a billion $ marketing Altair Basic.
|
| The key point to understand is _the only effort that
| matters is that which makes the sale_. Business is a series
| of _transactions_ , and each individual transaction is
| binary: it either happens or it doesn't. Sometimes, you can
| make the sale by having a product which is so much better
| than alternatives that it's a complete no-brainer to use
| it, and then makes people so excited that they tell all
| their friends. Sometimes you make the sale by reaching out
| seven times to a prospect that's initially cold but warms
| up in the face of your persistence. Sometimes, you make the
| sale by associating your product with other experiences
| that your customers want to have, like showing a pretty
| woman drinking your beer on a beach. Sometimes, you make
| the sale by offering your product 80% off to people who
| will switch from competitors and then jacking up the price
| once they've become dependent on it.
|
| You should know which category your product fits into, and
| how and why customers will buy it, because that's the only
| way you can make smart decisions about how to allocate your
| resources. Investing in engineering quality is pointless if
| there is no _headroom_ to deliver experiences that will
| make a customer say "Wow, I need to have that." But if you
| are sitting on one of those gold mines, capitalizing on it
| effectively is orders of magnitude more efficient than
| trying to market a product that doesn't really work.
|
| [1] https://www.youtube.com/watch?v=nnsSUqgkDwU
| cheema33 wrote:
| > Investing in engineering quality is pointless if there
| is no headroom to deliver experiences that will make a
| customer say "Wow, I need to have that."
|
| This. Per your example, this is exactly what it was like
| when most of us first used Google after having used
| AltaVista for a few years. Or Google Maps after having
| used MapQuest for a few years. Google invested their
| resources correctly in building a product that was head
| and shoulders above the competition.
|
| And yes, if you are planning to sell beer, you are going
| to need the help of scantily clad women on the beach much
| more than anything else.
| jcadam wrote:
| It's not just software -- My wife owns a restaurant.
| Operating a restaurant you quickly learn the sad fact that
| quality is just not that important to your success.
|
| We're still trying to figure out the marketing. I'm
| convinced the high failure rate of restaurants is due
| largely to founders who know how to make good food and
| think their culinary skills plus word-of-mouth will get
| them sales.
| mmooss wrote:
| > you quickly learn the sad fact that quality is just not
| that important to your success.
|
| Doesn't that depend on your audience? Also, what do you
| mean by quality?
|
| Where I live, the best food can lead to big success. New
| tiny restaurants open, they have great food, eventually
| they open their big successor (or their second
| restaurant, third restaurant, etc.).
| nine_k wrote:
| My wife ran a restaurant that was relatively successful
| due to the quality of its food and service. She was able
| to establish it as an upper-tier experience, by both some
| word of mouth, but also by catering to right events,
| taking part in shows, and otherwise influencing the
| influencers of the town, without any massive ad
| campaigns. As a result, there were many praises in the
| restaurant's visitor book, left by people from many
| countries visiting the city.
|
| It was not a huge commercial success though, even though
| it wasn't a failure either; it generated just enough
| money to stay afloat.
| sdeframond wrote:
| "Quality is free"[1], luxury isn't.
|
| Also, one should not confuse the quality of the _final
| product_ and the quality of the _process_.
|
| [1] https://archive.org/details/qualityisfree00cros
| hinkley wrote:
| If you're trying to sell a product to the masses, you either
| need to make it cheap or a fad.
|
| You cannot make a cheap product with high margins and get
| away with it. Motorola tried with the RAZR. They had about
| five or six good quarters from it and then within three years
| of initial launch were hemorrhaging over a billion dollars a
| year.
|
| You have to make premium products if you want high margins.
| And premium means you're going for 10% market share, not
| dominant market share. And if you guess wrong and a recession
| happens, you might be fucked.
| caseyy wrote:
| > I don't think this leads to market collapse
|
| You must have read that the Market for Lemons is a type of
| market failure or collapse. Market failure (in
| macroeconomics) does not yet mean collapse. It describes a
| failure to allocate resources in the market such that the
| overall welfare of the market participants decreases. With
| this decrease may come a reduction in trade volume. When the
| trade volume decreases significantly, we call it a market
| collapse. Usually, some segment of the market that existed
| ceases to exist (example in a moment).
|
| There is a demand for inferior goods and services, and a
| demand for superior goods. The demand for superior goods
| generally increases as the buyer becomes wealthier, and the
| demand for inferior goods generally increases as the buyer
| becomes less wealthy.
|
| In this case, wealthier buyers cannot buy the superior
| relevant software previously available, even if they create
| demand for it. Therefore, we would say a market fault has
| developed as the market could not organize resources to meet
| this demand. Then, the volume of high-quality software sales
| drops dramatically. That market segment collapses, so you are
| describing a market collapse.
|
| > There's probably another name for this
|
| You might be thinking about "regression to normal profits" or
| a "race to the bottom." The Market for Lemons is an adjacent
| scenario to both, where a collapse develops due to asymmetric
| information in the seller's favor. One note about macroecon
| -- there's never just one market force or phenomenon
| affecting any real situation. It's always a mix of some
| established and obscure theories.
| dahart wrote:
| The Wikipedia page for Market for Lemons more or less
| summarizes it as a condition of defective products caused
| by information asymmetry, which can lead to adverse
| selection, which can lead to market collapse.
|
| https://en.m.wikipedia.org/wiki/The_Market_for_Lemons
|
| The Market for Lemons idea seems like it has merit in
| general but is too strong and too binary to apply broadly,
| that's where I was headed with the suggestion for another
| name. It's not that people want low quality. Nobody
| actually wants defective products. People are just price
| sensitive, and often don't know what high quality is or how
| to find it (or how to price it), so obviously market forces
| will find a balance somewhere. And that balance is
| extremely likely to be lower on the quality scale than what
| people who care about high quality prefer. This is why I
| think you're right about the software market tolerating low
| quality; it's because market forces push everything toward
| low quality.
| caseyy wrote:
| By the way, inferior goods are not necessarily poor-
| quality products, though there is a meaningful
| correlation, and I based my original comment on it.
| Still, a OnePlus Android phone is considered an inferior
| good; an iPhone (or a Samsung Galaxy Android phone) is
| considered superior. Both are of excellent quality and
| better than one another in key areas. It's more about how
| wealth, brand perception, and overall market sentiment
| affect their demand. OnePlus phones will be in more
| demand during recessions, and demand for iPhones and
| Samsung Galaxys will decrease.
|
| No objection to your use/non-use of the Market for Lemons
| label. Just wanted to clarify a possible misconception.
|
| P.S. Apologies for editing this comment late. I thought
| the original version wasn't very concise.
| nine_k wrote:
| > _A OnePlus Android phone is considered an inferior
| good; an iPhone (or a Samsung Galaxy Android phone) is
| considered superior. Both are of excellent quality_
|
| No, the inferior good is a device with 2GB RAM, a poor
| quality battery, easy to crack screen, a poor camera.
| poor RF design and thus less stable connectivity, and
| poor mechanical assembly. But it has its market segment
| because it costs like 15% of the cost of an iPhone. Some
| people just cannot afford the expensive high-quality
| goods at all. Some people, slightly better-off, sometimes
| don't see the point to "overpay" because they are used to
| the bottom-tier functionality and can't imagine how much
| higher quality may be materially beneficial in
| comparison.
|
| In other words, many people have low expectations, and
| low resources to match. It is a large market to address
| once a product-market fit was demonstrated in the high-
| end segment.
| caseyy wrote:
| I mean "inferior good" as a macroeconomics term:
| https://www.investopedia.com/terms/i/inferior-good.asp.
| And the point of my comment is to show that product
| quality alone doesn't determine whether it's an inferior
| good.
| nine_k wrote:
| I see your point. But the choice between an iPhone and a
| Galaxy is mostly the ecosystem. And the choice between
| OnePlus and a Galaxy S is mostly about the quality of the
| camera. And the choice between a Galaxy and a Xioami is
| mostly about trusting Chinese brand (not for its
| technical merits; they make excellent devices). The real
| quality / price differentiation, to my mind, lies farther
| down the scale.
|
| That is, the choice between a $10 organic grass-fed milk
| and $8 organic grass-fed milk is literally a matter of
| taste, not the $2 price difference. The real
| price/quality choice is between the $10 fancy organic
| milk, $4.99 okay milk, and $2.49 bottom-shelf milk. They
| attract materially different customer segments.
| talldatethrow wrote:
| I'm a layman, but in my opinion building quality software
| can't really be a differentiator because anyone can build
| quality software given enough time and resources. You could
| take two car mechanics and with enough training, time,
| assistance from professional dev consultants, testing,
| rework, so and so forth, make a quality piece of software.
| But you'd have spent $6 million to make a quality alarm clock
| app.
|
| A differentiator would be having the ability to have a higher
| than average quality per cost. Then maybe you're onto
| something.
| ikiris wrote:
| I'm proud of you, it often takes people multiple failures
| before they learn to accept their worldview that regulations
| aren't necessary and the tragedy of Commons is a myth are
| wrong.
| mmooss wrote:
| Maybe you could compete by developing new and better
| products? Ford isn't selling the same car with lower and
| lower costs every year.
|
| It's really hard to reconcile your comment with Silicon
| Valley, which was built by often expensive innovation, not by
| cutting costs. Were Apple, Meta, Alphabet, Microsoft
| successful because they cut costs? The AI companies?
| jimbokun wrote:
| Microsoft yes, the PC market made it very hard for Apple to
| compete on price.
|
| Meta and Alphabet had zero cost products (to consumers)
| that they leveraged to become near monopolies.
|
| Aren't all the AI companies believed to be providing their
| products below cost for now to grab market share?
| jjaksic wrote:
| Yes, I was in this place too when I had a consulting company.
| We bid on projects with quotes for high quality work and
| guaranteed delivery within the agreed timeframe. More often
| than not we got rejected in favor of some students who
| submitted a quote for 4x less. I sometimes asked those
| clients how the project went, and they'd say, well, those
| guys missed the deadline and asked for more money several
| times
| potato3732842 wrote:
| >There's probably another name for this, it's not quite the
| Market for Lemons idea. I don't think this leads to market
| collapse, I think it just leads to stable mediocrity
| everywhere, and that's what we have.
|
| It's the same concept as the age old "only an engineer can
| build a bridge that just barely doesn't fall down" circler
| jerk but for a more diverse set of goods than just bridges.
| aucisson_masque wrote:
| You're laying it out like it's universal, in my experience
| there are products where people will seek for the cheapest
| good enough but there are also other product that people know
| they want quality and are willing to pay more.
|
| Take cars for instance, if all people wanted the cheapest one
| then Mercedes or even Volkswagen would be out of business.
|
| Same for professional tools and products, you save more by
| buying quality product.
|
| And then, even in computer and technology. Apple iPhone
| aren't cheap at all, MacBook come with soldered ram and
| storage, high price, yet a big part of people are willing to
| buy that instead of the usual windows bloated spyware laptop
| that run well enough and is cheap.
| p1necone wrote:
| > the cheapest one then Mercedes or even Volkswagen would
| be out of business
|
| I would argue this is a bad example - most luxury cars
| aren't really meaningfully "better", they just have status
| symbol value. A mid range Honda civic or Toyota corolla is
| not "worse" than a Mercedes for most objective
| measurements.
| xg15 wrote:
| This is also the exact reason why all the bright-eyed pieces
| that some technology would increase worker's productivity and
| therefore allow more leisure time for the worker (20 hour
| workweek etc) are either hopelessly naive or pure propaganda.
|
| Increased productivity means that the company has a new
| option to either reduce costs or increase output at no
| additional cost, one of which it _has_ to do to stay ahead in
| the rat-race of competitors. Investing the added productivity
| into employee leisure time would be in the best case foolish
| and in the worst case suicidal.
| mamcx wrote:
| > the market buys bug-filled, inefficient software about as
| well as it buys pristine software
|
| In fact, the realization is that the market buy _support_.
|
| And that includes google and other companies that lack much of
| _human_ support.
|
| This is the key.
|
| _Support_ is manifested in many ways:
|
| * There is information about it (docs, videos, blogs, ...)
|
| * There is people that help me ('look ma, this is how you use
| google')
|
| * There is support for _the thing I use_ ( 'OS, Browser,
| Formats, ...')
|
| * And for my way of working ('Excel let me do any app
| there...')
|
| * And finally, actual people (that is the #1 thing that keep
| alive even the worst ERP on earth). This also includes
| marketing, sales people, etc. This are signal of having
| _support_ even if is not exactly the best. If I go to
| enterprise and only have engineers that will be a _bad_ signal,
| because well, developers then to be terrible at other stuff and
| the other stuff is support that matters.
|
| If you have a good product, but there is not _support_ , is
| dead.
|
| And if you wanna fight a worse product, is _smart_ to reduce
| the need to support for ( 'bugs, performance issues, platforms,
| ...') for YOUR TEAM because you wanna reduce YOUR COSTS but you
| NEED to add support in other dimensions!
|
| The easiest for a small team, is just add humans (that is the
| MOST scarce source of support). After that, it need to be
| creative.
|
| (also, this means you need to communicate your advantages well,
| because there is people that value some kind of support more
| than others 'have the code vs propietary' is a good example. A
| lot prefer the proprietary with support more than the code, I
| mean)
| lifeisstillgood wrote:
| This really focuses on the single metric that can be used try
| ought lifetime of a product ... a really good point that
| keeps unfolding.
|
| Starting an OSS product - write good docs. Got a few
| enterprise people interested - "customer success person" is
| most important marketing you can do ...
| cogman10 wrote:
| > But IC1-3s write 99% of software, and the 1 QA guy in 99% of
| tech companies
|
| I'd take this one step further, 99% of the software written
| isn't being done with performance in mind. Even here in HN,
| you'll find people that advocate for poor performance because
| even considering performance has become a faux pas.
|
| That means you L4/5 and beyond engineers are fairly unlikely to
| have any sort of sense when it comes to performance. Businesses
| do not prioritize efficient software until their current
| hardware is incapable of running their current software (and
| even then, they'll prefer to buy more hardware is possible.)
| knowitnone wrote:
| You must be referring only to security bugs because you would
| quickly toss Excel or Photoshop if it were filled with
| performance and other bugs. Security bugs are a different story
| because users don't feel the consequences of the problem until
| they get hacked and even then, they don't know how they got
| hacked. There are no incentives for developers to actually
| care.
|
| Developers do care about performance up to a point. If the
| software looks to be running fine on a majority of computers
| why continue to spend resources to optimize further? Principle
| of diminishing returns.
| wizzwizz4 wrote:
| I wouldn't be so sure. People will _rename genes_ to work
| around Excel bugs.
| JKCalhoun wrote:
| That'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?
| abdullahkhalids wrote:
| The used car market is market for lemons because it is
| difficult to distinguish between a car that has been well
| maintained and a car close to breaking down. However, the new
| car market is decidedly not a market for lemons because every
| car sold is tested by the state, and reviewed by magazines and
| such. You know exactly what you are buying.
|
| Software is always sold new. Software can increase in quality
| the same way cars have generally increased in quality over the
| decades. Creating standards that software must meet before it
| can be sold. Recalling software that has serious bugs in it.
| Punishing companies that knowingly sell shoddy software. This
| is not some deep insight. This is how every other industry
| operates.
| inoop wrote:
| A hallmark of well-designed and well-written software is that
| it is easy to replace, where bug-ridden spaghetti-bowl
| monoliths stick around forever because nobody wants to touch
| them.
|
| Just through pure Darwinism, bad software dominates the
| population :)
| worldsayshi wrote:
| > 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 user cannot but a good AI might itself allow the average
| user to bridge the information asymmetry. So as long as we have
| a way to select a good AI assistant for ourselves...
| volemo wrote:
| > The user cannot but a good AI might itself allow the
| average user to bridge the information asymmetry. So as long
| as we have a way to select a good AI assistant for
| ourselves...
|
| In the end it all hinges on the users ability to assess the
| quality of the product. Otherwise, the user cannot judge
| whether an assistant recommends quality products and the
| assistant has an incentive to suggest poorly (e.g. sellout to
| product producers).
| worldsayshi wrote:
| > In the end it all hinges on the users ability to assess
| the quality of the product
|
| The AI can use tools to extract various key metrics from
| the product that is analysed. Even if we limit such metrics
| down to those that can be verified in various "dumb" ways
| we should be able to verify products much further than
| today.
| godelski wrote:
| > And one of them is the cheapest software you could make.
|
| I actually disagree a bit. Sloppy software is cheap when you're
| a startup but it's quite expensive when you're big. You have
| all the costs of transmission and instances you need to account
| for. If airlines are going to cut an olive from the salad why
| wouldn't we pay programmers to optimize? This stuff compounds
| too.
|
| We're currently operate in a world where new features are
| pushed that don't interest consumers. While they can't tell the
| difference between slop and not at purchase they sure can
| between updates. People constantly complain about stuff getting
| slower. But they also do get excited when things get faster.
|
| Imo it's in part because we turned engineers into MBAs.
| Wherever I ask why can't we solve a problem some engineer
| always responds "well it's not that valuable". The bug fix is
| valuable to the user but they always clarify they mean money.
| Let's be honest, all those values are made up. It's not the job
| of the engineer to figure out how much profit a big fix will
| result in, it's their job to fix bugs.
|
| Famously Coke doesn't advertise to make you aware of Coke. They
| advertise to associate good feelings. Similarly, car companies
| advertise to get their cars associated with class. Which is why
| sometimes they will advertise to people who have no chance of
| buying the car. What I'm saying is that brand matters. The
| problem right now is that all major brands have decided brand
| doesn't matter or brand decisions are always set in stone.
| Maybe they're right, how often do people switch? But maybe
| they're wrong, switching seems to just have the same features
| but a new UI that you got to learn from scratch (yes, even
| Apple devices aren't intuitive)
| nostrademons wrote:
| That's sorta the premise of the tweet, though.
|
| _Right now_ , the market buys bug-filled, inefficient software
| because you can always count on being able to buy hardware that
| is good enough to run it. The software expands to fill the
| processing specs of the machine it is running on - "What Andy
| giveth, Bill taketh away" [1]. So there is no economic
| incentive to produce leaner, higher-quality software that does
| only the core functionality and does it well.
|
| But imagine a world where you suddenly cannot get top-of-the-
| line chips anymore. Maybe China invaded Taiwan and blockaded
| the whole island, or WW3 broke out and all the modern fabs were
| bombed, or the POTUS instituted 500% tariffs on all
| electronics. Regardless of cause, you're now reduced to
| salvaging microchips from key fobs and toaster ovens and
| pregnancy tests [2] to fulfill your computing needs. In this
| world, there is quite a lot of economic value to being able to
| write tight, resource-constrained software, because _the
| bloated stuff simply won 't run anymore_.
|
| Carmack is saying that in this scenario, we would be fine
| (after an initial period of adjustment), because there is
| enough headroom in optimizing our existing software that we can
| make things work on orders-of-magnitude less powerful chips.
|
| [1] https://en.wikipedia.org/wiki/Andy_and_Bill%27s_law
|
| [2] https://www.popularmechanics.com/science/a33957256/this-
| prog...
| eth0up wrote:
| Yeah, 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 wrote:
| The 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 wrote:
| The 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/International_Roadmap_for_Devi...
| ubermonkey wrote:
| The 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 wrote:
| Well 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 wrote:
| 100% 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 wrote:
| Software 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 wrote:
| Minimalism 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 wrote:
| Is 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 wrote:
| We 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.
| michaelgburton wrote:
| One only needs to look at Horizon: Zero Dawn to note that the
| truth of this is deeply uneven across the games industry.
| World streaming architectures are incredible technical
| achievements. So are moddable engines. There are plenty of
| technical limits being pushed by devs, it's just not done at
| all levels.
| caseyy wrote:
| You are right, but you picked a game by a studio known for
| its technical expertise, with plenty of points to prove
| about quality game development. I'd like them to be the
| future of this industry.
|
| But right now, 8-9/10 game developers and publishers are
| deeply concerned with cash and rather unconcerned by
| technical excellence or games as a form of interactive art
| (where, once again, Guerrilla and many other Sony studios
| are).
| bluGill wrote:
| > Or could we make a phone that runs 100x slower but is much
| cheaper? I
|
| Probably not - a large part of the cost is equipment and R&D.
| It doesn't cost much more to build the most complex CPU vs a
| 6502 - there is only a tiny bit more silicon and chemicals.
| What is costly is the R&D behind the chip, and the R&D behind
| the machines that make the chips. If intel fired all their R&D
| engineers who were not focused on reducing manufacturing costs
| they could greatly reduce the price of their CPUs - until AMD
| released a next generation that is much better. (this is more
| or less what Henry Ford did with the model-T - he reduced costs
| every year until his competition adding features were enough
| better that he couldn't sell his cars.
| knowitnone wrote:
| I absolutely agree with what you are saying.
|
| Yes, it's possible and very simple. Lower the frequency
| (dramatically lowers power usage), fewer cores, few threads,
| etc. The problem is, we don't know what we need. What if a
| great new apps comes out (think LLM); you'll be complaining
| your phone is too slow to run it.
| noobermin wrote:
| I'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 wrote:
| This 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.
| seydor wrote:
| I wonder if anyone has calculated the additional planet heating
| generated by crappy e.g. JS apps or useless animations
| jasonthorsness wrote:
| We are squandering bandwidth similarly and that hasn't increased
| as much as processing power.
| x1unix wrote:
| based
| vasco wrote:
| He 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 wrote:
| I 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."
| protoster wrote:
| My phone isn't getting slower, but rather the OS running on it
| becomes less efficient with every update. Shameful.
| alkonaut wrote:
| "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 wrote:
| Perfectly 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 wrote:
| Almost 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.
| sabellito wrote:
| Every software you use has more bloat than useful features?
| Probably not. And what's useless to one user might be useful
| to another.
| bee_rider wrote:
| Agree WRT the tradeoff between features and elegance.
|
| Although, I do wonder if there's an additional tradeoff here.
| Existing users, can apparently do what they need to do with the
| software, because they are already doing it. Adding a new
| feature might... allow them to get rid of some other software,
| or do something new (but, that something new must not be so
| earth shattering, because they didn't seek out other software
| to do it, and they were getting by without it). Therefore, I
| speculate that existing users, if they really were
| introspective, would ask for those performance improvements
| first. And maybe a couple little enhancements.
|
| _Potential new users_ on the other hand, either haven't heard
| of your software yet, or they need it to do something else
| before they find it useful. They are the ones that reasonably
| should be looking for new features.
|
| So, in "features vs performance" decision is also a signal
| about where the developers' priorities lay: adding new users or
| keeping old ones happy. So, it is basically unsurprising that:
|
| * techies tend to prefer the latter--we've played this game
| before, and know we want to be the priority for the bulk of the
| time using the thing, not just while we're being acquired.
|
| * buggy slow featureful software dominates the field--this is
| produced by companies that are prioritizing growth first.
|
| * history is littered with beautiful, elegant software that
| users miss dearly, but which didn't catch on broadly enough to
| sustain the company.
|
| However, the tradeoff is real in both directions; most people
| spend most of their time as users instead of potential users. I
| think this is probably a big force behind the general
| perception that software and computers are incredibly shit
| nowadays.
| light_hue_1 wrote:
| No way.
|
| You've got it totally backwards. Companies push features onto
| users who do not want them in order to make sales through
| forced upgrades because the old version is discontinued.
|
| If people could, no one would ever upgrade anything anymore.
| Look at how hard MS has to work to force anyone to upgrade. I
| have never heard of anyone who wanted a new version of Windows,
| Office, Slack, Zoom, etc.
|
| This is also why everything (like Photoshop) is being forced
| into the cloud. The vast majority of people don't want the new
| features that are being offered. Including buyers at
| businesses. So the answer to keep revenue up is to force people
| to buy regardless of what features are being offered or not.
| alkonaut wrote:
| > You've got it totally backwards. Companies push features
| onto users who do not want them in order to make sales
| through forced upgrades because the old version is
| discontinued.
|
| I think this is more a consumer perspective than a B2B one.
| I'm thinking about the business case. I.e. businesses
| purchase software (or has bespoke software developed). Then
| they pay for fixes/features/improvements. There is often a
| direct communication between the buyer and the developer
| (whether it's off-the shelf, inhouse or made to spec). I'm in
| this business and the dialog is very short "great work adding
| feature A. We want feature B too now. And oh the users say
| the software is also a bit slow can you make it go faster?
| Me: do you want feature B or faster first? Them (always) oh
| feature B. That saves us man-weeks every month". Then that
| goes on for feature C, D, E, ...Z.
|
| In this case, I don't know how frustrated the users are,
| because the customer is not the user - it's the users'
| managers.
|
| In the consumer space, the user is usually the buyer. That's
| one huge difference. You can choose the software that
| frustrates you the least, perhaps the leanest one, and
| instead have to do a few manual steps (e.g. choose vscode
| over vs, which means less bloated software but also many
| fewer features).
| QuadrupleA wrote:
| This 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 wrote:
| I 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
| Scene_Cast2 wrote:
| Where lack of performance costs money, optimization is quite
| invested in. See PyTorch (Inductor CUDA graphs), Triton,
| FlashAttention, Jax, etc.
| ManlyBread wrote:
| I 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 wrote:
| It 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).
| xg15 wrote:
| Meanwhile on every programmer's 101 forum: "Space is cheap!
| Premature optimization is the root of all evil! Dev time >
| runtime!"
| abanana wrote:
| Exactly. 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 wrote:
| My professor back in the day told me that "software is eating
| hardware". No matter how hardware gets advanced, software will
| utilize that advancement.
| shadowgovt wrote:
| Really 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
| jmward01 wrote:
| The 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 wrote:
| You'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 wrote:
| Z+6 months: Start porting everything to Collapse OS
|
| https://collapseos.org/
| knowitnone wrote:
| I 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.
| Devasta wrote:
| Imagine 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 wrote:
| "If this country built bridges they way it builds [information]
| systems, we'd be a nation run by ferryboats." --Tim Bryce
| cogman10 wrote:
| I'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 wrote:
| > 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 wrote:
| A 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 wrote:
| Let 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/...
|
| [2] https://benchmarksgame-
| team.pages.debian.net/benchmarksgame/...
|
| [3] https://benchmarksgame-
| team.pages.debian.net/benchmarksgame/...
|
| [4] https://benchmarksgame-
| team.pages.debian.net/benchmarksgame/...
| markus_zhang wrote:
| I 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 wrote:
| HN: 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 wrote:
| Google the goomba fallacy
| redleader55 wrote:
| Carmack 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 wrote:
| Sadly 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 wrote:
| One 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 wrote:
| > 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.
| gmerc wrote:
| Perfect 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 wrote:
| 1. 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 wrote:
| So 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".
| xondono wrote:
| Except 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.
| bjourne wrote:
| I think the parent's point is that if Google with millions of
| servers can't make performance optimization worthwhile, then
| it is very unlikely that a smaller company can. If salaries
| dominate over compute costs, then minimizing the latter at
| the expense of the former is counterproductive.
|
| > 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.
|
| That's debatable. Performance optimization almost always lead
| to complexity increase. Doubled performance can easily cause
| quadrupled complexity. Then one has to consider whether the
| maintenance burden is worth the extra performance.
| maccard wrote:
| > If salaries dominate over compute costs, then minimizing
| the latter at the expense of the former is
| counterproductive.
|
| And with client side software, compute costs approach 0 (as
| the company isn't paying for it).
| mike_hearn wrote:
| I worked there too and you're talking about performance in
| terms of optimal usage of CPU on a per-project basis.
|
| Google DID put a ton of effort into two other aspects of
| performance: latency, and overall machine utilization. Both of
| these were top-down directives that absorbed a lot of time and
| attention from thousands of engineers. The salary costs were
| huge. But, if you're machine constrained you really don't want
| a lot of cores idling for no reason even if they're
| individually cheap (because the opportunity cost of waiting on
| new DC builds is high). And if your usage is very sensitive to
| latency then it makes sense to shave milliseconds off because
| of business metrics, not hardware $ savings.
| cletus wrote:
| The key part here is "machine utilization" and absolutely
| there was a ton of effort put into this. I think before my
| time servers were allocated to projects but even early on in
| my time at Google Borg had already adopted shared machine
| usage and therew was a whole system of resource quota
| implemented via cgroups.
|
| Likewise there have been many optimization projects and they
| used to call these out at TGIF. No idea if they still do. One
| I remember was reducing the health checks via UDP for Stubby
| and given that every single Google product extensively uses
| Stubby then even a small (5%? I forget) reduction in UDP
| traffic amounted to 50,000+ cores, which is (and was)
| absolutely worth doing.
|
| I wouldn't even put latency in the same category as
| "performance optimization" because often you decrease latency
| by increasing resource usage. For example, you may send
| duplicate RPCs and wait for the fastest to reply. That could
| be double or tripling effort.
| arp242 wrote:
| > I don't remember the exact number of CPU cores amounted to a
| single SWE but IIRC it was in the thousands.
|
| I think this probably holds true for outfits like Google
| because 1) on their scale "a core" is much cheaper than
| average, and 2) their salaries are much higher than average.
| But for your average business, even large businesses? A lot
| less so.
|
| I think this is a classic "Facebook/Google/Netflix/etc. are in
| a class of their own and almost none of their practices will
| work for you"-type thing.
| morepork wrote:
| Maybe not to the same extent, but an AWS EC2 m5.large VM with
| 2 cores and 8 GB RAM costs ~$500/year (1 year reserved). Even
| if your engineers are being paid $50k/year, that's the same
| as 100 VMs or 200 cores + 800 GB RAM.
| karmakaze wrote:
| Google doesn't come up with better compression and binary
| serialization formats just for fun--it improves their bottom
| line.
| pmontra wrote:
| I 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 wrote:
| Works without Javascript:
|
| https://nitter.poast.org/ID_AA_Carmack/status/19221007713925...
| narag wrote:
| How much of the extra power has gone to graphics?
|
| Most of it?
| generalizations wrote:
| The world runs on the maximization of ( - entropy / $) and that's
| definitely not the same thing as minimizing compute power or bug
| count.
| vishalontheline wrote:
| When it's free, it doesn't need to be performant unless the free
| competition is performant.
| westurner wrote:
| Code bloat: https://en.wikipedia.org/wiki/Code_bloat
|
| 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...
| jrowen wrote:
| This 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 wrote:
| Wirth's Law:
|
| >software is getting slower more rapidly than hardware is
| becoming faster.
|
| https://en.wikipedia.org/wiki/Wirth%27s_law
| Earw0rm wrote:
| Optimise 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 wrote:
| As 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 wrote:
| Well, 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 wrote:
| The 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.
| floathub wrote:
| > npx create-expo-app@latest --template blank HelloWorldExpoReact
| > du -h HelloWorldExpoReact/
|
| 258M! A quarter of a gigabyte for a HelloWorld example. Sheesh.
| actuallyalys wrote:
| Carmack 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.
___________________________________________________________________
(page generated 2025-05-13 23:00 UTC)