I feel there's this divide between FOSS which is "User Participatory software" versus "Father Knows Best Architecture".

The former encourages the user to learn, extend, participate in the software's design. The latter discourages theming extension and introspection of the program, discourages attempts to reproducibly package and distribute the software (here's a container instead), acts outright dismissive towards users on issue trackers.

I *also* think that maintainers, in general, don't get enough thanks for the work they do, in general. It's tough, usually underfunded, and unappreciated work. And decisions need to be made.

But the better projects encourage their users to learn to be participants, empowered.

@cwebber haha yea i wonder which is mastodon (father eugen stares at me)

@cwebber Software for programmers vs software for normal people

@gargron I'm not sure where you're coming down on this post. I def think software for normal people is great, widening the tent, etc. I coined (afaik) the term "user freedom" as a contrast in my talks vs "developer-only freedom" for a reason.

But I don't think this is really a dichotomy. The best systems are those which give an on-ramp towards their users learning to participate... not just as coders, either.

@cwebber I do think it's important to actively model good participatory dev cultures.

Cause let's be honest, it's not easy to do! It takes work to create, and requires an active effort to maintain it.

On projects with millions of users, most of whom won't touch a code editor even if you begged them to, I've also lived the experience of getting jaded as priorities of "just make it work consistently" take over.

I think projects can succeed at this, but they have to commit time and energy.

@cwebber it's also important to recognize the *bursting potential* of the many users of a big project who *do* have an interest in getting involved, anywhere from the deepest code wizardry to documentation, style, and graphic arts.

some of this energy can be directly "harnessed" for the main project's goals, but a lot of it will seem like it's doing something else entirely. it's important to encourage this, *even if you can't use it or monetize it yourself*, because the energy feeds back!

@brion @cwebber this. I am really astounded by those large projects claiming to be both doocracies and managing to go forward without a very detailed roadmap.

@cwebber I would say that there's a divide between "FOSS" and software that respects the users freedom.
Typically "open source" is not far removed from proprietary software, and proprietary software companies love to say "free and open source" when they mean; gratis (at first), source available software.
Meanwhile, the meaning of free software cannot be twisted to proprietary interests.
@cwebber It's like some FOSS projects are mutual aid, and some FOSS projects are charity
@cwebber This is why there is projects that in practice (licensing being a very small part) are "open-source released; proprietary developed".
But the container extreme is basically just full proprietary…

Same thing for electron stuff.

@cwebber I feel like it’s a corollary of Conway’s law: if you build an autocratic or a corporate structure around your software project, it may be free, but it won’t encourage user participation, possibly not even in the form of allowing for customization, “unofficial builds”, and so on.

@cwebber It also looks like there’s a discourse by “professional developers” that we should do away with that utopia of putting users in control, when we professional know users don’t understand a damn thing and are going to break our product.

@civodul @cwebber
Users will invariably break their software. And let's be honest, pro do it on a regular basis.
What they mean is removing power from *other users/people* but also often themselves.

What should be there is making things consistent enough that things like backups and rollbacks/resets can be done, which benefits everyone.
OpenSolaris had integration of rollbacks of system upgrades in ~2010, now what system also has that today? MacOS with something like time-machine and maybe FreeBSD? What are the others doing?
@lanodan @cwebber @civodul Nix, Guix, Fedora Silverblue/Kinoite, GNOME OS and soon SerpentOS
@xerz @cwebber @civodul Well Nix mostly threw away the notion of config outside of packages but for the others let me be more clear: Not just the packages, that's horribly trivial, it's like the second feature a decent package manager should have.

OpenSolaris experience is:
- Specific number of regular snapshots of a filesystem/subvolume? It's just a setting.
- You upgrade to a new system release? It clones the current system subvolume to a new one (which costs ~nothing thanks to copy-on-write) and does the upgrade only in the new subvolume, you get a new grub entry so at boot you can pick an old version if the new one had a problem.

Also means that release upgrades are atomic, so powercuts aren't a disaster anymore.
@lanodan @cwebber @civodul …wait, aren't all package managers I implied atomic and integrated with Btrfs subvolumes?
@xerz @cwebber @civodul Well maybe horribly recently then, outside of Fedora, they are pretty niche systems.
(And I never tried GNOME OS, basically because it's gnome)
@xerz @civodul @cwebber And looking at it again, Fedora Silverblue/Kinoite seems to be about as user-friendly as being stuck on a live system without much persistance.
An operating system needs to be something one can modify, closing things down is as I put earlier the wrong direction, flatpak is closing things down so much, you almost need to break it to actually modify things.

@cwebber I haven’t read it but I think this is what they meant by “the cathedral versus the bazaar”, right?

@k @cwebber The Cathedral and the Bazaar is more about how you handle the divide between core developers and other code contributors.

It's not completely unrelated, but the original terms and discussion don't really talk about non-programming users and non-code contributions.

@clacke Well that's more down to esr's lack of imaginative scope than anything else. @cwebber @k

@pettter @cwebber @k Sure, but since he coined the terms that's what they mean and rather than confusing the issue by repurposing them it would be good to use other terms.

@clacke Mm, a good point. Also just to avoid an association with esr at all, really. @cwebber @k

@cwebber what would be some of the best examples of software fitting the extendable, participatory model, that are also easy to pick up, comprehensively functional and user-friendly for those who just want to use them as-is?

There are common examples often thrown around of things like Emacs at one extreme, and GNOME (arguably) at the other. What are good examples in-between, or spanning the approaches, though?

Genuinely curious where to look for this.

@dctrud @cwebber GNOME is more in the middle than people like to credit it for, meanwhile KDE makes tweaking easier but the amount of options gets overwhelming for more casual users – in both cases, hacking the codebase itself can be complicated tho

@xerz right. The 'arguably' I mentioned on GNOME hints that I might feel the same also. Desktop Environments are a bit special, though, as huge projects with many sub-components that can have very different models. I was wondering what are good applications to look at, that might be more standalone. @cwebber

@cwebber make visual programming languages which fundamentals remain constrained to be simple, automate memory management, do strict typing and type classes, and you might start getting there someday
@cwebber (BTW as soon as a C FFI, a mandatory AOT compile stage, or a build environment install requirement get involved, things start getting messy)

@cwebber I feel this even as an experienced programmer sometimes, most often when it comes to asking questions about build process. "just use our prebuilt package" "why would you want to do that?"

@dthompson @cwebber

> Are you looking for: anki?
> Are you looking for: mozilla?

@dthompson @cwebber I had a conversation about that with a friend working on a "devops manifesto" recently and one question was what I consider "working software". My answer was basically "well documented on building and usage", w/ the example of edbrowse.

Why? I wanted to make sure someone's blog fix for me (lynx user) didn't break a fix for someone else (edbrowse user) and in about 30 minutes of reading the docs I was able to build, run, and verify nothing broke.

@cwebber FKB projects also tend to become closed or semi-closed (open core).


I like where you are going with this and am curious if you could unpack more by giving specific examples of each and how things play out from the user's perspective.

@cwebber "Participatory Software" is a great phrase. So much of what I'm doing right now is predicated on this idea that participation is the only path forward for culture, just generally.

@ajroach42 @cwebber the was a org called that #PCF that had a bad/good #NGO history of #openweb #techdev that in the end did MUCH more damage than good.

Best to to repeat this #techchurn

@Hamishcampbell @ajroach42 heh I used to work there

it was... interesting. they did good work while I was there. After I was laid off I got the job at CC, and around then is when they started making less pleasant decisions like making proprietary software, etc. And "open video" tried too hard to be a big tent with all the corporate players where the term became more or less nothing.

But it was a formative time for me, and I'm happy for the experiences.

@Hamishcampbell @ajroach42 Just like "freedom" you have to do some real work around the term to clarify what you mean. Definitely a lot of "pro-freedom" people out there that I... don't think really are

@cwebber @ajroach42 aha, we did the same tech projects but they always had way more resources, each time we would switch to there code base and each time there projects were pervert to #NGO agenda then died from lack of community support. It was a part of the death of the #openweb

Went to visit them in Rochester, nice #fasherniata playing at radical the lot of them.

Sad to kill social value for #NGO careers though, bad outcome.

@cwebber @ajroach42

Am kinda annoying with my grassroots #DIY #4opens tech pushing. But the is a strong historical reason for no surrender on this :)

The #NGO people are convincing worshippers of the #deathcult and keep killing humane #openweb outcomes, the is a 20 year history to look back on.

@cwebber That's why we need software that has the "Emacs nature" if we care about freedom for users. But we also need good defaults, arguably unlike #Emacs .

@cwebber Creative Commons has variants which prohibit derivative works and commercial usage. Playing devils advocate for a moment, one could make a partially open license for those who wish to freely distribute their source code without allowing the user to tinker with it. I'm not saying I'd ever use a piece of software with such licensing. It's more that at least that way it would be more clear that this is a project to stay clear of.

@w96k I agree. It doesn't start and end at programming languages, but that's a very visible area... especially as a programmer. Sadly what Emacs has lacked is getting itself out there and being something users today can really embrace and use, and that's just as important. I'd really like to see more work go into Mousemacs and Guile Studio, the way Spacemacs has.

Blender is an interesting example of software which is extremely extensible and at one point was considered really "hard" to pick up but... those complaints don't exist as much any more, partly because things *have* gotten better, more familiar, without a real loss for experienced users. Geometry nodes are also a great example of something empowering that's accessible to people.

The only compalint I'd make about Blender these days is that dropping the colors on icons was a real loss. But that's hardly just Blender, they're reacting to the times of design.

@w96k @cwebber Wait, how is C more free than Python.
Also, this is old news, but Lisps letting the developers create entirely new languages for each project is not necessarily a good thing.
As a practical example: I could write and test a patch for Yggrasil in about 2-3 hours that added an extra CLI argument, with practically 0 experience with Go or the libs it uses.
If new users can't make sense of the code, then it's not "user participatory".

@csepp @w96k I've understood more code in Guix than I've understood in any other project in my life.

The whole "lisp isn't possible for users to understand" is a myth.

@cwebber @w96k Guix does restrict what parts of Scheme it uses, like functional purity being somewhat enforced.
To clarify, I do think lispy syntax and most of the semantics are pretty good, but it's not true that a completely unrestricted language is optimal for users. Also if the language is too dynamic, the compiler suffers and users with cheap machines suffer.

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!