Earlier quoted context omitted.
> Also, one should keep in mind that having to apply personal patches is perfectly acceptable for suckless software. I don't get it. This patch increases the code base by merely 60 lines of code (104 insertions, 44 deletions). Is 60 lines already considered bloat, in a verbose language like C? Also, is this meant to lead to fewer complexity? Maintaining the patch separately from the code base is nothing but cumbersom…
> Is 60 lines already considered bloat, in a verbose language like C? Due to high code quality, removing even 10 lines is an achievement for suckless.org projects. Try it yourself and submit a patch to mailing list if you succeed. > Also, is this meant to lead to fewer complexity? Maintaining the patch separately from the code base is nothing but cumbersome. Maintaining feature as a patch prevents you from weaving it…
I'm used to achieve this by keeping each topic in a separate module (in C: function or file, in other languages: module, class, whatever). You'd then have clear entry points into that module.
Interestingly, the given patch isn't structured like that. So I'd argue that code would benefit from becoming a first-class citizen in the code base. As a patch it just gives the illusion of a well-separated feature. (Because a patch file is always a single file, no matter how much the changes are scattered around in the code base.)
> I have some pet suckless inspired projects. During development I introduced some useless features such as pthread support just because I learned about them. Then once I realized they are useless I removed them. It greatly improved code structure.
I fully agree that removing useless features does not only shorten, but simplify code. However, given that by far not everybody uses screen/tmux, I disagree with the "scrolling is useless" assumption here.