惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
I
InfoQ
U
Unit 42
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
月光博客
月光博客
D
Docker
Stack Overflow Blog
Stack Overflow Blog
D
DataBreaches.Net
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
博客园 - 聂微东
A
About on SuperTechFans
腾讯CDC
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
博客园 - 【当耐特】
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence

Lobsters

CIFSwitch: a non-universal Linux local root vulnerability RIPE NCC session fixation: poaching logins with an Atlas probe GNOME 2.20 but its Web Components Agentic Search for Context Engineering – Leonie Monigatti Garnix is shutting down [not OC] akashina.tngl.sh/jjc Concerning Emacs (and Jazz) Nitpicking the shell history scene in ‘Tron: Legacy’ What's cooking on SourceHut? Q2 2026 The tenth OpenPGP email summit Package managers that package package managers Clojure on Fennel part three: parsing WordPress at 23 Finding Miscompiles for Fun, Not Profit GitHub - creusot-rs/creusot: Creusot helps you prove your Rust code is correct. Announcing Rust 1.96.0 | Rust Blog A Love Letter to Neovim sqlite AGENTS.md Am I a Bad Friend? CSS vs. JavaScript • Josh W. Comeau Erlang Ecosystem Foundation - Supporting the BEAM community A brief note about slot access cost in Common Lisp Keyboard latency probe Rethinking the GNOME clipboard issues Back to the Building Blocks’ Building Blocks Tech Notes: Theseus: translating win32 to wasm Fast is better than slow Content-addressed Rust builds (or, what kache actually caches) Intent to Prototype: Embedding API Canada’s Bill C-22 and the security cost of collecting more data
Vim Creator Bram Moolenaar's Forgotten Programming Langua...
David Cassel · 2026-06-19 · via Lobsters

Site reliability engineer Jan van den Berg remembers Vim creator Bram Moolenaar as “a hyperintelligent, dedicated, and selfless human-being.” In a recent blog post, van den Berg fondly described how the text editor’s creator “worked on Vim almost daily for over 30 years. Constantly tightening and improving it. An almost unprecedented achievement. A true labor of love.”

With the news of Moolenaar’s death at age 62, fans around the web shared their memories of a life lived, and all the joys and triumphs that came with a life of coding. But among the remembrances was the appreciation for one of Bram Moolenaar’s own personal projects. Moolennar experienced a rare privilege known only to a few: designing his own programming language. On social media sites, fans shared a 2014 video of a talk where Moolenaar shared his creation — a custom-crafted programming language called “Zimbu.”

The video offers a chance to see him in action — the man behind Vim, addressing a small but interested audience… But it’s also a chance to see what a programmer dreams about.

And what would happen if someone tried to map all of the frustrations from the daily lives of coders onto a new and improved programming language?

Making Coders More Productive

Moolenaar named the language “Zimbu” after a lesser-known Dilbert character — a programming monkey who was extra productive because it was able to move the mouse with its tail. (The language’s mascot was a monkey.)

Among Zimbu’s goals? Remove clutter to make code easier to read (since it’s read more often than it’s written). Zimbu’s trademark feature was the way it let coders omit the opening curly brace around a block of code. (“It looks a bit weird maybe, at first…” Moolenaar acknowledged to the audience. “Get used to it. It will work out fine.”) And parentheses are also optional around the conditions for an “if” or “while” statement…

To reduce clutter still further, semicolons are optional. (Though you can use them if you want to include more than one statement on a single line.) “You need a good mix of words and punctuation,” Moolenaar told the audience. “If you only have punctuation, you can’t see anything. If you only have words, like in Cobol… It’s hard to read, actually…”

It was October of 2014, at an annual open source event in the Netherlands called T-DOSE, when Moolenaar shared his vision. With all of our coding experience, “We have learned what works well and what leads to doom,” Moolenaar joked in the talk’s description. It adds that Zimbu was designed to help coders be productive “from experience, instead of using some academic theory or the hot fashion of the year.”

So Zimbu had both static typing and dynamic typing, along with garbage collection (so “you just don’t have to worry about memory management.”) There was multi-threading with asynchronous communication. Zimbu also delivered the extensibility of object-oriented programming with more flexible language concept mixins.

To reduce clutter even further, objects are indicated with the dollar-sign sigil (in place of the word “this”). “The basic experience is if you write code that’s shorter, it’s easier to read,” Moolenaar said at one point. “It’s easier to understand. So shorter is better…”

It was all Moolenaar’s answer to a fun hypothetical: if he were re-writing Vim from scratch, what kind of language would he want to use?

Bram Moolenaar – 2014 T-Dose talk on Zimbu (screenshot via YouTube)

Zimbu was even designed to be portable — to be used everywhere, even in the browser. To that end, Moolenaar had crafted the Zimbu Web Toolkit, so that both the server and client code could be written in Zimbu. (The compiler then generates binary code for the server and JavaScript for the client — and puts everything in the right place so they can communicate.)

And of course, there were some other improvements along the way.

 Java naming inconsistencies - Bram Moolenaar - 2014 T-Dose talk on Zimbu (screenshot via YouTube)

“If there’s inconsistencies in the language… it slows you down,” Moolenaar told the audience. You end up looking at the documentation, Moolenaar said.

Later one slide also warned that today, “programs appear to be written in a secret language,” advocating for plain-English words (like list instead of “arraylist”). Java famously had four types of integer — byte, short, int, and long — depending on the length of the value to be stored (and how many bytes would be needed to store it). Moolenaar’s Zimbu language just calls them all ints, and then specifies the byte length at the end of the type. (int8 int16 int32 int64)

And while Java has to maintain backward consistency, “If you start something new, you can clean it up.”

Towards the end of the talk, Moolenaar began sharing his biggest ambitions. (“I basically want to build testing into the compiler. I don’t see testing as a separate tool. I want to support writing tests easily in the compiler itself” — and so the compiler could handle test code differently) The Zimbu language also had compiler plugins (defined with a simple import statement) so “if there’s a feature you don’t have, you can add it yourself.” (Moolenaar described them as “tools that can take any kind of file and produce Zimbu code.”)

But in the end, Zimbu’s most distinctive feature was its use of capitalization. Reserved keywords were always written in all-uppercase letters. “It’s a bit hard to type, but at least you can always add new keywords, because nothing else is in all caps.” Built-in type names like string and list were all lowercase, while user-defined types must start with an upper-case letter. And user-defined functions have to start with a lowercase letter. This makes it impossible for a user-defined function to conflict with a built-in function.

FUNC Main() int
IO.print("Hello, World!")
RETURN 0
}

What Happened to Zimbu?

The slide ended with a status-of-Zimbu slide which included a telling bullet point: “Number of users: 1.” (“Which is me…” Moolenaar told the audience. “But maybe it’s about time I get some feedback from other programmers.”)

Ireland-based open source developer Martin Tournoij was in the small audience that day, and remembered Moolenaar’s willingness to stop and engage the audience. “At some point, I must have given a bit of a skeptical look, and he promptly looked at me and asked ‘oh, you don’t agree? Why not?'” Tournoij posted in a comment on Hacker News. “We spent some time talking during the rest of the day and the next day; we discussed and joked about lots of things; I don’t recall talking much about Vim: it just didn’t come up. I found him a very friendly, warm, and likeable person.”

Reached for comment, Tournoij said he doesn’t know the status of Zimbu today. “I suspect Bram just lost interest in Zimbu, at least temporarily, and other things caught his interest, as part of the normal drift of interests that people have — e.g. he started spending more time on Vim starting in 2015 or so…  Also Vim9Script probably plays a factor: a lot of the ‘language design creativity’ probably went into that, rather than Zimbu. I recall Bram mentioning ‘I enjoy working on this kind of thing’ (that is, designing a language, Vim9Script in this case).”

The language was clearly important to Moolenaar. In his messages to various Vim mailing lists over the years, the second-to-last line of his .sig file included a link to Zimbu’s official website — right below the link for sponsoring Vim, and above the link for a charity helping children in Uganda.

Bram Moolenaar Sig File - January 24 2020 Vim user mailing list

As recently as May 14th, in a post to Vim’s Google Group, Moolenaar .sig included a long joke with a reference to Zimbu.

Bram Moolenaar sig file - May 14, 2023 (Vim_dev mailing list)

But notice how the .sig’s last lines had changed? They now just included a blank space where the Zimbu URL was omitted.

Maybe it was a silent acknowledgment of the language’s relegation to a distant back burner. On August 9, on the Vim developer’s mailing list, co-contributor Christian Brabandt reminded the community that Bram’s family had passed the torch, granting access to Vim’s GitHub repository. (And that the people already managing crucial mailing lists vim-dev and vim-use would continue to do so.) But when The New Stack contacted Brabandt about the current status of Zimbu — and if anyone was talking about maintaining it — he wasn’t sure. “Unfortunately, I don’t know the status,” Brabandt (adding “It seems the source repository was lost when Google Code shut down.”)

On GitHub there’s at least one random user with their own unofficial Zimbu fork (“since the official one isn’t hosted on GitHub”). Another user is hosting what looks like a 9-year-old repository for Windows XP 32-bit Zimbu.

GitHub repository for user bsed - includes Zimbu w32 (screenshot August 2023)

But it’s true that the Zimbu language specification on Moolenaar’s website hasn’t been updated in over 7 years — and that Zimbu.org brings up an error message. (“The site zimbu.org points to the site ‘zimbuweb’ which does not exist. Please contact the domain administrator.”)

Brabandt seemed pessimistic about its future prospects. “I followed the development when Bram was still working on it, but I don’t think he worked on it the last years. The website also seems to be down. So I think this project is dead.”

Maybe he’s wrong. (We’ll post an update here if we hear anything.) But just like Vim, the Zimbu programming language stands as testimony to just how much Bram Moolenaar cared about the community of coders.

Steve Jobs once said that “One of the ways that I believe people express their appreciation for the rest of humanity is to make something wonderful and put it out there… [S]omehow, in the act of making something with a great deal of care and love, something’s transmitted there.”

And just like Vim, Zimbu shows what can happen when a programmer dreams a dream…

YOUTUBE.COM/THENEWSTACK

Tech moves fast, don't miss an episode. Subscribe to our YouTube channel to stream all our podcasts, interviews, demos, and more.

Created with Sketch.