August 28th, 2024

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 articleLink Icon
I Hate the Term "Modern"

The 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.

Link Icon 30 comments
By @csallen - 8 months
> The word modern has somehow become associated with “something better”…

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.

By @tedunangst - 8 months
My assumptions whenever I see a program that advertises itself as modern.

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.

By @jppope - 8 months
I'm cracking up reading this article because in Architecture (buildings not software) the word "modern" is basically used incorrectly as a rule. The "Modern" period started like 100 years ago, and yet it has somehow come to mean (tacky) high-contrast, open layout homes, only suitable for Mediterranean climates.

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

By @mseepgood - 8 months
I always subconsciously interpret the word 'modern' as 'in fashion,' probably because the word 'mode' means fashion in my language. I don't associate it with something good or advanced, but rather with something vain and ephemeral.
By @Animats - 8 months
"Modern" is 1920s-1960s.[1] We're now in post-post-modern, or something like that.

[1] https://www.youtube.com/watch?v=GOjglFG2XAc

[2] https://en.wikipedia.org/wiki/Modern_architecture

By @dcmatt - 8 months
I have a similar feeling towards "Legacy." Aka "Everyone who wrote it doesn't work here anymore and I can't be bothered to learn how it works"
By @uludag - 8 months
> For example, I have encountered situations where others would look at the tools that I am using, such as Neovim [...] and say things like “Why not use a modern editor like VS Code?” or “Why not use a modern web interface for your email?”.

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.

By @beloch - 8 months
"Modern" has several wibbly wobbly definitions in various contexts, but with regards to languages it is actually quite specific:

"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?

By @allears - 8 months
I hate the word "technology," as in, "Our new framistan is made with foobar technology!"
By @optimalquiet - 8 months
A phrase I hate even more than “modern” is “x is the future”, especially when used to describe a technology that only works for certain use cases.

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.

By @cb321 - 8 months
It may or may not bother people less|more [1], but "post-modern" gets some github love: https://github.com/search?q=%2Fpost-modern&type=repositories... including a command I use hundreds of times per day written in Nim: https://github.com/c-blake/lc

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] https://en.wikipedia.org/wiki/Postmodernism

By @jiggawatts - 8 months
The two examples that make my blood boil are:

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.”

By @ChrisMarshallNY - 8 months
> Really what I’m focusing on here is the second definition and its misuse as a term to justify derision toward programming practices, languages, and software solely based on the age or appearance of said practice, language or piece of software.

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.

By @1vuio0pswjnm7 - 8 months
This blog post is like 5-7 years late. For me, the term "modern" when used by software developers means "avoid". It is useful for filtering out garbage.
By @benatkin - 8 months
It makes sense in enough contexts that I like it. The context-specific meaning is a moving target, though. For instance in 2005 a modern web framework would give you URLs without file extensions. In 2008 a modern JavaScript framework wouldn't modify prototypes of built-in objects. In 2022 a modern node.js library would support ECMAScript modules. Just because the context-specific meaning changes doesn't mean the overall meaning changes.
By @pimlottc - 8 months
I just think it's overused and lazy. Describing your project as "modern" doesn't tell me anything useful. What's modern about it? What's the "current style" that it adheres to? Is it lightweight? Modular? Distributed? Functional? Typesafe? Test-driven? Stateless?

Whichever it is, just use that word instead! Tell me something specific about what makes it worth considering over existing "old fashioned" options.

By @karmakaze - 8 months
I appreciate the term 'modern', it's basically saying newfangled for better or worse depending on how you view recent styles. Simply don't equate modern with better, or only better in certain ways that you may or not agree with. For others who insist that modern is better, don't listen to them--don't try to correct the internet.
By @wrs - 8 months
The related annoyance is to call things “legacy” when you’re introducing a new thing. I remember a Microsoft meeting where someone was introducing yet another database API or some such “innovation” and kept referring to “legacy systems”. One of the other architects dryly said “just to be clear, by legacy system you mean every existing system?”
By @quadhome - 8 months
It’s just pragmatic to brand your work as modern. “Contemporary” is harder to type and too complex.
By @rectang - 8 months
In the context of software marketing, "modern" is a synonym for "smart" and "fast". They all mean "better but actually worse".
By @k__ - 8 months
Contemporary is a better term. Less loaded.
By @the_panopticon - 8 months
"Universal" is also a term that doesn't typically engender happiness in technologists.
By @medo-bear - 8 months
Modern programming language like Rust
By @destructionator - 8 months
What I find offensive about this post is using "neo"vim and neomutt. what, was original AgentSmithMutt and TrinityVim not good enough? ...Is it because they're old?

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.

By @crtasm - 8 months
Yes, call it current instead. It's not going to be modern for long.
By @gweinberg - 8 months
Title needs 2020 :-)
By @eviks - 8 months
> Just because something is recent, newer, or shinier does not make it automatically better.

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

By @cosmotic - 8 months
I used to criticize every hacker news post's use of the term 'modern' and was downvoted every time.
By @crazygringo - 8 months
I couldn't disagree more.

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.