3 ms·
Taking Obsidian and VsCode as examples of the unix/microservices philosophy is very bizarre. VsCode is in many ways a philosophical successor to Emacs and sits
by Barrin92 3y ago
Taking Obsidian and VsCode as examples of the unix/microservices philosophy is very bizarre.
VsCode is in many ways a philosophical successor to Emacs and sits on the opposite end. Yes, it has plugins but it is designed from the top down to work in a particular way, and everything integrates with it. VsCode Extensions don't function on their own, they're not composable tools, they don't expose any agnostic interfaces (except for the LSP). They're designed to work well within the existing ecosystem of VsCode.
It's essentially a lesson in systems thinking. Paraphrasing Russ Ackoff, the complexity of a system is the consequence of the interaction of its parts, not the parts themselves. Microservices and unix tools always ignored this, which is why they fell out of favor. I can split one complex thing into a dozen simple things, but that doesn't make my life easier, because then all the complexity is in glueing them back together. And even worse improving one part doesn't mean you improve the system you care about.
Ackoff always used to give the example of a car. You take the best part of all cars in the world an put them together, you don't have a great car but a pile of junk, the parts don't fit. This is also the issue of unix tooling and microservice architectures, people optimize for the wrong thing.
- grumblingdev 3y agoThe Atom editor was JavaScript + Electron same as VSCode. You could configure everything a lot more than VSCode IIRC. I was very excited initially. But I think perf issues did it in from this design choice. I'm keen to explore Emacs more. Plugin systems are one of the hardest things in software (but also look the easiest from the outside).