Are all old things worse? As humans, we often flatter ourselves with being 'rational', and to some, rational is the same thing as using modern software because it is… modern.
Why did mathematicians go haywire when Hagoromo chalks disappeared?
Indeed, why did they?
In Chalk: Materials and Concepts in Mathematics, Michael J. Barany & Donald MacKenzie investigate similar questions. Among other things they speak about the sound produced when using chalks (noise blocking noise from the outside world), the sensation of writing (how it feels to use chalk).
Perhaps one could add culture? If you have romantic sentiments about something, one could argue, such sentiments are irrational. On the other hand, one could argue, it would be more rational to romanticize and yet remain self-aware rather than trying to be a rational robot and delude yourself, when you're not a rational robot, only a simple human. A very basic existence.
Interestingly Barany & MacKenzie reflect on the marks used when doing mathematics on a blackboard,
One rarely thinks of what cannot be written with chalk, a tool that promises the ability to add and remove marks from a board almost at will. The chalk’s shape, its lack of a sharp point, and the angle and force with which it must be applied to make an impression, all conspire to make certain kinds of writing impossible or impractical.
The low-tech character of chalks, they insinuate, produces the precision needed. What you cannot do is sometimes as important as what you can do.
If it is true that Hagoromo crayons (or crayons in general) have benefits, are we sure then that using Hagoromo crayons is irrational versus whiteboard pens? Even though it's a fact that it's easier to erase things written or drawn on a whiteboard, perhaps we should be hesitant to think the mathematicians obsessing with unmodern crayons are just… excentric, weird and irrational?
From the perspective of at least some mathematicians, whiteboards did not mean progress.
Progress in any area tends to stem from failure, deficit or dissatisfaction.
Before we perform analysis and categorize something as a failure or a deficit, we feel some kind of dissatisfaction. If we didn't, would we have the drive to excel and produce a better solution? …to progress?
This is how Vi by Bill Joy came about 1976. Joy didn't enjoy using his current editor because it took forever to do editing, using a slow modem. The elegance of the Vi way to handle text and code was born from frustration and dissatisfaction.
People still use Vim (or NeoVim), Vi continued, and other arcane editors, such as Emacs. They use it because they think Vim (or Emacs) provide a better and a more sophisticated way of working with code, especially when integrated into a larger workflow, using Unix tools.
Using Vim is also about 'art'. Vim is an elegant art that keeps you focused, and and an art which is pleasurable to practice.
Relating only to how it feels to use a certain tool, I see a resemblance with mathematicians using Hagoromo crayons. It's quite possible to view using Vim as nostalgic and irrational, just as it would be possible to say that mathematicians enjoying the use of Hagoromo crayons are nostalgic and irrational.
But is it irrational?
If what you cannot do is sometimes as important as what you can do, perhaps it's, together with the elegance of the composable language of Vim, just because you cannot do very highly precise things such as refactoring features of type X with a click, you can experience heightened focus with Vim?
And perhaps the features of an IDE, in the end, take away more cognitive power than they provide? Or perhaps this is true for some programmers, false for others?
I don't know.
I do know I usually write and edit code and that grande scale refactorings are not something done every day, but perhaps this is my lack of experience speaking.
Sometimes we build complicated machines solving tasks, when we have less advanced machines solving just as well, or better. And with largescale architecture and machinery comes maintenance, more gears needing oil, more gears that can break.
Donald Knuth was asked by Communications of the ACM, a magazine, to solve the task of reading a textfile, determine the most frequently used words, and print out a sorted list of those words along with their frequencies. Knuth's solution stretched 10 pages in, I think, C.
The purpose was to demonstrate Literate programming, a programming paradigm invented by Knuth. Another computer scientist, Douglas McIlroy was to write a review of the code.
Which he did. But McIlroy also included an Unix shell script solving the very same task, not stretching 10 pages but 6 lines,
tr -cs A-Za-z '\n' |
tr A-Z a-z |
sort |
uniq -c |
sort -rn |
sed ${1}q
Anyone can understand this does not mean that we should use only shell scripts.
Usually, we're not, when programming, faced with tasks simple as this one but on the other hand it's a fact, described by experienced programmers, that as applications scale unnecessary complexity sometimes follows.
How do we know when complexity is justified? When can we be sure something is rational?
We often use words such as 'justified' and 'rational' in irrational ways.
At least I (and many with me) from times to times, without thinking about it, attribute this or that as rational (or irrational). Sometimes I, and others with me, don't have specified standards stating why this is so, believing it's obvious why something is rational.
But sometimes when we poke about, we realize it's not.
I can't say I know this is the case with Vim, but I believe you and I should give it a thought.
I do believe we make progress in software, but I also believe that someone who says this is always the case, is wrong. And even if we were making constant progress, we would have to invent failure - just to get do even better.