PDE: A different take on editing code
TJ DeVries2 HN recommenders · 2022–2025
88K views · talk · evergreen · Uploaded 2022-06-28
TJ DeVries coins the term PDE (Personalized Development Environment) to describe editors like Neovim that you shape to your own workflow. He contrasts this with out-of-the-box IDEs and discusses why customizable tools appeal to developers.
It is the cited origin of the 'PDE' term, which HN uses when discussing vim, Neovim and Emacs as personally customized environments.
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
40:20"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
1:03:55🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
DevTernity Conference
54:20Bret Victor - Inventing on Principle
Rui Oliveira
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
52:35Debugging Under Fire: Keep your Head when Systems have Lost their Mind • Bryan Cantrill • GOTO 2017
GOTO Conferences
42:15"Performance Matters" by Emery Berger
Strange Loop Conference
23:16A Tour of the Acme Editor
Russ Cox
8 comments from Hacker News
One of the neovim devs released a video just a couple of days ago on the topic. He suggests neovim (and vim, emacs etc) fall into a category between text editor and IDE. The term he uses is PDE (personalised development environment). In short, you have lots of power to customise your setup; you can give it some IDE-like behaviour but the way you do it tends to be by making personal choices of plugins and config. It's not just a text editor, it's definitely not 'integrated'. I'm inclined to agree with him. [VIDEO]
Worth it? Absolutely, without a doubt. Should you? Only if you find it fun, especially if you prefer the keyboard to the mouse, although you can definitely use the mouse in vim too. I would go with neovim over vim nowadays, and if you want something more familiar that will get you up and running more quickly, try AstroNvim [0]. Later on, if you also like to tinker, you can set it all up just the way you like it. I've heard of vim being called a PDE (personalized DE) [1], and I think that makes a lot of sense. [0]: [LINK] [1]: [VIDEO]
The advantage of (Neo)vim is that it lets you create a PDE (personalized development environment) [1] where you can customize every little detail to your liking easily [2] and as a result program and navigate at the speed of thought. It takes some effort and likely 20-30 plugins, but you get to learn a lot and IMO become a better programmer as a (unintended?) side effect. For me it's part of the continuous improvement to understand your tools. Last but not least it's just so much joy when you can envision a certain feature (e.g. I wanted to have a function header visible in the first line of editor even when the top of the function has scrolled off the screen) and either find a plugin or program it yourself. This is exactly the kind of primal joy that initially made me pursue the career of software engineer. [1] The concept of PDE is explained in this video: [VIDEO] [2] Easily is relative. IMO each little customization is quick, but you'll end up customizing hundreds of things over time.
For anyone not understanding why (neo)vim exists, or why some developers prefer it to IDEs, I suggest watching "PDE: A different take on editing code" [1]. It reframes (neo)vim as a "Personalized Development Environment". I've been using (neo)vim for years, and don't want to use anything else. It isn't just about productivity (I would probably be as productive in an IDE). It's because its _mine_. It's a highly customized environment, catered to my needs. [1] [VIDEO]
I think it's worth it, if you are a tinkerer and if you look at that kind of software as a "Personal Development Environment" a phrase I first heard in this video[1]. So, yeah the focus is on creating software that is tailored to your requirements. If your requirements are that someone else has to be able to use it, because you do a lot of pair programming, then that's something to consider. I've tried a lot of editors over the years... Currently I'm using neovim. It's been pretty nice--after some major adjustments. I like altering my configs and changing what's not working for me. Would I use it exclusively? No, but it's a nice tool to have in my toolbox. And with some effort it also can look very pretty. [1]: [VIDEO]
TJ actually has a video on this very topic [VIDEO] The tl;dw is that the term 'PDE' means the tool requires some work in order to personalise, but because neovim exposes a robust API that work is fun and rewarding. Additionally, he makes the point that because you configure it in the same language as you script it with (lua), you have much greater control over how all the pieces fit together.
> Lua is great, but one JSON file is even better I will never understand how you go back from a very customized editor setup to the one with "reasonable defaults with little to no things to configure". Great talk on this topic by TJ: Personal Development Environment: [VIDEO]
Well, I'd rather call it a PDE (Personal Development Environment)[0]. A term coined in the Neovim community that is pretty apt for Emacs too. Emacs can be pretty minimalist or maximalist depending on your preference, and it can be configured to have IDE-like features, though presented in a different way sometimes. Honestly, the big barrier to entry for Emacs is finding the time to configure it to your liking. The best way is to use it along with your IDE and existing tooling, slowly integrating Emacs into your workflow piece by piece and tinkering with it when you have a bit of time but always with a goal in mind i.e. window (pane in modern vernacular) management, showing symbol documentation in a hoverbox, adding spell checking to comments or inline git blame. And sure, there are lots of bits that you need to get used to at first, how copy and paste works out of the box without CUA-mode for one, but they're that big of a deal after a short while as some people make them out to be. I'll say this though, Emacs is like tiling window management, you either love it and extol its virtues everywhere or you look at its proponents like aliens from another galaxy. [0]: [VIDEO]