Or because that open-source software is user-hostile and has no serious argument for its use for 99% of people. When users don't do something you like, in almost every instance it's your failing rather than theirs.
Blame isn't singular - describing users as lazy, including ourselves for using this website, both encourages individuals to exert more effort adopting better solutions and just plainly characterizes the problem.
I do agree that the most productive way forward is for Free software to accept this facet for what it is, and to step up its quality.
What? What if I wrote it for my own use? What if it's among the thousands of web apps meant to be installed on a server you control?
There's nothing inherent about the technology that requires third party control.
I think web-apps are generally user-hostile. You are correct that there is nothing inherent about it though.
I think the same could be said for FOSS: There's nothing inherently user-unfriendly about it, it just has a tendency to go that direction.
Sure, some of these release their code as "open source" and you can setup your own copy. But I've never heard of one where the majority of users actually do so [0].
There are some locally-hosted applications that are intended to make themselves available on :::80 that use a browser as a UI toolkit, similar to how we can have a native app that links a browser as a library. But such things generally aren't referred to as webapps. The network transit seems integral to this term.
[0] Well there's probably some developer-focused tools where this could be the case because said developers already have to deal with "web stuff" and so the additional overhead isn't as high. But this doesn't generalize to all users.
We're obviously not disagreeing about the utility of local software, just that of "web apps". I assert that the platform itself is inherently biased towards making non-Free software. It's not impossible to create something that qualifies as a web app and Free software, it's just that this puts it in one small corner of an ecosystem based on user-disempowerment.
Obviously many web technologies could be useful to build freer systems (like say if DNS/HTTP were replaced with something distributed), but as it stands the term basically refers to the modern generation of proprietary software.
I get that a lot of by-day web developers want to apply their skills to build Free software, and that is great. They just need to be aware that it's an uphill battle against one's own assumptions, and building the same type of centralized systems desired by business interests (but releasing the code) likely does not suffice.
There are 188 PHP web applications in that list. 60 NodeJS web applications. 86 Python web applications. 25 Ruby web applications. I can go on.
You're just being silly by pretending that this segment doesn't exist.
> I assert that the platform itself is inherently biased towards making non-Free software.
As opposed to native applications? I recall those being distributed through "app stores" where you have zero access to even the binary, nevermind the source code, and demand payment in return for access to either the application or features within that application.
Does that mean native applications have a bias toward "making non-Free software"? No. And the answer is no for web as well.
> They just need to be aware that it's an uphill battle against one's own assumptions, and building the same type of centralized systems desired by business interests (but releasing the code) likely does not suffice.
I have no idea what this means, but based on your previous statements you're assuming a multi-user registration model with a centralized database you find on every commercial site which is a pre-requisite to monetization.
You don't need to have that for a web app. At all. You can build a calculator as a web app. Or any desktop or command line application as a web app. With no registration or database required. Just type in a web address and start using the app. There is nothing inherent about web development that requires a user-based system.
There is no uphill challenge to building free software using web. Now, you obviously won't have as many users of your software because getting things running is much more difficult ... but that's changing with platforms like Electron.
But, let's take a look at the actual technologies behind the "web":
1. A naming system/transport protocol
2. A document markup language
3. A virtual machine for sandboxed code.
(2) is user-friendly (PoLP). But creating a Free app implies ignoring the defining "web" features of (1) and (3)!
If a single user is the only one accessing a given name, then that naming system has basically been made irrelevant. (If multiple users are accessing a given name, then per HTTP only one is in control of that name, and thus we deviate from free software).
If a user controls updates to the code and (in theory) audits it, then the primary purpose of the sandbox (executing random third-party specified code) is gone. The battle-hardened sandbox is nice for security, but the functionality is otherwise indistinguishable from any other language.
Why should such an app be called a "webapp" if it does not utilize most web features?
> based on your previous statements you're assuming a multi-user registration model with a centralized database you find on every commercial site which is a pre-requisite to monetization
I am not assuming this - I am noticing that a large majority of released projects are. Either due to lack of developer thought about repudiating "web" assumptions, or deliberate corporate "free-washing".
Platform defaults end up defining the culture of a platform. A good question to ask yourself - if you were designing a Free calculator app and wanted to show a friend, would you send them the files you're editing and they'd set it up on their own httpd to try it out, or would you end up sending them a URL to your server and thereby undermine their freedom?
[0] Although as I've said, many of those PHP etc apps are not actually Free - for instance the blog platforms.
No. It's not irrelevant at all. It's how you "execute" that specific software. It serves the same purpose as a filename for a binary on a filesystem.
> If a user controls updates to the code and (in theory) audits it, then the primary purpose of the sandbox (executing random third-party specified code) is gone.
No. An audit is never perfect and that even assumes you perform one. While I frequently modify the software I utilize, I almost never audit the entire codebase, so a sandbox is quite useful.
> if you were designing a Free calculator app and wanted to show a friend, would you send them the files you're editing and they'd set it up on their own httpd to try it out, or would you end up sending them a URL to your server and thereby undermine their freedom?
I did just that. I sent them a URL. Here's the rub, it's a purely front-end only web app. No backend. That means their browser downloads the entire codebase instantly. The codebase is easily accessed, saved, and modified by them, if they want to.
The calculator was possible over a decade ago. With some of the stuff hitting JavaScript within the last few years, you can literally build anything you want in that fashion. Games, communication apps, etc.
This is harder than it already being local, or apt-get install turning into apt-get source. Likely, if they find your app interesting they will keep using it directly from your URL and end up at your mercy.
And that's the crux of my point - the assumptions of the platform are at odds with software freedom. Not in a way that is incompatible - as this is computing, we are always free to ignore the properties an abstraction provides and build a completely new one over it.
Your argument is analogous to a C programmer insisting that if one just follows the rules, C is just as expressive and safe as a higher level language. People are not perfectly rigorous, and the properties of the basic abstractions matter.
"Web" implies executing code off of a third-party server. Yes, there is a pathological case of having your own server (and that may become more popular one day), but that does not change the term's current wider definition and the general culture around it.
You have the same issues with the centralized package distribution system you're pushing? You're reliant on a 3rd party. How many apt-get the source? Saving source on a front-end web app is as simple as clicking "Save As" in the browser and you get the bonus of not having to compile anything. It'll just work.
> Your argument is analogous to a C programmer insisting that if one just follows the rules, C is just as expressive and safe as a higher level language.
Not quite. You're simply not seeing the levels of abstraction present in your ecosystem because you're used to them. Centralized repositories, binaries, toolchains, etc.
> "Web" implies executing code off of a third-party server.
If you follow this logic, your apt-get example is executing binaries off a 3rd party server. You sure you want to go there?
There are very few open software engineers who like improving UX. Since it's free you have to like it to do it, so I don't know if this will ever change.
I like improving UX but when I look at many open source projects from the outside they are run by cranky ubernerds who triumph technical merits above everything else and I can't imagine them being very cooperative with someone whose specialty was "UX."
Sounds like you've never actually tried.
I maintain an open source project (https://conversejs.org) that could benefit greatly from the expertise of a UX pro. However, to date no-one has approached me to help with this (specifically regarding UX). If you or any other UX people here are interested in helping out, hit me up at https://opkode.com/contact.html
I definitely don't have a lack of respect for UX people, having been fortunate enough to work with someone whom I consider to be a brilliant UX designer.
Good software takes strategy, UX, visual design, solution architecture, software development, QA, DevOps, post-launch support, KPI monitoring & analysis, marketing... and probably a few other skill sets to really have it thrive.
The trouble with many open source projects is that they are one-man endeavors, and the person who started it cares more about control than quality outcome. "This is MY pet project..." is a horrible mentality to take when shopping for a partner.
The moment the dev thinks, "Gosh, I'd rather spend my free time watching a baseball game than making those 50 changes the UX guy asked me to make... especially since all I really wanted from him was a color pallet..." that's about when the partnership dissolves. (Misunderstanding about the different areas of expertise intentionally included.)
One person can't think time is worth more than a teammate's. Good software requires compromise and horse trading and a lot of planning.
You typically need money to keep everyone interested.
A few Reddit communities sprung up that track content deletions, like /r/undelete, and the sheer amount of stuff that winds up disappeared on arbitrary whims, rather than violation of a stated objective rule, is huge. Coincidentally, when the moderators of those places show up, the attitudes on display are the worst kind of toxic.
Well, other than the fact that a whole lot of the software involved in using web forums, on both the server and client end, is "decentralized free software".
And the fact that other software (much, but not all, of it free) was adopted for discussions before web forums got popular. Web forums got popular because -- on both server and client end -- most people are going to have the tools anyway, so adopting a whole new software (free or otherwise) stack for discussions is unattractive.
And it's certainly not decentralized - each instance of the software is its own walled garden. I can't install my own instance of say phpbb and use it to communicate with an existing forum.
Sure, and then we wouldn't be talking about reddit but rather whatever site was actually free at the time.
The only reason web forums exist is because people are lazy about adopting decentralized Free software. Yet the owners of these centralized services, as well as paternalistic spectators, end up deluded that the communities they serve are "theirs" to mold and control. In reality these sites' power is but an epsilon, and they should be thankful they can at least exercise it to generate revenue by surveilling users who are too lazy to protect themselves.