Hacker News new | past | comments | ask | show | jobs | submit login
Why We Can't Have Nice Software (andrewkelley.me)
77 points by _DMN_ on Feb 5, 2024 | hide | past | favorite | 26 comments



The blockchain and LLMs parts in particular fall flat in this article. Blockchains are attractive because they are novel and can be easily monetized (usually by taking money from invest... well... suckers). Their wastefulness has little to do with anything. And LLMs are... just useful and promising. I'm personally deeply reserved about near term possibilities of LLMs, but it doesn't stop me from paying $20/mo for ChatGPT and using it as a convenient search engine for programming and other things.

And generally this doom-saying by people like Jonathan Blow doesn't reasonate with me at all. Sure there is a lot of waste. But also software is better then ever was. 3d graphics are better, programming langauges, Unicode support, software development process, hardware is faster, all the clunky C tools are being replaced with modern equivalents in Rust/Go with way better usability, cryptography and security are better, desktop environemnts are better, file systems are better. I could go on.

In my mind the only things that are getting worse are the commercial stuff: web sucks and stole the thunder from native apps and Windows/MacOS are degrading.


> But also software is better then ever was

It depends on what you're measuring and what you consider "better". In many ways, it is better. In many other ways, it's worse. Which you think it is depends on what you value.


> Which you think it is depends on what you value.

Sure, but more so - what software you use. AFAICT most complaining is about Windows software and web.

Windows is getting crappier and crappier because it ceased to be an important part of Microsoft's empire, and web... is web, went full stupid on JS and attracts most newcomers.

On the Linux and especially CLI side everything seems to be flourishing.


You lost me at "EULAs, enforced via the state's monopoly on violence". Firstly I don't think any EULA has ever been enforced by violence, and secondly if people wanted to give you nice software they definitely wouldn't have to use an EULA. People want get paid for work, that's why you can't have all everyone's work for free. It's not complicated.


> Firstly I don't think any EULA has ever been enforced by violence

Well, a number of people have gone to prison for software piracy, which would seem to contradict your claim


I don't think breaking the EULA is the charge though.


What do you think is the charge? Can I assume copying media without a valid license?


Are you saying that imprisonment following conviction by a jury is violence?


"state's monopoly on violence" means that a state's power to enforce its rules is rooted in its ability to use violence on those that refuse. Putting someone in jail is not physical violence, but what keeps them there (and why they even showed up to court) is the near guarantee of violence if they refuse.


I see, so the author resents that EULAs are enforced by the same theoretical possibility of violence which ensures the rule of law? Still seems a weird point but I'll grudgingly reduce my general level of disapproval. Thanks for the explanation.


Yes, that's a well-known fact of reality.


But they politely arraigned me and put me in an underfunded prison with the violent failures of a hardscrabble frontier society for downloading that software!


Lookup what monopoly on violence means.


What would happen if we actually made things to last?

If our appliances would break on average once in a hundred years?

If our tools were so durable it could survive generations?

If our furniture and our building materials could be reused almost endlessly?

Would the economy shrink? Would the manufacturers go out of business? Or would all the money saved go towards other, better things?


If we built things that way, it would have huge improvements with the environment, resource usage, and other problems that plague us and seem intractable.

Would our economy shrink? Probably, since our economy is based on ever-expanding growth. The better question, in my view, is "would that be a bad thing?"


unless we build the wrong things.


I agree with the article, but was thinking along the same lines.

What if a business actually takes a long-term view: investing in standards and fostering it's ecosystem instead of trying to outmaneuver competitors using any short-term tricks available? What if a company makes a great dishwasher and only change it when they can improve it? Will they inevitably be driven into extinction or bought up by more short-term profit-hungry enterprises? Maybe... but is that really inevitable?


> Would the manufacturers go out of business?

Apparently so, e.g., "The Instant Pot" (https://archive.is/DKBzB)


I agree with whats in the post. Just to add my 2 cents. Regardless of the industry a bureaucracy will grow around it. I think its because there are only a very few people who can actually create value. When the rest of the population sees the value generated they want to extract from it. In reality it is theft. But most of it is routed through some extravagant process to seemingly give it some validity.


> LLMs are a way to make software take orders of magnitude more computational power, electricity, and human labor, while delivering a product whose extremely volatile quality is impossible to assure. The work will never be completed; it will only create the need for ever more labor. For investors, all this churn is attractive. It's disruptive. It's why we can't have nice software.

This quote is the foundation of the blog post and unfortunately misses the point entirely.

Yeah, I agree with all these arguments against using LLMs for software development. That's precisely why they aren't going to be used for that.

Nobody wants to increase the cost of real development. Everyone would rather skip having to write code at all to get a result. From a high level perspective there's no difference between an LLM producing junk results and a team of humans writing bugs.

Though when humans get it right they really get it right and the product is worth much more due to its maintainability built off a good release. This is the missing insight from the blog post. Many businesses will still have to pay for real software dev and those days are not numbered.

LLMs really do grow the market legitimately. Low quality software is like store brand canned goods. It's a high upfront cost for the factory, but the product can scale on other merits.

These products are not mutually exclusive. You can get rid of your call center with LLMs including all the software the agents needed to service an account, but you still want humans writing the critical infrastructure and all the high visibility frontend stuff because you care about the data integrity and good UI/UX. This is what most devs already do all day. There's no threat here.


That misses the danger. We have to view societal inefficiencies as a targeted way of offloading pressure from expedient, one-size-fits-all "production quotas" and "final solutions". Technologies are levers - they produce leveraging forces, and we have to learn ways of using them appropriately in a holistic sense. They aren't the same as going up a level in a video game and being able to do the same thing plus one, because the dependencies of technology create new constraints: in a world with books, illiteracy becomes disabling.

Now, we can say with confidence that some inefficiencies don't work and are just inducements for everyday waste and corruption. But the majority of those aren't hyped technologies, they are longstanding norms. The hype and investment is, rather, a hope that the new problem saves us from the old problem in some respect - that, you know, maybe you can use all this new stuff to manufacture your own dishwasher, exactly how you want it, and it doesn't need a middleman company to make it "smart".

If you want to write software that is "nice" in the sense of longevity, you have to target archival materials, which isn't within computing's mainstream, but is a major aspect of retrocomputing: certain elements have proven to last, and within their context, you can just pick them up and use them again and again, for the rest of your life. You can reasonably hope to target VGA, PS/2 keyboards, 6502 processors, etc.

If you leave the software open to using new I/O, new protocols, you are engaging in speculation. Speculation needs financial motivations to fill in gaps: you can't get everywhere you want to go by working on the fun parts. You build a company because you are trying to fill in a gap. It is not pretty and sometimes you break some hearts, minds and bodies by being the person doing that, but it's quite a bit better than an armed struggle.


This is the confluence of enshittification and the tyranny of the marginal user.


It's just a hit-piece against new tech: blockchain-based systems and LLM. Move along, nothing to see.


A hit piece is something written to intentionally degrade something. You can have a hit piece for Bitcoin, but not some technology. You can have a hit piece attacking someone who uses technology. But for that specific use, you wouldn't try to explain the idea as a thread through many different examples across many different separate engineering domains. This isn't a hit peice about your favorite flavor of tech, it's a "hit piece" about a new-enough trend that's appeared in SWE, it's a disagreement about an idea... more commonly referred to as, an opinion.

but you're right, opinions you don't agree with are dangerous.


While it may be a hit piece, I certainly understand the validity in the philosophical nature behind the ideology.

I reflect similarly in my own observations in general. We often foresee the future as a reflection of 'here and now' versus understanding the long-term implications of decisions made at vast scale.

There are many great examples right in plain sight in every day life.


I'm not so sure. Those technologies are lampooned, but in the context of a broader point, namely that software requires ever more effort to deliver results that are not objectively better. I think that observation is valid and interesting to consider, though the rest of the essay is all over the place.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: