I Hate the Term "Modern"
The author critiques the term "modern" in technology, arguing that older tools can be more effective. They advocate for evaluating tools based on merit rather than age or appearance.
Read original articleThe author expresses a strong aversion to the term "modern," particularly in the context of technology and software. They argue that the term is often misused to dismiss older tools and practices simply because they are not new. The author highlights that the perception of "modern" as synonymous with "better" is misleading, especially in computing, where older tools like Neovim and command-line email clients can be more effective than newer alternatives. They provide examples, such as the Git email workflow, which is often criticized for not being "modern," despite its advantages over newer methods like GitHub pull requests. The author emphasizes that the value of a tool or practice should be assessed based on its actual merits rather than its age or appearance. They advocate for a more thoughtful evaluation of technology, encouraging users to consider the effectiveness of tools like Vim, Emacs, and various email clients without prejudice based on their modernity.
- The term "modern" is often misused to dismiss older technologies.
- Newer tools are not inherently better than older ones.
- The Git email workflow is presented as superior to the GitHub pull request method.
- Evaluation of tools should focus on their actual merits, not their age or appearance.
- Users are encouraged to try various tools before forming judgments based on the notion of modernity.
Related
In Praise of Low Tech DevEx
The article explores Low-Tech DevEx (LTD) in developer tools, favoring text-based options like vim and make for portability, speed, and user-centric design. It promotes Unix principles for improved developer productivity.
Blaming Agile for software stagnation puts the wrong villain in the wrong play
Moxie Marlinspike criticized Agile methodologies for stifling innovation, but the article argues that innovation has evolved since 2004, with mismanagement being the real issue, not Agile itself.
Modern Unix Tool List
The article lists modern Unix command-line tools that enhance traditional utilities, highlighting Atuin, Bat, and Concurrently, while noting some tools as unsatisfactory and emphasizing the need for regular updates.
Software possession for personal use
The article highlights user frustrations with cloud software, advocating for local-first and personal software to regain privacy and control. It emphasizes simplicity and accessibility in user-centric software development.
Obsolete Command-Line Tools of Linux
The article highlights obsolete Linux command-line tools and their modern alternatives, emphasizing the need for transition to enhance functionality and security, recommending tools like tmux, ip, and ssh.
Well, that's because modern typically is better.
Humans don't like problems, issues, inconveniences, accidents, or flaws. So many billions of us are constantly engaged in the enterprise of improving things. Or trying to, at least.
Of course, this requires trying new approaches to create "modern" things. Trying new approaches is the definition of experimentation. And experimentation produces failures, usually more often than successes. So many modern things are in fact worse than the old things. But some new things are actually good, and these good things tend to rise in popularity and last.
What's tricky is that even these modern+good things often seem bad at first because, well, they are kind of bad at first. They're too new to have had years of refinement and innovation. As the saying goes, when you invent the ship, you invent the shipwreck. But this doesn't mean you throw away ships. It means you keep iterating on ships to make them better than previous generations.
This is the process of modernization: Experimenting with a smorgasbord of new stuff, most of which sucks, but some of which is good, and yet still requires years of improvement to become great.
The good things from the past that the author is praising were themselves modern at some point. Today they're just further along in the process of being refined and improved.
1. It will have more dependencies than lines of code. Opening a source file to see how it works will reveal nothing, because there's nothing there.
2. It will have at least one annoying feature that can't be turned off, like autosaving the file every 10ms, which will completely tank performance on a network filesystem or any other storage slightly slower than the developer's top end workstation.
3. It will have at least one hard coded safeguard to save you from yourself, like completely refusing to save files to /tmp, because then you might lose work.
You will run into limitation #3 while trying to workaround problem #2, at which point you will discover development philosophy #1.
The author is totally right though, software people are subject to fads probably worse than the general public and second only to teenagers. This trendiness is rarely useful since we are constantly re-inventing the wheel and more effective solutions tend to take longer to win-out
VC Code will one day be the old legacy editor. Everyone on the modern train will be obliged to change their editor to the new modern one, multiple times. Some people reading this are probably thinking "but VS Code has so much development behind it that it will stay relevant"... this is exactly what users of "premodern" tools are saying now.
"denoting the form of a language that is currently used, as opposed to any earlier form. e.g. "modern German"
Yes, Shakespeare is modern English. Deal with it.
With respect to computer applications, I'd support a similar use of the word. There are plenty of languages and applications that are old but still actively used by many people. That means they're modern even if, like Shakespeare, they are outdated in some respects.
It's arguable that computing has evolved so quickly that the line between what is modern and what is not might be set more rigidly, but what year would that be? Many people are still using Fortran because it happens to be really good for certain things. Meanwhile, there are languages and tools that are much more recent that nobody is using because the were completely superseded by something better. Can something made just a decade ago not be modern, just because it's not currently in use?
It’s an attempt to use social pressure and bullying tactics to enforce a technological consensus. I particularly dislike it when it’s used to dismiss legitimate concerns with missing features in new technology instead of acknowledging room for growth and development and the real diversity in user needs.
But it looks like someone just flagged this article or some such as it went from rank 16 to 116 in like 1 minute. So, oh well.
1. “Modern web app”, also known as a polyglot monstrosity with ten thousand transitive dependencies of which at least a few dozen were written by kids from Eastern Europe now pushing up sunflowers somewhere along the Donbas front.[1]
2. “Modern auth” also known as designed-by-committee standards documents that no human being can fully comprehend because it is almost entirely written with just six words, most of which are synonyms in the English language.[2]
[1] This was the specific reason that forced an enterprise customer of mine to rewrite most of a newly developed Angular app.
[2] Paraphrasing only slightly: “Token code cookie authentication ID code token code.”
Get off my lawn!
I have a technique that is a hideous chimera of very "modern" stuff, like async/await, extensions, prototypes, first-order functions, etc. (Spoiler: They aren't actually that "modern"), and very old techniques, like Structured Programming, backwards assignment, and hand-crafted assertions.
WFM. YMMV.
Whichever it is, just use that word instead! Tell me something specific about what makes it worth considering over existing "old fashioned" options.
Well anyway, I mostly agree with this post. Another similar thing I hate to see is things like "Really? In 2024?" and im just like that's the laziest critique of something ever.
Sure, but that's just your strawman. It's better because learning from the mistakes of the past leads to the avoidance of some of them, which happens even in computing. While you conceptually can easily male new mistakes it's a tough sell to reject progress altogether by decree
Otherwise hard to argue more specifically since there is nothing more specific in the post when extolling the virtues of the bad old ways:
> In fact, in this particular case I’d argue that the Git email workflow is far superior to the pull request workflow for a multitude of reasons, as I have so often said in the past.
A link to that blog would have been nice
Paradigms in computing change. Modern means something uses paradigms that are best for today.
E.g. modern means using a JSON API rather than XML, or vanilla JavaScript rather than jQuery, or a responsive web design rather than separate fixed designs for desktop and mobile.
Modern, in this context, is meaningful and important to be aware of.
Of course, just because something is new doesn't make it better. But when I see "modern" in the description of a project, it usually does seem to refer to the paradigms that are the most useful for today. It's not just some kind of fetish for whatever's new, which is what the author seems to believe.
Related
In Praise of Low Tech DevEx
The article explores Low-Tech DevEx (LTD) in developer tools, favoring text-based options like vim and make for portability, speed, and user-centric design. It promotes Unix principles for improved developer productivity.
Blaming Agile for software stagnation puts the wrong villain in the wrong play
Moxie Marlinspike criticized Agile methodologies for stifling innovation, but the article argues that innovation has evolved since 2004, with mismanagement being the real issue, not Agile itself.
Modern Unix Tool List
The article lists modern Unix command-line tools that enhance traditional utilities, highlighting Atuin, Bat, and Concurrently, while noting some tools as unsatisfactory and emphasizing the need for regular updates.
Software possession for personal use
The article highlights user frustrations with cloud software, advocating for local-first and personal software to regain privacy and control. It emphasizes simplicity and accessibility in user-centric software development.
Obsolete Command-Line Tools of Linux
The article highlights obsolete Linux command-line tools and their modern alternatives, emphasizing the need for transition to enhance functionality and security, recommending tools like tmux, ip, and ssh.