3 ms·
I've been thinking a lot about this, too. I believe open source software is beneficial even for non-programmers; if anything else, the preservation of the soft
by linguae 3y ago
I've been thinking a lot about this, too. I believe open source software is beneficial even for non-programmers; if anything else, the preservation of the software isn't completely dependent on the goodwill of the company providing it when the source is freely available under generous licensing terms. If the maintainers of the software do something unpopular, then if enough people complain and there are enough technically-minded people willing to do something about it, then something will be done, which is more than what can be said compared to the "well, tough luck" attitude of many commercial software companies. While the FOSS ecosystem isn't completely immune from these things (e.g., the controversies surrounding GNOME, systemd, and Wayland and the resentment that some users have), it's easier for those using the FOSS ecosystem to adapt their computer environments to their own preferences rather than having to accept whatever Microsoft/Apple/Google/Adobe/etc. does. Personalization is an important part of the personal computing experience and should be preserved.
Even so, the complexity of today's software is a challenge to the idea of an open source software ecosystem where users are encouraged to use and modify their tools as they see fit. Even though I've been programming for more than 20 years, learning the code bases of modern desktop software products like KDE, GNOME, LibreOffice, and Firefox is a major undertaking. This is why I'm very interested in the research behind Alan Kay's STEPS project (http://rickardlindberg.me/writing/alan-kay-notes/tr2012001_steps.pdf http://rickardlindberg.me/writing/alan-kay-notes/tr2012001_s...), which attempted to implement an entire desktop environment (including an office-like application) in just 20,000 lines of code. The researchers accomplished this through the liberal use of domain-specific languages to define subsystems and applications. If our software stack was less complex and easier to understand, then it would be easier for users to learn how to understand and modify the code making up the software they use.