Way back at the beginning of my career, I was writing client-server applications to replace terminal-based or command line interface based applications. It was a heady time, if you remember it.
Not only were we reengineering code, we were Teaching the Elephant to Dance.
As an industry, we spent billions and billions and countless millions of “man” years creating GUIs and later webapps to scrape or replace those old legacy systems back in the 1990s and early 2000s.
Yet despite all that time and investment, almost twenty years later I was just at a very big enterprise, and one of the big topics was the sexy new CLI. That’s right: the sexy new command line interface.
Hey, I don’t mind. Sometimes, I just like writing code. And this is just one of the ebbs and flows and trends in the industry. And besides, the command line has always been sexy to me — even when it wasn’t.
And yet, over the past few weeks, I’ve been looking at some legacy code from an old (but still very much alive) minicomputer application, which I haven’t done in a while. (No, a minicomputer is not a tablet or your iPhone so this is not some Objective-C app from 2009.) You know, these were minicomputers because they were smaller than that 300 baud thing from War Games.
I won’t give you any more specifics, but in looking at that code I was reminded of how those systems already had most of the problems that we’re struggling with in the enterprise figured out. They had powerful terminal interfaces (assuming you knew how to do it). They had scale baked in. They had this “asynchronous thing” that everyone is so excited about (whether it’s Node or modern Java or whatever) pretty much settled back in the 1970s.
Maybe one of their major problems was that they had strong vendor lock-in, which is what things like Linux solve, and Apple still fights against.
Why do we always want to start from scratch? Don’t get me wrong, I think it’s fun to start from scratch too. Is it that we’re always forever young? Is it that an old player like Digital and their IP (even from the 1970s) forced us to start over? Is it that the legendary programmer laziness also means we don’t want to spend the time to learn what the guys (and yes, they were unfortunately almost all guys) did before us? Do we just want to leave our mark on the world?