Hacker News new | ask | show | jobs
by linguae 768 days ago
1. Convenience usually transfers to less development time, which means less cost. Unless the performance is so poor that it’s unacceptable to a majority of users, many companies are willing to ship less-performant software if it means saving on development time and cost.

2. There is a lot of software that is used because people must use them. If your workplace uses Microsoft Teams despite its problems, then you’re essentially stuck using it. The problems would have to be so bad that they affect the company’s bottom line in order to switch. If your local bank or DMV requires use to use a poorly-written Web app, what could you do about it?

3. Not all software developers are well-trained in topics such as algorithmic efficiency, computer and network architecture, the trade-offs of different programming languages and their abstractions, etc. There are plenty of developers who could hack up working solutions quickly but cannot write quality production-grade software. The result is buggy software that doesn’t perform well and doesn’t scale.

4. This is just my opinion, but I’ve found over the past few decades that most users are more forgiving about crappy software than the average technically-inclined users. Crappy software isn’t anything new. “What Grove gaveth, Gates taketh away” was a quip I first heard in the 1990s about software bloat expanding as hardware improved. I remember the days of constant blue screens on DOS-based versions of Windows, as well as Macs crashing due to the classic Mac’s lack of protected memory. Complaints about the bloat of Microsoft Office and Netscape Navigator were common. I was a teenager in the 2000s when Windows suffered from many security issues. Non-technical users generally grinned and beared personal computing, all chalking up the crashes and slowness as just part of computing. Us technical types were the ones who were upset enough to seek alternatives. But we’re vastly outnumbered.

As long as economic effects favor “moving fast and breaking things” over slower, more deliberate approaches to development, and as long as users don’t demand performant software, companies will continue to deliver bloated software. I don’t see this changing outside of niches where performance and other related concerns outweigh minimizing development costs.

1 comments

Without sounding elitist I think number 3 is a big one. If you once learn how, writing decently performing software is often straightforward without taking any extra labour.
I wanted to affirm point 3 as well. There's a science in "computer science" that lays dome foundations.

Every month or so there's a thread here asking if college is worth it. Answers are typically mixed, depending on lived experience.

My own lived experience (I could program before I went to college) is that we didn't (especially) learn "programming". We learnt about fundamentals like algorithms, P vs NP, coupling, 3rd normal form, and so on. That affected our programming, but we didn't have "programming classes" (well except the first 3 weeks or so.)

I feel, looking back, that this served me well in the niche I traveled. My day job is basically writing performant libraries.

BUT I'm not in the camp of "computer science for all." There are other degrees at college, in programming, IS, IT and so on. There are lots of shorter courses that can train you up to get a job.