Tired of Software

50 points by itvision ↗ HN
I've been around software and computers for three decades already and I'm getting very tired of it.

Why do we have a constant stream of updates, security fixes, improvements, etc. etc. etc.? Why can't we enjoy something ... stable and complete?

I'm thinking back in 80s/90s software was released as something which required basically no maintenance, it didn't crash, it just worked. Nowadays, everything is fixed, improved, streamlined and optimized all the time. What's worse, software is often released as early beta, you may even say late alpha and of course I'm talking about games.

Why has it happened? Why does this affect seemingly only the software industry? We have equally if not more complicated things such as planes, rockets, cars, microwave ovens, refrigerators, buildings, etc. etc. etc. which are produced/built as something complete. Of course there are recalls here and there but they are the exception, not the rule.

What do you think? Are you content with the status quo? What would you change? What would you mandate if you were in a position to enact laws?

42 comments

[ 3.2 ms ] story [ 93.8 ms ] thread
>Are you content with the status quo?

The status quo is IMHO terrible, but it affects also "smart" ovens, regriferators, tv's, and anything that is designed to be "connected" (IOT).

And games (which you mentioned) are just games.

I am more worried that tomorrow morning the PC's used in the office to make an activity go on (accounting, personnel, e-mails, invoices, bank, etc.) may not boot because of a stupid update to the OS or may not connect to the internet because something got corrupted in the router/modem firmware.

If I were in a position to enact laws ( and talking of spherical cows in a vacuum) I would draw a line between "professional" use and "leisure" use, no idea how it could be implemented, but a work PC (I mean one used for the boring everyday tasks that are needed) should be rock solid, have no updates whatsoever unless they are somehow "guaranteed" to be working, and needs not to be that fast or have the latest-latest technology (oh, and while I am at it solid backup/imaging technology should be built-in and implemented by default).

I understand that a large part of the HN audience is formed by IT professionals that are either able to solve these issues by themselves or work in large corporate environments where there are IT professionals dedicated to solve them, but there are many smaller offices, firms, workers that are - more or less - exposed to these risks and have not any (valid) support from technicians, software houses, etc..

Agree with your comments.

But how are we going to implement solutions when the corporate objectives are to maximize profit, get to market ASAP, dazzle with outlandish claims. Even the technology focused firms of yore are now run by executives with MBAs and a focus on maximizing shareholder value.

Intel's recent decision to cut salaries in order to maintain high dividends is an example of the madness that has gripped formerly dependable corporations.

> I would draw a line between "professional" use and "leisure" use

Legally? like a law about quality of software? That's kinda bonkers. Let the market sort this out itself. Eventually "Internet Of Shit" will be more in the mainstream consciousness and the pendulum of the market will swing back to what consumers want.

Sure, legally.

It is not about quality of all software, it is about expected use of software, software (including OS) used for "serious" things should be "serious".

It may seem bonkers, but since market hasn't managed to sort it out, something should be made in order to sort it out, at least as long as the government is requiring businesses to use computers and the internet for almost anything.

I know it will never happen, of course.

I don’t have the kind of time to be waiting around to wait for “the markets” to catch up. I want my useful software now, not in 10 or 20 years. Not to mention that I feel we’ve already had this in the past, but that iteration of technology was taken away from us by the march of the markets.
I’m sad for you. Every few years I get an acute case of “I hate computing” which can last for days or months (still not sure if I’ve gotten over that malaise I picked up from Ed Snowden in “citizen 4”) despite the plucky meandering of ApenWarr in the face of disaster[1].

But my recollection of the 80s/90s doesn’t include your rosy glow. I still recall the horrorshow of my first powermac. Or the awful churn of MSA Payroll which needed custom work before and after every payroll run. Or the magic smoke emanating from the simultaneous frying of all the Netware Server ethernet cards in the middle of close on Black Monday 1987, after just one server was patched the night before.

Friend, the history of computing is definitely not “Insanely Great”, it’s just insane. Read early Risks Digest[2] from that era and you will see many absurd problems of today reflect the past all too well.

[1] "The gift of it's your problem now": https://news.ycombinator.com/item?id=29736369

[2] https://catless.ncl.ac.uk/Risks/

Some possible causes :

1- The Software architecture paradigms change. It is a cycle (ups/downs). A part (not all) from the 80s/early90s was less complex and more mature, so more stable. Now we are in the midst of a different paradigm (SaaS mainly?) that is way more layered (less efficient) and not yet mature enough. And we are forcing our way into a new one (AI/AR/VR) that is infinitely more complex. So it is not over my friend.

2- The IT industry is too big to shrink (too much anyway) : Consciously or unconsciously, they need to break things and reinvent the wheel to keep going. It could be done in a good way, but it is too tempting to overdo it (or just fake it)

3- Modernity is just like that. Software is mostly just faster. That oven/refrigerator is not updated but is soon replaced (planned obsolescence…). The speed goes higher for fast fashion items or the disposable junk we use every day.

these factors are related. [2] is made easier by the logic of [1], and [2] is a sub case of [3] : In a nutshell it is capitalism fighting against the entropy of diminishing returns [0] by artificially creating new needs (updates/security…)

[0] https://en.wikipedia.org/wiki/Diminishing_returns

Depends on what field you are referring to. There are lots of different software industries. For example the software that controls a power station or the telephone switches are different from enterprise software used by banks which in turn are different from software found in consumer products.

One of the many things that annoys me is that the people writing software for EVs are completely ignoring the experiences and practices in the avionics industry. For example, Teslas FSD could have avoided the problems if only they had understood the decades of experience with auto-pilots and the interaction with human pilots when some sensor(s) start giving incorrect inputs. And it is not just a technical problem, but a training issue, a cognitive issue, a psychological issue, even a communications issue.

The most urgent thing I would change is to stop the madness of requiring everything connect to the internet in order to be used. For example, can't I just have a new TV that doesn't connect to the internet, download updates, upload my user habits, force me to connect to a hundred different streaming services, etc? I just want to watch some free-to-air shows without becoming part of somebody else's data science project.

Just give me a social media platform to stay in touch with friends and family without being bombarded with thousands of ads for stuff I don't need nor want and being tempted to scroll through click bait videos, etc.

(comment deleted)
(comment deleted)
>One of the many things that annoys me is that the people writing software for EVs are completely ignoring the experiences and practices in the avionics industry. For example, Teslas FSD [...]

As a former automotive engineer, I think this is more of an issue with Tesla trying tooo hard to be the disruptor at any cost, rather than the general automotive industry which is more traditional and conservative. In the embedded SW I was writing for a big German brand, we had 3 levels of redundancy in software and 2 in hardware for critical stuff. Nothing there was penny pinched, rushed or half-assed.

I doubt Elon would have hired a bunch of grumpy old gray-beards with avionics experience to "hold back innovation" and tell him they know better, when he can just keep putting young motivated new-grads who drank his cool-aid in charge to "move fast and break things" and say yes to whatever fantasy features Elon cooks up.

Another thing with Tesla seems to be the over-use of ML (implemented poorly) for basic problems (like self-parking) that the car industry has solved for over 10 years by using basic PID controllers and Kalman filters.

In fairness, when you have a hammer everything looks like a nail, so this "throw ML at every tiny problem" addiction is not unique to Tesla but seems to plague every start-up who wants to seem cool and attract young talent and gullible investors.

My 0.02$

It's not just "use ML for everything", it's worse - they insist on relying only on vision "because human brain can figure out its surroundings based only on vision". Sounds like a idiotic non-argument to me, and yet they're betting the company's future on it.
I think they insist on relying on vision-only because thousands of customers with vision-only vehicles out there have already paid for "full self driving" - so admitting their mistake would be ruinous financially.
Sure but this way, non of the Teslas on the road will ever have full self driving with just vision alone.

IIRC Andrej Karpathy said in a video stream that they gave up on adding lidar and radar and went vision only because it polluted the sensor fusion data.

MS torpedoed early web development with their monopoly. Then it got out of their control and flooded by VC money for hacking the toy scripting language embedded in independent browsers. Now it's a huge mess, corporations throw bodies at the problem and the only people qualified enough to change it have golden handcuffs and won't.
Can you define the problem?
I think he's talking about the early history of JavaScript, as related by Douglas Crockford. I guess the problem statement is "Why is JavaScript actually named after a skin disease?"
I guess the problem statement is "Why is JavaScript actually named after a skin disease?"

I have no idea what this is supposed to mean

'Software is tiresome', you know, the thread
I am not tired of software.

Never doubt that a small group of thoughtful, committed citizens can change the world; indeed, it's the only thing that ever has.

I think you're glancing over the fact that in the olden times it was too hard to update things. If a piece of software had a bug is the company going to ship out a floppy disk to 1 million users to patch it?

The nature of software is that it can constantly be changed, updated, etc. I like it, its like no other industry. To be honest and completely selfish, there is no end in sight, it pays an absurd amount of money (comparing all jobs for all humans on earth) and I could probably do this type of work well into "retirement" age range.

The level of quality to deliver a working software service is much lower because we can change and update it at will. If you don't like working on that type of software, there are jobs out there like writing software for MRI machines and other things that require much higher levels of quality.

(comment deleted)
> If a piece of software had a bug is the company going to ship out a floppy disk to 1 million users to patch it?

In the very early days, software companies had BBSes that they distributed patches through. Then it was FTP sites. They usually offered the updates on floppies (and, later, CDs) as well, but that wasn't what they preferred you do.

But there are two main differences that make me think those days were better -- such updates weren't needed as often as they are now, and you could choose whether or not to apply a particular update.

These days, software is often shipped half-baked because they rely on the ability to update frequently over the internet. And, partially as a result, software tends to demand an internet connection or at least regularly phone hone if it has one -- and it's often hard or impossible to skip an update.

> In the very early days,

Not everyone was aware of the BBS'es and then later (dialup/net accessed) FTP sites. Besides the hassle getting onto some of these FTP sites was time consuming as well, putting aside state interference, like redirecting your own dialup call to their own dialup FTP site.

> But there are two main differences that make me think those days were better

Simpler times, less variables, people hadnt found the weaknesses in RFC protocols, phishing attempts online and offline and other forms of deception and criminal intent, people were more trusting back then, less exposed to negative situations of varying magnitude. A classic example of ignorance is bliss.

One thing could be considered absolute or constant, the speed at which data can be obtained has increased, and the range of ideas people can access has increased. Will this affect humans in a negative or positive way?

>These days, software is often shipped half-baked because they rely on the ability to update frequently over the internet.

There is only so much testing you can do in the lab, so why not get early adopters to do the testing for you? It could be cheaper.

> There is only so much testing you can do in the lab, so why not get early adopters to do the testing for you? It could be cheaper.

Because that's abusing your customers. However, you're correct that there should be real-world testing by real users. That used to be a regular practice in the industry, and done without abusing customers. It was called "beta testing".

We still do things we call "beta testing", but "beta testing" doesn't mean what it used to mean.

Windows 95 didn't crash?
I was thinking about MS-DOS and NT 3.51/4.0. But yeah, Windows 9X was terrible in this regard. I never liked it.
> Why does this affect seemingly only the software industry? We have equally if not more complicated things such as planes, rockets, cars, microwave ovens, refrigerators, buildings, etc. etc. etc. which are produced/built as something complete. Of course there are recalls here and there but they are the exception, not the rule.

The software industry has an ease of distribution like no other. Did you make a mistake in your code? Fix it and make your update available to the world. Users who were discontent before can now forget they ever had an issue.

If your physical product has a mistake, users are stuck with it forever. If you need a recall there’s a ton of extra cost associated. If your mistake caused a loss of lives and property (e.g. faulty wiring resulting in a fire), extra losses. You better make sure everything works on the first try.

If it were as easy to make hardware changes to a product as it is to make software updates, I have no doubt companies would cut even more corners and “fix it in post”.

While I commiserate with your weariness, I have a different reaction by looking at the technology stack in layers. The lower layers do need to be stable and I believe the evolution of those layers has slowed down (for example, operating systems, network stacks, web protocols, etc.). Of course, the higher layers are still rapidly evolving (web UI, artificial intelligence, cybersecurity) but that is because as an industry we have not settled on the "winners" in those areas. So, rapid progress and trial-by-error is necessary to determine the best solutions in the higher layers of the technology stack. I think that frenzied search for the best solutions and its ensuing messiness is because "Software has eaten the World" and that the opportunities for both riches and global impact are still there. In the end, that is a good thing.
> In the end, that is a good thing.

As a user who just wants to use my computer to do stuff, I think it's a terrible thing. But your explanation does make sense, and validates my stance of avoiding the use of new software to the greatest degree feasible. I'd much rather not have the latest gee-whiz stuff and have stuff that just works well.

I remember some PC games in the 90's/early 2000's just refused to run, or they would run and then the disk would get too scratched up and then they'd refuse to run.

Sometimes one particular game (MechWarrior 2: Mercenaries) would freeze and the CD drive would start spinning at warp speed, and it would still be spinning a bit due to inertia when I opened the CD tray. Once I tried to stop it with my finger and the disc launched itself across the room.

You just don't get these kinds of hijinks with modern games :(

Seems to be a common complaint this morning. I think a lot of the complication comes from world scale. We didn’t have that in the 80s/90s.
> Why do we have a constant stream of updates, security fixes, improvements, etc. etc. etc.? Why can't we enjoy something ... stable and complete?

This, more than anything else, is why I am very hesitant to use any new software at all anymore.

curse of today's software world. dirt and break all previous versions, add new features and do it again and again in a short time.
It's just the way it is. I'll get hate first this, but you can thank Agile. Nothing is ever really done. The plan isn't really complete at the beginning. You have to deliver in that 2-3 week sprint. Also, software has gotten more complex with the integrations and web exposure.

I feel like the older software was built from a more complete plan and so was able to be designed around a more elegant solution. Many parts didn't have integrations with other apps or the web. Of course there's a huge bit of survivor bias since I do remember there being wonky apps back then, but generally those tended to die out rather quickly.

I'm still using my Windows 7 laptop from 13 years ago; not as a daily driver, but as a media and web browsing center. Occasionally I see the "Windows 7 Discontinued" message when Windows loads, but it is dismissable, and after that the computer works exactly as it did when I bought it, more or less. No OS-level updates, but plenty of updates from Firefox.

Plus all the software on that computer is largely buy-once, use forever; that's a misnomer on MacOS, which breaks backwards compatibility frequently, but not on Windows.

In some ways, I think that (nearly) ubiquitous broadband is a big part of the problem.

In, say, the 90s / early 2000s, with dialup internet, it was mostly impractical to download software or operating systems, so it came on a pile of floppies or a CD, and didn't phone home or use a cloud account to operate or constantly update itself.

Then, the low-bandwidth connectivity by a modem was only useful for human-to-human communication like BSS, usenet, irc, or hyper-optimized webpages and applications. The average website for, say, a bank, airline, or train company is basically a huge ad, with any ability to actually transact or buy tickets a worse experience than it was with simple HTML forms / server side web apps.

I also think that the idea that broadband is a necessity that should be subsidized and universally accessible is highly questionable. It seems to me that FAANG have been able to socialize the costs of their ad/content/malware delivery, but keep the profits private.

Somehow, I can't help but wonder if things wouldn't be better if average residential bandwidth were limited to, say 1mbps, but symmetrical, low-latency, and perhaps some separate system for distributing software images that was more like bittorrent or ipfs where you get the content, but there is no actual high-bandwidth, trackable connection back to the vendor.

Well, the real answer is...you don't need much software in your life, but software itself has developed into your life in an interdependent fashion, where you need it because the norms demand it, so any kind of software failure becomes more noticable. Let me give a specific example.

I often post on a subreddit for art questions(visual arts) and one of the FAQs is "What are the best graphics tablets that the pro digital artists use?"

The question is basically naive in what it's asking, because drawing digitally is mostly the same across devices. As long as you're getting something using a current generation of EMR(or Apple Pencil) the only major differences are physical form factor and screen. The actual drawing experience is the same: slightly laggy, slightly aliased, artificially smoothed by the software, and disembodied-feeling since the brush stroke doesn't reflect the physical contact of the stylus. It's a fancy mouse, and it works, and you can learn to cope with it as a unique medium, but it won't feel like traditional.

What you really gain from having the software is...programming. You get to defer more decisions and make more design changes. You can layer up stuff and automate various processes. That lets you pursue a more technically accomplished work, to belabor certain elements and automate others. But the actual drawing, moment-to-moment, is still worse in a lot of ways, because it isn't as directly connected as traditional tools.

Similarly, many of the editing capabilities that come to mind with using digital can be done traditionally by using tracing paper, lightboxes, and projectors. The ones that only digital can do well - the precision cut and paste, transforms, etc - are such common features that you don't need a lot of software to get the capability. And many people working traditionally will use digital as an enhancement, to help design the work and then print, lightbox or project it, or to add some color or compositing at the end.

However, there's a kind of self-fulfilling prophecy of tech for tech's sake: a program adds some way of getting some cool new effects, and that drives people into going further with it, because they want to play with that. And then it becomes, in some circles, the norm to use the tools in that certain way, to extract a little more out of them. But as you go further, you're increasingly tech dependent, and the specific software starts to define your work, rather than just being a neutral medium. You post on "digital art" sites, get paid from it. So you start paying your subscription fee and putting up with the bugs because now that's your career - not "artist" using the new medium to creative effect, but "digital artist," one more pawn in a technological rat race, using the tablet not because it makes your work better but because it lets you produce content faster. And then younger people see this and think it's normal to be a digital artist, so they ask questions in terms of the norm: "what do the pros use?"

The element of obsolescence does happen traditionally, of course: paper is made differently now from in the 70's - more recycled, different chemical treatments. But it's different from a software feature that the whole work hinged on, like using 3D models to set up your scene. The former changes the character of the work, the latter changes what kind of thing you work on.

And where we've ended up in the broader view is that more of our software is in this interdependent state, where it doesn't export to a printer as the final step - it stays on the screen and in the database forever, so you have to have the computer there, always, and it isn't "batch processing" where you use the computer for that one job, it's online, it's connected, and all of those other things, and the entire thing you're doing is making work to feed an algorithm.

And the reason why this is bad, ultimately, is because s...

Thank you for taking the time to write your long informative comment.

As an extremely amateurish artist, I sometimes give up on the digital realm, print my work, hack it with physical tools and then scan it and give it a final flourish with digital tools. Other times, I start with a sketch on paper, scan that and process. I'm lead to believe that more competent digital artists could do all of that (from start to finish) all on the computer with the right software and produce more spectacular results.

> it didn't crash, it just worked.

You've got some very rose-tinted goggles.

Remember the "blue screen of death" and how often it would appear? I used to reboot my Windows machine regularly because a driver or the OS itself would shit the bed. Now I reboot my Mac|Windows|Linux machine once in a while.

Installing a new application sometimes meant tinkering with ".ini" or other config files just to make it run on your system.

Software has always, for the most part, been unstable and buggy. Am I happy about it? No, but it's an acceptable tradeoff IMO, as the alternative is the kind of regulation you see in established industries, which makes innovation extremely difficult and benefits entrenched players who know (and game) the system. (And I think we're going to see more regulation come anyway, as real-world consequences for bugs become more prevalent and serious.)

All the things that you listed are uniform. Refrigerators use the same mechanical stuff to keep stuff cold using some kinds of equations that measure it all and it is the same every time - equations don't change. For airplanes, the airflow and lift equations will always be the same. Microwave ovens only microwave, it always heats the same. Basic carpentry tools for building have not changed for thousands of years. A hammer today is the same basic thing as a hammer 2000 years ago.

However, software is different. It responds to real life changes in real time. Governmental regulations change, new types of taxes, new optimized ways of doing business develop, demand rises and falls, competitors try to outflank you and you have to meet the competition. You can't plan. You cannot foresee. You can look at trends and extrapolate but you never know for sure. But you for sure know what the number for gravity is, or Ohm's Law or all that other kinds of shit. For example, insurance. All 50 states have their own insurance rules and regulations and change them all the time. A national insurance company has to understand the rules of all 50 states and make changes to their software for 50 states. Plus actuarial tables change all the time. Are 30 year olds all of a sudden getting in a lot more accidents, statistically? why? Is in an anomoly or a trend, and what's causing it? Do we as a company need to raise rates on 30-year-olds? Wildfires with global warming - insurance companies will not insure now in wildfire areas. Same with hurricane areas - good luck with finding affordable insurance in F.orida for your home. This is just the very smallest not even scratching the surface of all the changes in insurance industry. And all industries are the same issues. Shit continuously changes in a business environment. What can you do??? How can you make software one time for that? It's impossible.

Sofware is released earlier now because of a completely different competitive landscape. Back in the 1980s, and to some extent the 1990s, there was no competition, not like today. Not even close. Apple Computer in the 1980s was barely a blip compared to IBM or any other Fortune 500 company - it was laughably small. Now it is bigger revenue than most nations. And that is just one company. The industry is vast, vast, vast and people are always looking for niches, niches, niches. People always say if you want to start a business, find a niche...unfortunately, unlike the 1980s, everyone knows that, and there are hardcore competitors in every niche you can think of and a shitload that you can't think of.

So, because there is so much competition, you have to come to market fast, otherwise someone else will eat your lunch. First to market is a thing, if you don't fuck it up by deliver utter shite.

Secdurity fixes and updates are probably the most obvious. With the advent of internet as it is now is nowhere near like it was in the 1980s or 1990s. Trillions of dollars are being shot all over the internet. Corporate plans are kept on computers - competitors would love to see your plans. So cybercrime is an issue because of trillions of dollars at stake. So security updates must happen all the time. Social engineering training must be constant.

You can't really change anything. It's like saying to change whether you eat or not. I suppose if there was some genetic engineering to clone us with photosynthesis from plants and it turned us green and we could get energy from the sun, that would make it change, but anything short of that, there's no change possible.

What would I mandate if I was in a position to enact laws??? Really??? I would enact a law that said two supermodels have to be with me in bed every night with blow and snort it off their asses. Hookers and blow, hookers and blow. That's the standard joke, but I guess the real answer is to pass a law for people to be excellent to each other.

Software in 80s/90s requires much more design than it in today. Sometimes people even develop theories and systematize knowledge before developing.

Softwares today prefer to use "agile development" which usually be understood and used as "think less and start coding".

In 80s/90s, customers of software were targeted more on big business customers who can pay a lot more.

Today, more and more small customers even free users are targeted, so software companies focus on a more unstable user group than it in the past.