Monday, April 6, 2020

Some Thoughts On, For Lack of a Better Term, Chibitinaism.

I posted a while back that I thought there were more option than just capitalism or communism. I don't like people narrowing our options down to two like that, but at the time I didn't really explore the idea any further.

I recently thought about it again, oddly enough because of some Twitter discussions that were inspired by the recent request for COBOL programmers in New Jersey.

For those who choose not to click on the link - COBOL is a 60 year old programming language that almost nobody programs in any more. The ones who did have long since retired, and we're all using newer languages. But (for those unaware of how tech operates), there is a lot of legacy code that was written in COBOL, and never changed. Mostly because the bugs have been worked out, it's reliable, and it's pretty expensive to rewrite working programs in another language.

There are more problems than that, ofc, but this popped up in the news because of the pandemic. Or rather, because the record demands being placed on New Jersey services are stretching the capabilities of their old systems to the limit, and they need people who can help modify those systems.

In COBOL.

This twitter thread has some excellent discussion on the pros and cons of modifying vs. rewriting such legacy systems, and I thought many of the same factors apply to changing our socioeconomic systems.

That is, a book I read some time ago talked about the attempt to design a great new city - Brasilia - and the challenges that came with it, and I think some of the same issues apply. You could possibly make a similar argument for China's Cultural Revolution, or Russia's attempts to change the peasant system.

I'd recommend reading the twitter thread yourself, but I'll give the gist of it here - old systems may look confusing and outdated, but that's in part because of the way they grew and adapted to fix problems you probably never even heard of. Remaking it from scratch takes significant time and effort, and (perhaps more importantly) you often see the same bugs that were fixed in the old and messy code reappear. In other words, your new, cleaner, more modern code tends to be more buggy and less reliable.

I linked the discussion because this is not all in black and white. There are times where it might be better to throw out the old and start all over, especially since there may be limitations built into the old code (due to the constraints on technology at the time) that might be taken care of in the rewrite. Plus, well... as New Jersey's request for COBOL programmers shows, there's a very real risk that you will lose everyone who understands the original code... and that can make it very hard to maintain or update the system.

Since I brought technology into this, I'll also mention some of our current trends. Namely, making things more modular. It makes it easier to fix things behind the scenes without having to change your application in twenty different places. Or you can write your code in whatever language you want, and still have it communicate with parts of the application that were written in something entirely different. (It makes for a very confusing and complicated place, one I'm only just beginning to get a grasp of, but even though it's a real pain to deal with I get why we're going in that direction.)

So where am I going with all this?

As current events show, there are some serious issues with our current system. Or, to use a more vernacular phrase, "We got problems."

There are some people who want to just throw it all out and start over. There are others who hope to modify or tinker with the existing system (though many have very different ideas of what to modify, and where, and how.) We have some people arguing that the pandemic proves we need Medicare For All, and there are others who are taking the chance to cut payroll taxes (and maybe, depending on the details, in an underhanded way try to stop social security and medicare).

I lean towards the 'try to modify the existing legacy systems', which is part of why if the Republican party hadn't proven how much they've lost all their moral bearings in the past couple of years I might lean more towards being a conservative, but I also see the burden of trying to work within existing structures.

They do rather limit what you can do, after all, and make it harder to get creative.

So I figure I'll post some things, maybe start off a series, discussing my thoughts on the topic. And although I am most definitely NOT saying we should throw it all out and start over, I think it's useful to try and envision what we'd create if we could do that.

It gives me something to work towards, some idea of what changes would need to happen in order to get from here to there.

No comments:

Post a Comment