PDE: A different take on editing code
TJ DeVries2 HN recommenders · recommended in 2 months, 2022–2025
talk · general · evergreen · 2022–2025 on HN
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.
Up next
15 mo on HNRailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
15 HN recommender · 2015–2025
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
12 HN recommender · 2014–2024
11 mo on HN🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
DevTernity Conference
11 HN recommender · 2018–2024
11 mo on HNBret Victor - Inventing on Principle
Rui Oliveira
12 HN recommender · 2013–2025
11 mo on HNSolving Problems the Clojure Way - Rafal Dittwald
Clojure/north
10 HN recommender · 2019–2025
11 mo on HNDebugging Under Fire: Keep your Head when Systems have Lost their Mind • Bryan Cantrill • GOTO 2017
GOTO Conferences
8 HN recommender · 2018–2025
10 mo on HN"Performance Matters" by Emery Berger
Strange Loop Conference
12 HN recommender · 2019–2025
10 mo on HNA Tour of the Acme Editor
Russ Cox
11 HN recommender · 2012–2026
8 mo on HNTech Talk: Linus Torvalds on git
Google
9 HN recommender · 2007–2023
9 mo on HN"How NOT to Measure Latency" by Gil Tene
Strange Loop Conference
9 HN recommender · 2015–2026
9 mo on HNRuby Conf 12 - Boundaries by Gary Bernhardt
Confreaks
8 HN recommender · 2015–2024
9 mo on HNUsing Python to Code by Voice
Next Day Video
12 HN recommender · 2013–2025
8 comments from Hacker News
> 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: ▶ this video
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] ▶ this 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]: ▶ this video
TJ actually has a video on this very topic ▶ this 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.
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]: ▶ this 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]: ▶ this 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: ▶ this video [2] Easily is relative. IMO each little customization is quick, but you'll end up customizing hundreds of things over time.
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. ▶ this video