Live data from Hacker News

Software Is Drowning the World

jamesabley.com

1–10 of 65 posts

Re: Software Is Drowning the World

#2
Things break down and things eventually need to be replaced. This has been a fact of life since time immemorial. I do tire of programmers acting as if the necessity of maintenance is some novel and unexpected problem, unique to software development, presented with hyperbolic titles like "software is drowning the world". Is physical infrastructure "drowning the world" because it needs to be maintained?

Re: Software Is Drowning the World

#3

Things break down and things eventually need to be replaced. This has been a fact of life since time immemorial. I do tire of programmers acting as if the necessity of maintenance is some novel and unexpected problem, unique to software development, presented with hyperbolic titles like "software is drowning the world". Is physical infrastructure "drowning the world" because it needs to be maintained?

The inability to fully understand how a system works due to the interconnecting pieces is not a problem unique to software either! That ship sailed a long time ago. E.g. with cars can the average person now repair it at home and maintain the entire car themselves? It would be foolish to recommend that we "fix" cars because of our inability to personally understand the entire thing from inception to finish, yet some feel we can apply the same to software.

Just look at the Windows Internals books to understand the complexity of just the systems in the operating system. It isn't something that needs to be "fixed" just because something is complex.

Everything is more complex than we think it is, and that's not really a problem.

Re: Software Is Drowning the World

#4
I think a real issue we developers face is the management and client attitude that software does not require maintenance. Time and time again, the fact that our completed projects require maintenance or they simply fail with newer systems is greeted with shock, debate and accusation of deceit.

Re: Software Is Drowning the World

#5
For concentrating on high level business logic, there are various low code / no code systems. But that still means someone needs to take care of all other dependencies, security fixes, scaling, etc. Someone needs to understand and maintain all pieces for it to work properly, and need to know how to optimize bottlenecks.

Automating fixes is only possible if you understand fully where the problem is. Then, it still needs testing does it break something else. For testing, automatic tests most likely do not test for everything. And someone would need to create those tests.

There is also a lot of existing code for existing software. Would it be possible to analyze or convert that amount of code to be somehow updateable?

Software is usually made with some programming language and related dependencies. Those dependencies don't necessarily exist for other programming languages and web frameworks.

Re: Software Is Drowning the World

#6
Totally agree. If the new version of a library requires a slightly updated usage; please just give me simple examples of how to update my code. Include a simple regex. And while we’re are it, let’s standardize how we provide those upgrade scripts. So when snyk tells me there’s and issue, it also easy to find and apply the necessary code changes (at least for the simplest 90% of cases).

Like python’s “2to3”.

It’s not a magic bullet; the developer still benefits from thorough testing, but I think changelogs could stand to improve in a lot of projects.

Re: Software Is Drowning the World

#7
Talking about Spring at several places specifically, I assume the author has been bitten by the Spring version treadmill (eg older Spring remoting not being maintained, forcing you to upgrade to a new Spring major version) and the big deprecation coming with Java 9 and the JEE to Jakarta migration. Been there, done that, and it sure sucks to do the month-long blues to bring deps of even a medium-sized app to a new version. But, not picking on Spring specifically, it's implicit in Spring's design as a grand unified wrapper for all things infrastructure. Whereas building on the base technology Spring is wrapping (JEE, mostly) would in principle allow picking versions much more freely. However, at this point, with the partial starvation of former JEE packages, even that isn't a given (had troubles with pointless JAX-RS apps and deprecated maven plugins at a customer of mine last year, whereas Spring migration was relatively painless).

Re: Software Is Drowning the World

#8

Things break down and things eventually need to be replaced. This has been a fact of life since time immemorial. I do tire of programmers acting as if the necessity of maintenance is some novel and unexpected problem, unique to software development, presented with hyperbolic titles like "software is drowning the world". Is physical infrastructure "drowning the world" because it needs to be maintained?

I didn't see in the article any claims that the problems outlined are unique to software development, can you point them out?

Hyperbolic titles are indeed a problem of our age though, I agree on that completely. But your prejudice towards programmers who are supposedly thinking their problems are novel and unexpected is not justified.

Re: Software Is Drowning the World

#9

Things break down and things eventually need to be replaced. This has been a fact of life since time immemorial. I do tire of programmers acting as if the necessity of maintenance is some novel and unexpected problem, unique to software development, presented with hyperbolic titles like "software is drowning the world". Is physical infrastructure "drowning the world" because it needs to be maintained?

> Things break down and things eventually need to be replaced. This has been a fact of life since time immemorial.

That sounds a bit broad. In the general aviation world, engine designs from the 60's are still in widespread use.

Re: Software Is Drowning the World

#10

Totally agree. If the new version of a library requires a slightly updated usage; please just give me simple examples of how to update my code. Include a simple regex. And while we’re are it, let’s standardize how we provide those upgrade scripts. So when snyk tells me there’s and issue, it also easy to find and apply the necessary code changes (at least for the simplest 90% of cases). Like python’s “2to3”. It’s not…

I think codemod is probably one such tool: https://github.com/facebook/codemod
Post reply on HN