1. 32

  2. 5

    I’m old enough now that the amount of time I can personally remember people talking about the alleged problem that there’s a lot of COBOL code no one knows how to maintain, is an appreciable fraction of the amount of time COBOL has existed. It’s frankly a cliche, and it doesn’t surprise me to learn that the degree to which it’s a problem has been overstated. I’m sure a 60s COBOL mainframe system is not trivial for a newcomer to that system to come to understand. But all complicated software projects take some time for newcomers to come to understand. A good programmer shouldn’t have a problem putting in that work - you can learn COBOL today if you need to - and the people who use those systems can pay for those programming hours if its important enough.

    It’s interesting to see jQuery spoken of in the same terms as COBOL mainframes. I would argue that the DOM manipulation programming model more modern frameworks like React provide is a better model than the more procedural jQuery. Yet I wouldn’t think that a website today that uses jQuery is necessarily doing anything wrong. Any webapp still needs to manipulate the DOM at the end of the day, and as long as that browser API exists, jQuery seems like a perfectly fine way of doing that.

    On a broader level, a lot of the reason that we think of old programs as almost certainly bad, is because the state of the art of both hardware and software has been advancing extremely rapidly as long as computers have existed. I don’t think it would be bad for software developers to think of ways that they could write systems, or at least small subsets of systems, that are deliberately designed to last for decades with minimal maintenance. To pull this off probably requires linguistic technologies and principles that have become common now, but haven’t always been in the history of computing, such as functional programming, minimal side effects, and advanced static analysis built into the source code of a program itself (i.e. types).

    1. 2

      Yet I wouldn’t think that a website today that uses jQuery is necessarily doing anything wrong

      IMO it’s a function of “how much necessary complexity” and “how much maintenance will be performed”.

      I work on a site with a fair bit of both. The jquery code is harder to reason about than the react because it has few to no invariants. React has lots and it makes diving in much easier.

      The react code is often also 10x the size on the wire; it’s not clear the maintenance advantages overcome that.