Thanks! Interesting. A related Q perhaps? why do we feel we should keep *adding* functionalities to SW? What's wrong with considering that a piece of SW (say Libreoffice) is ok as it is, and all the work has to be devoted to maintenance/documentation/portability, not an endless pursuit of functional extensions. My personal interpretation of "infrastructure" in this general context is related to the notion of very slow (or even stopped) evolutions. My 2 cents...
> Apple kinda invented the shackle-feat “use shiny computers without understanding them”. > Now we have to recreate that feat without the shackles so people are able to keep up without losing their freedom. We have to do additional work, because society is being shaped by those who made the shackles.
@flomaraninchi@ArneBab@zimoun specifically in FOSS, I think it comes from a culture of co-design with your user base, "having" to answer to user requests, bug reports, etc. It takes really experienced maintainers to say upfront "no" when a requested feature is not in line with the original vision (assuming there was one).
There's also Lehman's 1st law of software evolution, of course, but it is not clear cut on new features vs context adaptation (e.g., platform changes).
Thanks for the text above. It's not really what I meant, though. The question I ask myself, colleagues, students, and developers in companies, is the following: ok, we know companies have to give their customers more than their competitors, and this drives a spiral of new versions; but even with free SW, why is the idea of improvement being equal to adding new features so pregnant? Why is extensibility considered a universally desirable property?
@zacchiro and you can sidestep Lehman’s 1st law by embedding into a system that evolves — you could argue that this is the case with every commandline application that’s built to work well with pipes.
Though changes in other programs — communication with them — will still make some change desirable.
@zacchiro That said: even with that design for minimal maintenance and simplest possible option, there are already a ton of things I could work on that are in line with the original vision.
- Highlighting the code in many different environments (web, org, LaTeX, ...). - More editor support. - Direct integration in other Lisps. - Extending the theater game script with images and sound. - Deploying to Android. - Packaging. - ….
@flomaraninchi Extensibility (allowing users to mold the software in the way they want) has a lot to do with user freedom; I’m not surprised it’s often viewed as desirable in free software circles.
Equating progress with adding new features is a different story though; it’s almost the opposite of extensibility.
@ArneBab@zimoun@zacchiro@flomaraninchi To paraphrase Clinger et al. (R5RS): software “should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary”.