← Back to news

Emacs, how it all started (for me)

xvw.lol|55 points|18 comments|by nukifw|Jun 15, 2026

Emacs: My Personal Origin Story

Originally published on xvw.lol | 2026-06-15 Note: This text is a rewritten translation of the original piece.

In this brief account, I intend to map out the somewhat erratic journey that eventually led me to adopt Emacs as my primary environment for both writing text and developing code.

Disclaimer: This is not a technical guide or a tutorial. Instead, it is a slice of my personal history—a reflection on the clumsy, naive decisions that, looking back, actually proved to be quite helpful.

This narrative was largely sparked by the themes of the Emacs Carnival in April 2026, though it is far less ambitious in scope.


🚩 Setting the Stage

Before diving into the timeline, I want to clarify my position. While I hold strong views on various technical topics (especially regarding programming languages), I am not a soldier in the legendary Editor War.

To be perfectly honest:

  1. I defend Emacs passionately at times, yet my deep technical knowledge of it is limited.
  2. I have never actually tried Vi or Vim (or any of their modern derivatives).

Therefore, please view this as a historical memoir rather than an invitation to a debate. Even though my professional life involves maintaining editor support for the OCaml language—and I've felt the friction of extending Visual Studio Code—I harbor no ill will toward those tools.

Furthermore, while I prefer Free Software, I am not an expert in GNU philosophies or the intricacies of licensing. My transition to Emacs was not a political statement; it was a pragmatic choice.


🕰️ The Prehistory: A Series of Bad Ideas

Before I became a serious coder, I made a sequence of remarkably unintelligent choices. As a self-taught developer, I struggled with basic terminology from the start.

📝 Phase 1: Coding in Microsoft Word

My journey began with PHP. Because I lacked a steady internet connection, I relied on physical books. Since I didn't have administrative rights to install software on my machine, I simply wrote my code and assumed it worked.

The textbook I used mentioned that "any text editor" could be used to write code. Being young and naive, I chose Microsoft Word.

Rich Text EditorPlain Text Editor\text{Rich Text Editor} \neq \text{Plain Text Editor}

At the time, this distinction was completely lost on me.

🛠️ Phase 2: The Evolution of Tools

Eventually, I obtained a CD-ROM containing an installer for EasyPHP, which allowed me to actually execute my scripts. This is when I finally realized that Word was the wrong tool.

However, I still didn't grasp the importance of indentation or syntax highlighting. My progression looked like this:

EraTool UsedExperience
EarlyNotepadBasic, functional, but primitive.
GrowthNotepad++A revelation in comfort and utility.
ExperimentSciTE / EclipseEclipse felt too heavy/clunky for my brain.
PeakSublime TextI thought this was the final editor I'd ever need.

It is funny how we adapt to discomfort. Until you use a superior tool, you assume the struggle is normal. For example, if you've never used sum types in a language, you don't realize you're missing them: Type T = A | B | C

🌐 Phase 3: Le Site du Zéro

Once I moved past just "making things work" with PHP and started loving programming for its own sake, I found Le Site Du Zéro. While I was there as a "PHP developer," the real treasure was the community forum.

I encountered a world of languages that were completely alien to me:

  • OCaml
  • Erlang
  • Forth
  • Haskell
  • Io
  • Smalltalk
  • Various Lisp dialects

While these might seem mainstream in 2026, back then, they were obscure mysteries. This curiosity eventually shaped my career, leading me to work professionally with Erlang and OCaml. I was fortunate to interact with mentors who were light-years ahead of me.


🗺️ The Journey Map


🎯 The Goal

I felt a deep frustration that I didn't understand these advanced languages. I decided to embark on a mission to learn as many as possible, believing that expanding my horizons would somehow make me a better PHP programmer.

My Learning Checklist:

  • Master basic PHP
  • Explore Lisp dialects
  • Understand Functional Programming
  • Fully master the Emacs ecosystem

Programming Journey

To illustrate the logic of my transition, one might say:

if ($tool->isPragmatic() && $tool->isExtensible()) {
    $myEditor = "Emacs";
} else {
    $myEditor = "Something else";
}

This set the stage for my eventual arrival at Emacs—a tool that could finally keep up with my chaotic desire to explore every corner of the computing world.