Description
Because free software should literally beg its users to tinker and play with itself!
Sadly, most desktop free software does the opposite, sweeping anything that requires any kind of learning or understanding (including programming, graphics design, and testing latest code) under the rug in an effort to be user-friendly, ending up feeling like proprietary freeware. Ironically proprietary websites feel more free than most desktop free software, since you can right-click any element and inspect it, and use Tamper Monkey to easily inject user code...
Why is this important? As a computer-related hobby, nowadays free software volunteering has to compete with addictive games and social media, meaning that any given wasted second can mean all the difference between a user becoming a contributor and them simply giving up. Anything but obvious and single-click initial setup, reasonable download and initial build times, less than 5 second incremental build and launch times, and instant access to source code and documentation of any class or function (even those in external libraries) should be considered unacceptable.
Freedom is free software's best advantage! Let's provide an environment where the software itself gently nudges people towards learning what they need to make use of software freedom, and where learning is natural, gradual, smooth, and actually fun for as many people as possible! Imagine for a moment that free software became a video game - in its current state it would be either universally panned by critics for its tutorial system, or regarded as a niche game only for the most hardcore players. What we need to do is to turn FOSS modding and contribution into an "easy to learn, hard to master" kind of game!
Here's a very relevant blog post: https://www.inkandswitch.com/end-user-programming.html
What it will take
- Use the official KDE public outreach channels to spread the word! The world of build systems, documentation generators, IDEs, and packaging is in state of complete chaos, and cooperation between all of them is required to make fully automated compilation from source and setup of proper development environments possible, so it's important to get as many free software fans as possible to agree that the feeling of freedom in free software is something that's worth striving for.
- Let's not be afraid of knowledge! Teach users about and ideally provide access to as many internal OS subsystems are possible.
- Reduce the time spent waiting or searching for documentation while modifying software to the minimum.
- Reduce the amount of necessary boilerplate (for defining properties, for example) to the minimum.
- Add plugin support and API documentation to as many KDE applications as possible.
- Add "Create" and "Edit" buttons to everything: widgets, themes, icons, applications (both in Discover pages and "Help" menus), application plugin (both in Discover pages and "Plugins" configuration pages), etc. Clicking them should set up the development environment so that code completion, code navigation, unit testing, and running works out of the box.
- Add UI for applying patches (e.g. from forums and blog posts).
- Add UI to port local changes to newer versions of software.
- Add UI to contribute local changes to upstream projects.
- Show links to source code of applications in Discover.
- Show alphas, betas and nightly builds by default in Discover, allow installing them in parallel with stable versions.
- Allow installing Git master and Git branches via Discover (should be compiled automatically on the user's computer).
- Make developer documentation translatable (e.g. see PHP documentation). No reason to exclude people who don't speak English well from the feeling of freedom!
- Windows users shouldn't feel excluded either: the "Edit" button should work there as well!
How we know we succeeded
- More themes, widgets and plugins.
- More new modders and contributors.
- More regular users testing latest code, resulting in bugs being caught earlier.
- Regular users applying patches directly from blogs and forums, and thus gaining more appreciation of software freedom.
- Maybe even curious regular users getting interested in software development by clicking "Edit" on a random widget to see what's inside...
I am willing to put work into this
- @churaev
- add your name
I am interested
- add your name