Midnight Pub



I'm talking about software technology, although the discussion might apply to other fields of life, why not.

I live under the impression that the things I know and perceive as good are systematically fading out in favor of newer, inferior things.

I admit it might just be juvenoia. Perhaps I'm biased by my inclination of accepting the defects of the classic software product I know, while being more strict on the defects of the new kids in the block. Or maybe I'm afraid that my expertise will be obsolete in a matter of a few years, while I'm no longer in the position of taming the new tech stacks (for lack of time and/or mental elasticity).

Then I tell myself I'm not that old, and I prove it by learning the new programming language everyone speaks about, or the new tool everyone is so fond of… and that's when I find that I can still understand, and even get proficient on new things. And guess what: I'm even way faster to learn than my younger self, given that the basic principles never change.

Yet I hate the hell out of these things, as they fail to satisfy the aforementioned good properties that I'm really fond of.

Unsurprisingly, what I think is worth nothing. In fact I don't even waste time in expressing my thoughts (if we exclude this post). It seems however that fewer and fewer people are talking about classic software stacks. Newbies keep pushing on their new toys, with the enthusiasm that was proper of my younger self, undeserved by such a crap tech. I see plenty of dumb projects that are the re-proposition of working ones, except heavier and full of useless extra behavior. Why? Because "we can".

How stupid. How about improving what we have, instead? This is why we can't have good things.


When I was young in the software craft I was asked to repair an old, creaky app written by a developer long gone. Thinking I knew better, I ripped it apart and started over from the ground up. Two months later I realized I was painfully and slowly following in my predecessor's footsteps.

It's been interesting during my career to watch people leave stable products like Apache for the new hotness of node or nginx or whatever. And while we shouldn't be hidebound into using what daddy used for his websites, I do agree that the new servers seem to make a lot of the mistakes that Apache figured out twenty-five years ago. Seems like there should be a way to move forward without losing the past in the process.


Two months later I realized I was painfully and slowly following in my predecessor's footsteps.

Absolutely true: there's often some pearl of hidden wisdom that justifies a software being perceived as bad. If it is you who wrote the software in the first place, you might be able to fix it the right way, or at least to leave tracks (comments?) for the ones who come after you. If you're not the one who wrote it, and there's no track, you are pretty much doomed to realize the hard way.

On the lucky case, the ugly part is covering some issue which is no longer a problem nowadays. I'm now thinking about, autoconf, that makes sure you've got uint32_t defined: what libc doesn't come with uint32_t defined nowadays? Yet, replacing autoconf means you've got to ensure portability yourself: good luck with that! Or get rid of portability entirely: thank you very much for restricting those who have a different system than yours.


In fact I don't even waste time in expressing my thoughts

Why not? If the software/process/tech Is something you have some control over (be it on the owning team of, etc) why not suggest/dissent to a rebuild for rebuild sake?



For what I can, yes.

It's hard to battle alone the whole universe...