Part of the reason Open Source eclipsed Free Software was that it actually delivered on the promise. Open Source aimed squarely at corporate buyers. They didn't hear open[ly available] source [code], they heard open [to competitive tender second] source. And that's a great economic argument for a company that uses a load of software. Companies love having second sources, because two competing vendors are less likely to lock you in and price gouge. An open field of an unbounded number of second sources makes accountants very happy.

Free Software, in contrast, promised user empowerment. It came with a set of freedoms and the guaranteed rights to make the software do what you wanted. You, the end user, weren't to be constrained by the set of things that a vendor decided your computer should do. It could do whatever you wanted, you could build on the work of others to do it, and you could subsequently share your work to further empower other people.

And almost no F/OSS delivers on that promise. I have a PhD in computer science. I'm on the C++ standards committee. I have written code in OS kernels, compilers, and some of the lowest-level bits of modern systems. I've also written bits of a GUI toolkit, text layout engines, and other bits up and down the stack, even the occasional bit of JavaScript for the web. And yet, to me, most F/OSS applications are simply black boxes. If they don't do what I want, I have no more chance of modifying them than I do MS Office or macOS (actually less, because both of those have rich scripting environments). The only benefit I have is that it didn't cost anything, but my time is valuable and I'd happily pay a little bit for something that was a closer approximation of what I want from a computer.

Imagine how it looks to someone who doesn't program for fun.

And what does the FSF do to address this? It gives the world a more complex software license. Because surely that will be the thing that finally makes all software empower users! The fact that now exercising the four freedoms with their software comes with more legal risks will obviously make more people realise the benefits of them!

People who are serious about Free Software should look back to Smalltalk and Lisp systems, where every part of the system was introspectable and mutable. They should look at the amazing research in the last couple of decades on approachable end-user programming languages. They should abandon siloed app abstractions that exist to keep people locked into single-vendor ecosystems and build small, modular, reusable, components. Computers could be so much better than they are, and Free Software could enable system designs that are impossible with a COTS proprietary model.

EDIT: To be completely clear: I am 100% on the Free Software side of this. I want computers to empower users and I want to remove obstacles to this. I just think that almost everything the FSF has done since the publication of the first version of the GPL has been a hinderance to that agenda.

@david_chisnall
I'm just a random CompSci graduate. The only compiler I wrote was for a toy language as part of an assignment. None of my projects ever got to the point where someone would want to use them.

But I've seen many bugs that I traced down through layers of abstraction to their source. And for multiple of those, I wrote one-line patches that I apply locally to fix the issue for me.
And I sent some of those patches upstream, and some of them got merged.

1/

@david_chisnall
These bugs were anything from sway/wlroots not passing input to mupdf under Xwayland, to haproxy not counting dropped log entries when using a ring buffer.

And every time it was possible because I had the source code, and was allowed and able to read and modify it.
And also because I had read other FOSS code previously, which allowed me to learn how to read code, and what patterns to expect.

But you're right that this is a rare experience.
2/

@david_chisnall
And I wouldn't dare to try to read eg. Firefox source code, let alone modify it.

So we have long ways to go in terms of making our code simpler, easier for the end user to customize, and also educating people so that more of them can modify the code they use.

And I agree mimicking the ways od proprietary software in how we write free software is bad - which is why I don't like flatpak.

But I don't think Free Software has achieved nothing at all.

Now, how do I do my part?
3/3

This is why I'm more into open source than free software. It's just more practical for most people.

@david_chisnall i don't think rms ever mentally escaped the environment of the AI lab where programmers and users were the same thing

you can kind of see aspects of this too with how he approaches emacs, which i'm assuming he sees as the user empowerment environment. of course, only programmers care about emacs, but rms keeps posting on the emacs list asking about improvements to i.e. faces to turn emacs into a word processor. sometimes, someone meets him halfway with org-mode, but they're only more confused

@cb

the AI lab where programmers and users were the same thing

And not just programmers. MIT folks with, or on track to getting, PhDs in applied computer science topics. Not even mainstream programmers, let alone mainstream users.

@david_chisnall
Right now one of the best things about f/oss is that it doesn't spy on you (for the most part, there's a few that collect telemetry, but usually can turn that off) and respects your privacy (e.g. self host).

It's sad that it is missing many of the points you made.

I will say that is also why I like Python. It may not be as good as smalltalk/lisp, but the ability to monkey patch and in most casts readable code get shipped make it a lot easier than most other code bases.

@encthenet For most users, ‘respects your privacy’ is a fairly abstract benefit. The harms are diffuse and hard to attribute to a single product.

@david_chisnall @encthenet yeah, most people just assume nothing respects your privacy these days and don't care if one particular app does.

we need actual regulation

Thanks for the reminder to play around more with https://github.com/dbanay/Smalltalk/ I had started a Portfile for MacPorts and never got around to submitting a Pull Request (https://trac.macports.org/ticket/67457 for the curious I guess).

I don't know if you have had a chance to check out DynamicLand (https://dynamicland.org/)? Alan Kay had a hand in its creation too I guess? I was blessed to visit their earlier Oakland location and it was refreshing to be in an environment which felt as if it was moving the needle forward again! I've been in this field since the 1970s, so increasingly am dismayed by how awful so much of it is.

As for the rest of what you wrote?

I am not sure I have a strong distinction between what you (and sometimes others) draw the line between open and free software?

I get the impression you're trying to harp on the Free Software Foundation's concepts specifically?

It wouldn't be the first time I have encountered some with a too strong impression of language usage "thanks" to the FSF (to the point where I remember having to utilize DejaNews to show ioerror examples of the terms "open source" and "free software" in use in common parlance with time stamps older than the existence of FSF attempting to codify such terminology to their own whims, much to the detriment of mutual intelligibility for everyone else).

Like, yeah, I do get the "free as in freedom, not as in beer" but even going back (quite a ways now) to things such as Symbolics systems, which were open down to the microcode (so pretty free for user freedoms), but definitely not free as in beer (more like tens of thousands of dollars for a workstation, even a used copy of OpenGenera CD-ROM sold for something like $5000 the last time I saw one on eBay which was well over a decade ago).

Meanwhile: "because two competing vendors are less likely to lock you in and price gouge." I guess that's one potential perk; but in practice I find that having two or more interoperable standards is integral to peer reviewed science.

Free/Open source software are not necessarily a panacea in such regards.

For example, I find it depressing that seL4 apparently can only be built from source on Linux? So, it's not even a self-hosting OS? ;(

Personally, I wouldn't be wasting time on the FediVerse if I were locked into using Mastodon. Gratefully, snac exists as an alternative (and it is not a fork of Mastodon and there are other ActivityPub implementations which are also of different provenance from a code base perspective too, and that is, to me a net win for the whole of the FediVerse, in ways that BlueSky/ATProto for example have failed to demonstrate meaningfully in any manner, whereas decades old IRC? SMTP? DNS? HTTP? Still slap in such realms.)

Meanwhile, for-profit commercial vendors trying to out-whatever BS themselves with the "latest and greatest" e.g. WiFi 7/802.11be are maybe "interoperable" (surely the IEEE counts for something, barely), but have precisely: 0 libre/free open source driver support in any BSD operating system last I checked? Which is maybe "great" for those selling chipsets for low margins hardware, but awful for anyone who actually cares about source code and interoperability in a meaningful peer reviewed way.

I look at that landscape, and I think it has a lot to do with vested interests "gaming" the system to their own advantages. Heck, remember when Intel had 802.16 WiMax chipsets which had built-in mesh routing capabilities? But somehow the FCC restricted WiMax to more or less military and commercial frequencies (e.g. Sprint I think was maybe the only telephony provider which offered such things in the USA) and to me at least: that was a sign that there were bigger vested interests bribing (or as they would phrase it: "lobbying") the limited FCC members to sway technology to regressive, centralized, for-profit entrenched hegemonic powers; just like RCA bribed the FCC to outlaw FM Radio which drove Edwin Armstrong to bankruptcy and suicide, only to begin selling FM radios and settle with his widow, once Armstrong's patents expired.

Even Intel, when they were still at the top of their game in terms of market dominance, worth however many billions, couldn't make WiMax happen. Not in the USA at least. If you look into ongoing mesh routing developments (and their RFCs and their Linuxism heavy implementations)? It's still a grim space. Why? IMHO, because the vested interests like the status quo and having strangleholds on routing infrastructure.

To me at least, I agree with you that computers could be so much better than they are, because I have used better computers than the mainstream, for decades.

But the obstacles have little or nothing to do with the "Free" Software or COTS proprietary model in practice, and a lot more to do with vested interests and bullies exerting their dominance in the market. The COTS proprietary models, whether Micro$oft or Apple, or IBM/RHEL, still use TCP/IP, DNS, HTTP and will presumably continue to culture vulture whatever other future protocols may bubble up, if they can exact a profit from it. If anything, they tend not to innovate. Apple is almost invariably behind the curve technologically (removing headphone jacks from many of their devices in recent years, is technologically regressive IMHO). Micro$oft I think when I last did an evaluation, was at minimum six years behind research and generally lags behind much more. Even chatting with colleagues who used to work at Google in their own words, claimed that Google didn't innovate, but found ways to take existing technologies and make them freely available to users in exchange for advertising, not really radical, or good, but very profitable, for them, and a net detriment to users and privacy.

Empowering users is a worthwhile goal.

Far too few have a shred of ethics.

And at the end of the day, many users are hoodwinked by those who offer them something they think they want, regardless of all the sacrifices that come along with it.

I agree that better is possible, but those who really take it seriously usually have extremely difficult uphill battles with which they are contending and in my experience? Vanishingly few meaningful allies.
GitHub - dbanay/Smalltalk: By the Bluebook implementation of Smalltalk-80

By the Bluebook implementation of Smalltalk-80. Contribute to dbanay/Smalltalk development by creating an account on GitHub.

GitHub

@teajaygrey
> Even chatting with colleagues who used to work at Google in their own words, claimed that Google didn't innovate, but found ways to take existing technologies and make them freely available to users in exchange for advertising.

Even setting aside if they're "innovative" or not, I think the only products Google has even created themselves are Search and GMail, everything else was acquisitions of smaller companies.

@david_chisnall that's why I grumbled a lot when the FSF renamed the LGPL from "library GPL" to "Lesser GPL." I think it's a very powerful concept to have modular blocks that can interact with each other, but, when modified _and_ distributed, must see their source code made available.

Also, sadly, licenses such as AGPL seem important to also have, seeing how once "virtuous" (big) companies ended up corrupting the spirit of even GPL licenses.

@jenesuispasgoth

I strongly disagree with the letter part of this. If doing a thing doesn’t work, the solution is very rarely ‘do the thing, but more’.

The GPL didn’t fail because it had loopholes, the GPL failed because it was the wrong tool for the job. You don’t eliminate a behaviour by sitting in an environment with masses of incentives towards that behaviour but a few weak rules about it.

If you want companies to stop corrupting the spirit of the GPL, you need to make it impossible to sell a product that is not Free Software. You do that in two ways:

  • Regulations, and especially rules for government procurement (which drives a lot of the software industry).
  • Consumer preference.

If people see concrete benefits from Free Software, they will look for software that provides those and it becomes increasingly hard to sell proprietary software. And then the GPL is not just irrelevant, it’s a hindrance.

@david_chisnall I agree with your original toot: the GPL/free software movement was indeed thought from a technical user/programmer's viewpoint initially.

I'll leave the FLOSS community in itself aside (there'd be many things to say, good and bad).

I also agree with you on the policy part: governments should push for more FLOSS to be developed in general.

Would you say that the GPL was always a hindrance? I personally don't believe so.

1/3

@david_chisnall
For instance: while nowadays the infamous artificial backend/frontend ties made in GCC really are not necessary anymore, I do believe such a thing was important in the 80s/90s, to help the free software movement keep its backbone for a while.

I also agree with your comment on consumer adoption. If your software can't compete in terms of UI/UX with the competitipn (which is also often "free" nowadays, albeit with advertisement), it better have something way better to offer.

2/3

@david_chisnall but I don't think the GPL is irrelevant. For a while I used to prefer BSD-like licenses, and I still think they are very useful. But, going back to policy, what makes something like, say, LLVM still worth using is that, while it has a rather permissive licence, the project itself doesn't allow for software-patented bits in its core code.

But then it falls on the project's leadership to ensure such a thing, and a kind of "cold war" between private actors who use it.

3/3

@david_chisnall sorry, I'm rambling and I can't make a concise point, I should have mulled it over a bit more.

While I used to think the GPL was a hindrance, when I see how powerful actors are taking advantage of large FLOSS components (and sure, they're also contributing quite a lot), I'm now thinking that something like AGPL/GPL/LGPL software has its uses, because I don't trust the "let's all be individually responsible" shtick.

Of course, if governments do something, it's different.
4/3

@jenesuispasgoth

This is where we disagree. The GPL does not prevent abuse by powerful actors because they are strongly incentivised to abuse the GPL and they have expensive legal teams.

I worked on an FSF project where we had clear evidence of GPL violation by a startup. The FSF decided it wasn’t worth the cost of taking them to court: it would be very expensive, it would discourage use of the project, and the benefits would be small. The company in question made a load of improvements to our code but didn’t release them because doing so would have meant admitting using the code (and then the FSF would have had a stronger case and would have taken them to court).

At the same time, I’ve worked with companies what would prefer to do do a clean-slate reimplementation of a GPL’d project than accept the liability. In some cases I’ve persuaded them to release it under a permissive license, but often they just keep it in house. The GPL provided them with an incentive to increase the amount of non-Free software in the world.

I worked at Microsoft and the Azure Linux VM images come with a EULA that prohibits downloading them or running them on non-Azure infrastructure. I believe this violates the license of the kernel and a load of userspace code, but the lawyers disagree. Want to go to court against Microsoft’s enormous legal team to disagree?

Nothing the GPL has done has provided incentives to create a Free Software ecosystem. It has provided incentives for people to hire lawyers. AGPL is increasingly popular among SaaS vendors because it makes it easy for them to create a moat and prevent competition.

@david_chisnall it seems to me the argument of MS having deep pockets and being almost impossible to beat in court is very similar, if not identical, to the one used when discussing software patents.

I remember Bill Joy explaining how he had both S.Jobs and B.Gates calling him at different times to try to coerce him into "settling" for (software) patent infringement, and him reminding them they also infringed on his patents, and "let's leave it at that."

That only works when you're big.

@jenesuispasgoth

Yup, and the fix for that is to reform the patent system. It isn't to have a license like GPLv3 that means you give up your defensive portfolio if you distribute GPLv3 code.

@jenesuispasgoth

Would you say that the GPL was always a hindrance? I personally don't believe so.

It provides a set of rules that make compliance hard, which people who either ignore the rules or simply don’t do Free Software unaffected by.

If you imagine a true Free Software world, the boundary between a program and a user’s data becomes very blurry. Proprietary software splits the world into three parts:

  • The program, owned by a vendor. No user-serviceable parts inside.
  • Plugins, may need to be blessed by a vendor, talk only to permitted APIs.
  • Documents, which are presented as data but are often programs that use a domain-specific script.

In a Free Software ecosystem, these lines are blurry. Documents may extend the program in arbitrary ways. And documents that do are derived works of the program so must comply with all of the requirements of the GPL. They change the program so the special cases in GPLv3 don’t apply and you must provide the source code (or a written offer to provide the source code) to anyone you send the document to. You may not place any restrictions on distribution of the document. Is the document covering some NDA’d information? A protected source for a journalist? Attorney-client privileged information? Sorry, you can’t distribute the document at all without violating the GPL.

The GPL is only easy to comply with if you assume that most users won’t modify the code. It implicitly encourages creating ecosystems where users are not empowered. And that is the opposite of its intention.

And this is what happens when you ignore psychology and economics and think in terms of rules rather than incentives.

@david_chisnall I can't disagree with what you say about the GPLv3. While I do appreciate what the intent was, i think that the moment even the programmer who chooses this license doesn't really understand the implications, it's a sign of it being not a great license.

Wrt documentation I never considered it that way. It seemed to me that at least the FSF encouraged to put docs under the free documentation license, which is more restrictive than the GPL itself. Am I missing something?

@jenesuispasgoth I didn’t say documentation, I said documents: the things that your program manipulates. Spreadsheets, images, web pages, novels, whatever.
@david_chisnall ah, sorry, my bad. I need to re-read the whole post then. :)
@david_chisnall I am mainly a user who dabbles in coding occasionally and I think there's more free software can do to deliver meaningful freedom for end users beyond access to the source code. Scripting, yes, is part of that, and some of the other issues the FSF campaigns against such as DRM, and self-hosting services etc.
1/
@david_chisnall But also decentralisation beyond self-hosting and other things that give users of networked platforms more autonomy: such as key ownership and being able to choose servers more freely (or even not being hosted on specific servers at all) without needing any implicit consent from your previous admin at all.
end/

@david_chisnall all I can say is that I simply do not have that problem

If a FOSS thing doesn't do what I want it to do, I just make it do what I want it to do. It's not a black box. I genuinely do not see the problem

I understand if it is a problem for non-programmers, but I do get bewildered by programmer entities responding to me saying just add a deviceid bailout to the probe of amdgpu, seems there's no built-in blacklist for the probing by staring at as if I spoke French or something despite that being literally 15 minutes of work.

Or like, the WebKit CSS engine doesn't do what I want, so I just... Clone the repo, find the impl of the thing, fix it. Done. Doesn't matter I don't even know CSS that well or that I never touched WebKit before this.

Or, Firefox strips leading dots from file names it saves. I even wrote a blog post about it https://itycodes.org/FirefoxSaveAs.html, it was about 30 min of work iirc.

Or, Android network settings doesn't let me change the DNS server without turning off DHCP. Clone the relevant repos, and just look around with grep for a bit. Mod it to, idk, read a config file or something, done.

QEMU dir passthru mishandles permissions. Find the function, write the 10 lines to fix it.

I could keep going, but the point remains the same, there's no black boxes. It's code you can read, modify, debug, fix, change. Doesn't matter if it's a web browser, device driver, Android, compiler, debugger, the JVM, VS Code, IntelliJ IDEA, whatever else. It's FOSS code.

I simply do not comprehend how are any FOSS projects black boxes if you know how to code. This is not meant as any kinda mean remark or whatnot, this is genuine confusion. What is stopping you from just cloning the repository of whatever FOSS project you want to change the behavior of, reading its code and modifying it to do what you want? I know that nothing is stopping me, as I already do exactly this to pretty much every program on my system that annoyed me. My collection of .patch files (I run Gentoo now) grows at a rate of a few per day. I do this for years, though only recently I actually keep the patches around.

So what is stopping others? Like, this "FOSS is still just black boxes" sentiment is a thing I still hear a lot, but it is esp. confusing coming from a fellow kernel dev.

Firefox Save As Code Digging

@david_chisnall is it a question of being busy with other things, and rather complaining about it being needlessly annoying to make software do what it should rather than it actually being a black box, and the black box thing is some kinda strange hyperbole for "I'm too busy" ?