Rant: people in the past weren't stupid

Posted 2021-03-08

A rant this week from me, more GC info from the official blog in community announcements.

Core D Development Statistics

In the community

Community announcements

See more at the announce forum.

Adam's rant

I find myself sometimes torn between the idea that things are popular for a reason and that popular things get misused just because it is popular. On the one hand, the wisdom of the masses is real - with a variety of use cases and experience levels, people can see things that I can't. But on the other hand, people tend to assume that their problems are more extraordinary than they really are and niche things get blown out of proportion, or powerful marketing arms influence people's decision making, so it is a fallacy to assume popular is good.

One way I try to balance these out is to just give it time. Popular trends tend to fade fairly quickly, leaving the strongest ideas to survive the test of time. This, of course, is also not a perfect heuristic, but I do generally find that if a variety of people over a stretch of time find value in something, it probably means there actually is value in it. It at least deserves some examination, however, it is important not to remove it from historical context. Sometimes something made sense for a long time, but things changed and now it doesn't. Sometimes the mere fact it took on first gives a massive advantage for years to come, despite the fact it isn't ideal in a perfect world. But there's still likely something to learn from it.

An attitude that bothers me is one of arrogance: that you must know better and everyone else who disagrees must therefore just be stupid, lazy, or both. (Some may call me a hypocrite here, since I'm, in part, predicating this very rant on the theory that I know better than people who disagree. But this is different... in what way? The Founders ARE gods.)

Whenever someone accuses the compiler of having bugs it triggers this instinct in me: are you sure it isn't your bug? Too many jump to blaming someone else. Of course, the compiler does have its bugs, but I think the burden of proof ought to be on the accuser. There's a scene in the Bible (Matthew 26) where Jesus tells his apostles that one of them will betray him. Instead of pointing fingers at each other, they all asked: "Lord, is it I?" Surely you'd think they would know themselves to be innocent (or in the case of Judas, that he was already guilty), but they still wanted to check themselves before casting blame. I like that.

Similarly, whenever someone starts a replacement project, there's an implicit assumption there, if not an outright statement of certainty that they will do a better job. In some (rare) cases, of course, they're right and the replacement is better.

But in most cases, if it is better at all, it is only in a qualified matter. Maybe it is better for a specific use cases, but fails in cases where the old program succeeded. That can be all well and good, and if you recognize that, I say good job! But too often this is coupled with "well, those other cases don't matter anyway". And again, sometimes that's true! I frequently point out that so many features are actually for rare niches myself, and a replacement choosing not to implement them is one way failed experiments are erased by the passage of time.

However, time and time again, I see a case where someone tries to simplify in a replacement... then end up copying the original features again later because they failed to recognize the lessons the original authors learned. Phobos' autodecoding is an example: at the time, many of us thought it was a good idea. Right by default! We thought we were learning the lessons of the past, unlike the competition, but the reality is we missed something they saw. The autodecoding brought more problems of its own without actually solving what it aimed to solve since we oversimplified.

I see similar attitudes toward history and politics too. In computers, "history" is so often just like thirty years ago. But even people hundreds or thousands of years ago weren't stupid either. Of course there were things they didn't know, but there were a lot of things they did know and they would usually apply that knowledge in a reasonable way to their context.

This is another rant without much of a conclusion. People in the past didn't know everything, but they certainly weren't stupid either. How do we apply this today? Well, I don't actually have all the answers... I guess my biggest point is you probably don't have all the answers either.