Oh, the things Vim could teach Silicon Valley's code slingers

25 years, eight updates, all gravy


Open Source Insider Vim text editor turned 25 late last year – the first public iteration was launched on November 2, 1991, a couple of weeks after Linus Torvalds announced Linux. To celebrate Vim's anniversary, creator Bram Moolenaar recently dropped version 8.0.

Ordinarily the update of a text editor wouldn't be worth mentioning, but this is the first major Vim release in ten years. In today's world, where web browsers drop major point updates (what they consider major, anyway) several times a year, Vim's lack of major updates is not just refreshing, but speaks of an entirely different approach to developing software.

Even leaving aside the absurd version system of today's web browsers, eight releases in 25 years would be considered slow by today's software development standards. Interestingly, though, Vim's biggest rival, GNU Emacs, has a roughly similar development pace. GNU Emacs began life in the 1970s and is currently at version 25, which means it averages two releases to Vim's one, but still definitely on the slow side.

Yet Vim and Emacs taken together may well be the most used software in the software developer's toolkit.

As a long-time Vim user (since 2005 or so), Vim's lack of updates may well be my favourite feature. Vim is Vim. It does what I need it to do and it doesn't try to completely reinvent itself every six months. In fact, I had been using version eight for several weeks without even realising it, which at this point is pretty close to my definition of great software – if it ain't broke, don't fix it.

Contrast this with your favourite web browser, which pushes out updates every six weeks. I don't even need to know what your favourite browser is to make this generalisation because they all do it. Now some of this frantic update pace can be attributed to the fact that the browser is a newer idea, there are more bugs to work out. That sounds good. Until you think about what Vim, and even more so Emacs, is capable of, which includes, in Emacs' case, being able to render HTML using WebKit.

So much of software development these days feels like reinventing the wheel for the sake of it. I recently took on a new client with a codebase written in Symfony 1.0, which is old enough that I had to use Archive.org just to find an overview of it. And I'll admit my first instinct was to rewrite the code in something more modern. But then I stopped myself and stepped back and looked at the actual code. Is there anything wrong with it? Well, in a couple of places yes, but by and large, no. It works. It does what the client wants to do well enough that they want me to port it to another part of their business. It ain't broke, why am I trying to fix it? I put down the shiny new stuff and got back to work.

The desire for the latest and greatest is a mental trap we all fall into to some degree. New ideas come along and in many cases they're good ideas, better than what was there before. To stick with Vim as an example, version eight does have a bunch of cool new stuff, like support for asynchronous I/O, channels, JSON, jobs, timers and GTK+ 3 among other things. None of that is immediately, obviously useful on its own, but all of which opens the door for some new and potentially very powerful Vim extensions.

There's nothing wrong with helpful new features, but too often those helpful new features come with a price. They require relearning how to do things that you did reliably the day before. And even the most helpful features cease to be helpful if they require me to completely change my existing workflow. Vim 8 was a totally transparent update. It didn't require me to learn some new way of working, it didn't completely break extensions I rely on just so it could round off some corners in the UI (OK, Vim doesn't really have a UI, but if it did I feel pretty confident that it wouldn't waste time rounding corners on tabs, cough, Firefox).

A common defence of the rapid release cycles common in today's software, graphical and otherwise, is that things must progress. To not progress is to deny ourselves the birthright of, uh, progress?

Stagnation is the equivalent of death apparently, which is as much a cultural value as one of the software produced by that culture, but either way it might be worth remembering that there is something else that pursues growth at all costs, dividing over and over again in a ceaseless headlong rush – cancer cells.

The more time I spend meditating on this analogy the more accurate it feels. To be clear, I am not talking about security updates. Security updates improve software and are a good thing. What I'm talking about are the needless UI rewrites that don't actually do anything for users (web browsers seem to be the most egregious example of this), the development frameworks that reinvent themselves with every point update, or the latest trend: abstractions that promise to simplify everything but end up increasing the complexity of everything.

To pick what I think is the most absurd example of this trend, look at CSS, an incredibly simple syntax for styling web pages. But, no, it turns out that CSS is too complex, so we get Sass. But then Sass doesn't quite do what we want so we get Compass and now what used to be something so simple few would call it programming requires two interdependent frameworks, Ruby and half a dozen Gems to output CSS we could have just written in Vim.

Then there's the insanity of deployment. Deployment tool chains are the most aggressive cancer around right now. All to save you from being a complete Philistine who just pushes and pulls to a git repo, or, Festivus help you, uploads files over scp.

Alas, I don't expect things to change from their current course. If anything the future looks to be full of more abstractions, more pointless UI rewrites, more frameworks that break backwards compatibility, and more cancer-like growth. Which is why Vim is so important.

At least our text editors will still be there, stalwart unchanging places to reliably weather the storm. Thanks, Vim, I quite literally could not do what I do without you. Happy 25th birthday and here's to another ten years before Vim 9 rolls around. ®

Similar topics


Other stories you might like

  • It's 2022 and there are still malware-laden PDFs in emails exploiting bugs from 2017
    Crafty file names, encrypted malicious code, Office flaws – ah, it's like the Before Times

    HP's cybersecurity folks have uncovered an email campaign that ticks all the boxes: messages with a PDF attached that embeds a Word document that upon opening infects the victim's Windows PC with malware by exploiting a four-year-old code-execution vulnerability in Microsoft Office.

    Booby-trapping a PDF with a malicious Word document goes against the norm of the past 10 years, according to the HP Wolf Security researchers. For a decade, miscreants have preferred Office file formats, such as Word and Excel, to deliver malicious code rather than PDFs, as users are more used to getting and opening .docx and .xlsx files. About 45 percent of malware stopped by HP's threat intelligence team in the first quarter of the year leveraged Office formats.

    "The reasons are clear: users are familiar with these file types, the applications used to open them are ubiquitous, and they are suited to social engineering lures," Patrick Schläpfer, malware analyst at HP, explained in a write-up, adding that in this latest campaign, "the malware arrived in a PDF document – a format attackers less commonly use to infect PCs."

    Continue reading
  • New audio server Pipewire coming to next version of Ubuntu
    What does that mean? Better latency and a replacement for PulseAudio

    The next release of Ubuntu, version 22.10 and codenamed Kinetic Kudu, will switch audio servers to the relatively new PipeWire.

    Don't panic. As J M Barrie said: "All of this has happened before, and it will all happen again." Fedora switched to PipeWire in version 34, over a year ago now. Users who aren't pro-level creators or editors of sound and music on Ubuntu may not notice the planned change.

    Currently, most editions of Ubuntu use the PulseAudio server, which it adopted in version 8.04 Hardy Heron, the company's second LTS release. (The Ubuntu Studio edition uses JACK instead.) Fedora 8 also switched to PulseAudio. Before PulseAudio became the standard, many distros used ESD, the Enlightened Sound Daemon, which came out of the Enlightenment project, best known for its desktop.

    Continue reading
  • VMware claims 'bare-metal' performance on virtualized GPUs
    Is... is that why Broadcom wants to buy it?

    The future of high-performance computing will be virtualized, VMware's Uday Kurkure has told The Register.

    Kurkure, the lead engineer for VMware's performance engineering team, has spent the past five years working on ways to virtualize machine-learning workloads running on accelerators. Earlier this month his team reported "near or better than bare-metal performance" for Bidirectional Encoder Representations from Transformers (BERT) and Mask R-CNN — two popular machine-learning workloads — running on virtualized GPUs (vGPU) connected using Nvidia's NVLink interconnect.

    NVLink enables compute and memory resources to be shared across up to four GPUs over a high-bandwidth mesh fabric operating at 6.25GB/s per lane compared to PCIe 4.0's 2.5GB/s. The interconnect enabled Kurkure's team to pool 160GB of GPU memory from the Dell PowerEdge system's four 40GB Nvidia A100 SXM GPUs.

    Continue reading
  • Nvidia promises annual updates across CPU, GPU, and DPU lines
    Arm one year, x86 the next, and always faster than a certain chip shop that still can't ship even one standalone GPU

    Computex Nvidia's push deeper into enterprise computing will see its practice of introducing a new GPU architecture every two years brought to its CPUs and data processing units (DPUs, aka SmartNICs).

    Speaking on the company's pre-recorded keynote released to coincide with the Computex exhibition in Taiwan this week, senior vice president for hardware engineering Brian Kelleher spoke of the company's "reputation for unmatched execution on silicon." That's language that needs to be considered in the context of Intel, an Nvidia rival, again delaying a planned entry to the discrete GPU market.

    "We will extend our execution excellence and give each of our chip architectures a two-year rhythm," Kelleher added.

    Continue reading
  • Amazon puts 'creepy' AI cameras in UK delivery vans
    Big Bezos is watching you

    Amazon is reportedly installing AI-powered cameras in delivery vans to keep tabs on its drivers in the UK.

    The technology was first deployed, with numerous errors that reportedly denied drivers' bonuses after malfunctions, in the US. Last year, the internet giant produced a corporate video detailing how the cameras monitor drivers' driving behavior for safety reasons. The same system is now apparently being rolled out to vehicles in the UK. 

    Multiple camera lenses are placed under the front mirror. One is directed at the person behind the wheel, one is facing the road, and two are located on either side to provide a wider view. The cameras are monitored by software built by Netradyne, a computer-vision startup focused on driver safety. This code uses machine-learning algorithms to figure out what's going on in and around the vehicle.

    Continue reading

Biting the hand that feeds IT © 1998–2022