Did you ever wonder how far you can push simplicity?
Simplicity. I value it and I often ask myself how far can I go to make software I write more simple. I've already written about the tools I enjoy using according to this point of view. Recently I have opted for dwm as a window manager, it radically endorses this philosophy.
Dwm is highly configurable, but configuration is made in a .h file. You have to compile the window manager and relaunch it to see your changes.
Dwm does not come with what you have in bigger desktop environment like kde, gnome and even xfce. No visual configuration app, no indicator when you adjust sound or brightness, no notification system, no external drives automount… You have to dig into the primitives of the system and add what you need. It demands more responsability but the rewards are great performance and smooth usability.
I wonder how this philosophy can be applied to web apps. For instance, I don't need a full featured web framework when all I need is to deserialize HTTP requests and serialize responses. I don't need to carry a dependency to a huge library when I can safely recode a small subset. I do not need to split my app in several services when I'm in a small team and serve few users. Maybe PostgreSQL is enough for my needs. In the long run, I will save maintenance effort, have performance under control and keep hosting on budget.
The challenge here is to avoid simplism. When reimplementing a lib, ensure that you cover every edge case that could happen. When discarding your full featured framework, ensure you are not introducing security issues. It becomes your responsability. Can you handle it? Do you even want to?
PS: You can have a look at the philosophy behind dwm here.