Get AI summaries of any video or article — Sign up free
I tried 10 code editors thumbnail

I tried 10 code editors

Fireship·
5 min read

Based on Fireship's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

vi’s modal workflow can be extremely fast, but it demands memorizing commands and accepting missing features like syntax highlighting.

Briefing

Code editors have evolved from keyboard-only tools that replaced punch cards to today’s cloud-connected IDEs, and the practical takeaway is that “best” depends less on nostalgia and more on workflow needs—especially platform support, extensibility, and how much setup friction a developer is willing to tolerate.

The journey starts with vi, a 1976 keyboard-driven editor built around modes. Insert mode is required to type; escape returns to command mode; and saving relies on command sequences rather than menus. That modal approach makes vi fast once memorized—deleting lines with commands like “double d” or “3 d” avoids mouse highlighting—but it also demands a steep learning curve. vi’s limitations reflect its era: no syntax highlighting and little native support for plugins, which pushed developers to build workarounds instead of expecting a fully featured environment.

Emacs, created around the same period by Guy Steele at MIT, takes the opposite philosophy. It’s non-modal, more menu-driven, and highly extensible—capable of bundling tools like debuggers, file management, and even terminal emulation into one customizable environment. The tradeoff is complexity: heavy use of modifier keys can lead to “emax pinky,” and the editor’s scale—over 10,000 built-in commands—means productivity depends on investing time in configuration and macro-building.

Vim (1991) becomes the mainstream developer answer by improving vi with features developers expect in modern workflows: syntax highlighting, multi-level undo, and plugin support. It also includes a built-in learning path via “vim tutor,” and the muscle-memory payoff is framed as keeping fingers on the home row. A later fork, Neovim (2015), targets performance and modern scripting by embedding Lua instead of relying on Vim script, which is criticized as unpleasant. For those who want fewer concepts to juggle, nano (1999) offers a gentler, mode-free terminal editor with visible keybindings—especially “control x” to exit—while staying intentionally lightweight and less IDE-capable.

Graphical editors shift the center of gravity toward the mouse and click-based editing. Notepad (1983) helped popularize the mouse on MS-DOS, and Notepad++ brings that click-and-drag workflow to programmers with macros and plugins. For web development, Adobe Dreamweaver is described as visually polished but slow and dated, with first-class support for older frameworks like jQuery and Bootstrap. The modern default for many developers becomes Visual Studio Code: approachable for beginners, powered by a large extension ecosystem (including likely support for tools like Tailwind), and capable of remote and container-based workflows. Its open-source, Electron-based architecture makes it easy to extend, though it carries a reputation for high memory use.

Platform-specific IDEs then take over when the target ecosystem demands it. Visual Studio for .NET is positioned as a comprehensive IDE with strong completion, refactoring, and debugging for languages like C++ and C-sharp—powerful but overwhelming until deep in a project. JetBrains WebStorm is framed as a “gold standard” for professional development, with polished refactoring (like extracting React UI elements into named components) and less need for plugin juggling, at a cost of about $69 per year.

Finally, the direction of travel points to the cloud: browser-based editing via vscode.dev, GitHub Code Spaces, and browser-run tooling like StackBlitz using WebAssembly. The core message is pragmatic: choose tools that match the platform and workflow you’re building, because the editor’s real job is to reduce friction—not to impress with features you won’t use.

Cornell Notes

The editor landscape runs from modal, terminal-first tools to full IDEs and cloud workspaces. vi (1976) is fast but requires mode switching and memorized commands; Emacs (built at MIT by Guy Steele) is non-modal and extremely extensible but can be complex to configure. Vim (1991) makes vi more practical for daily coding with syntax highlighting, multi-level undo, and plugins, while Neovim (2015) improves scripting by embedding Lua. For simpler terminal editing, nano (1999) avoids modes and shows keybindings. In the GUI era, Visual Studio Code dominates for extensibility and extensions, while Visual Studio and JetBrains WebStorm focus on polished, platform-specific IDE features. The next shift is toward cloud-based editing and browser execution.

Why does vi feel fast once learned, and what makes it hard at first?

vi’s speed comes from modal editing and command-based operations. Typing requires entering insert mode (pressing “i”), then escape returns to command mode for actions like saving and deleting. Deleting lines can be done with keystrokes such as “double d” or “3 d,” avoiding mouse highlighting. The difficulty is memorizing the command “tricks,” plus vi’s missing modern conveniences like syntax highlighting and robust plugin support in its original form.

How do Emacs and vi differ in philosophy, and what tradeoffs follow?

Emacs is non-modal and menu-friendly, so users don’t need to learn multiple modes before acting. It’s also highly extensible, integrating tools like debuggers, file management, and terminal emulation into one customizable environment. The tradeoffs are physical and cognitive: heavy modifier-key usage can cause “emax pinky,” and the editor’s scale—over 10,000 built-in commands—means productivity depends on investing time in learning and building macros.

What improvements made Vim more attractive for everyday development than vi?

Vim is described as a superset of vi’s core functionality, but with features developers rely on: syntax highlighting, multi-level undo, and plugin support. It also includes “vim tutor” to teach basics, and the learning process is framed as improving speed by keeping fingers on the home row. The result is a workflow that blends modal editing with IDE-like expectations.

How does Neovim modernize Vim’s customization, and why does that matter?

Neovim (2015) is presented as faster than Vim and addresses customization by embedding Lua as its scripting language. The motivation is that Vim script is criticized as poor, while Lua is characterized as fast and proven—also used by platforms like Roblox. This matters because scripting is how developers tailor editor behavior, automate tasks, and extend functionality.

What makes Visual Studio Code a default choice for many developers?

Visual Studio Code combines an approachable graphical interface with shortcut-driven productivity similar to text editors. Its major advantage is an enormous extension ecosystem, making it likely to find support for specialized tooling—for example, Tailwind. It’s open source and built with Electron (web technologies), enabling easy extension, and it can support remote editing (e.g., on GitHub) and cloud/container workflows (like Docker). The downside mentioned is a reputation for being a memory hog.

Why might a developer choose Visual Studio or WebStorm instead of VS Code?

Visual Studio is positioned as a true integrated development environment for .NET-focused development, offering strong completion, refactoring, and debugging for core languages like C++ and C-sharp. It can feel overwhelming early due to extensive tools and wizards, but becomes valuable deep in projects. WebStorm (a JetBrains editor) is described as more polished and reliable, with less need for plugin installation and strong refactoring—such as extracting a React UI element into a named component—at a cost of about $69 per year.

Review Questions

  1. Which editor’s modal design requires switching between insert mode and command mode, and what specific keystrokes are used to delete multiple lines efficiently?
  2. What scripting change distinguishes Neovim from Vim, and what language is embedded instead?
  3. Compare the main reasons developers might prefer Visual Studio Code versus a platform-specific IDE like Visual Studio or WebStorm.

Key Points

  1. 1

    vi’s modal workflow can be extremely fast, but it demands memorizing commands and accepting missing features like syntax highlighting.

  2. 2

    Emacs trades simplicity for extensibility, bundling many developer tools into one environment at the cost of a steep learning curve and heavy modifier-key use.

  3. 3

    Vim’s popularity comes from adding practical IDE features to vi’s core editing model, including syntax highlighting, multi-level undo, and plugins.

  4. 4

    Neovim’s customization direction shifts toward embedded Lua to improve scripting quality and performance.

  5. 5

    nano offers a low-friction terminal editor experience by avoiding modes and displaying keybindings directly in the interface.

  6. 6

    Visual Studio Code wins on approachability and an extension ecosystem, plus support for remote and cloud/container workflows.

  7. 7

    Platform-specific IDEs like Visual Studio and JetBrains WebStorm emphasize polished refactoring and debugging, often with less reliance on extensions but more upfront complexity or cost.

Highlights

vi’s speed is rooted in modal editing: “i” enters insert mode, escape returns to command mode, and line operations like “dd” or “3 d” avoid mouse selection.
Emacs is non-modal and highly extensible, but its scale (10,000+ commands) and modifier-key reliance can make early use feel punishing.
Vim’s daily-developer appeal comes from syntax highlighting, multi-level undo, and plugin support layered onto vi’s core.
Visual Studio Code’s biggest differentiator is its extension ecosystem, making it easier to find tooling support such as Tailwind integrations.
The editor future is heading toward cloud and browser execution—vscode.dev, GitHub Code Spaces, and StackBlitz-style WebAssembly workflows.

Topics

  • Vi Editor
  • Emacs Extensibility
  • Vim and Neovim
  • Visual Studio Code Extensions
  • Cloud IDEs

Mentioned