everything wrong with free software
"obedience breeds foolishness"
*originally posted:* aug 2021
i still think gnu is one of the most important software projects in history-- i would list it alongside early compilers designed by grace hopper.
my sympathies regarding gnu are divided: on the one hand, gnu cannot be salvaged by cooperating with the gnu project. in that regard the following advice is strictly rhetorical, and i was talking about gnu jettisoning projects right before the gnu.fools coup and they went and made a pretty similar list for me. this shouldnt surprise anyone, as the list consisted largely of traitors to gnu.
this is not their list, nor the list i was making at the time, but they could be used together according to the goals of whomever is trying to salvage gnu.
other controversial suggestions ive made include stallman stepping down as president of the fsf-- this was prior to the 2019 coup, and today the fsf is structured along the lines i suggested: stallman is not president, but he is on the board and in charge of gnu. im not certain it wouldnt have been better for things to happen the way i outlined (they were FAR, FAR more respectful to stallman and afforded full credit and dignity to him, to voluntarily step down WITHOUT the various smears and lies that others have used against him) but here we are. i never called for him to leave the board, or gnu, or the fsf. only the position of president-- and to have a prominent role in finding a successor.
because that advice was used dishonestly against me in what should have been private emails (which nonetheless were publicly logged-- but they werent my emails in the first place) i expect the same of the following advice. but thats not going to prevent me from outlining it anyway.
please note, that i stopped using the linux kernel because it is too entrenched and vulnerable to corporate control. i dont know why anybody defends linus as some hero or champion of freedom. he was always a sellout and this only varied at times by degree. the fact that linux is being taken over by worse people doesnt change any of this, and anybody who thinks linus is going to somehow rescue the kernel is delusional-- but best of luck to them. linus cant fork it and linus doesnt really care about the future of gnu/linux. he was never at any point on our side. he was always on the side of corporate overthrow, and that is the reality that the linux kernel made possible. it is no tool of liberation-- the primary (de facto) function of linux was to help (red hat, others, and eventually debian, microsoft and ibm) co-opt a movement.
maybe the first thing that needs to be deprecated is "gnu/linux" itself. and that brings us to:
### gnu hurd
stallmans track record as a futurist is nothing short of world class. today we have books that delete themselves on behalf of the publisher, for which i have boycotted amazon for more than a decade. we have computers that follow us everywhere we go (because many of us are either stupid enough or burdened somehow to carry them) which not only track our movements but (with the exception of wise-- and wealthy-- pinephone users) have microphones that we do not control.
stallmans solution is to not carry one. ive known people who keep theirs in a faraday bag, but that wont stop software from recording them for later (it may muffle the sound though). some people have removed the battery when its not in use. i used to pop my phone open and remove the microphone, at which point only a wired headset would allow me to use it as a phone-- but none of these mitigations change the uncanny degree to which #stallmanwasright.
during einsteins life, he was arguably the greatest physicist in history (or close enough, i think). einstein never expected (or tried) to become a household name; it was none other than buckminster fuller (a great and early fan of einstein) who predicted a time when einsteins name would be synonymous with science and genius.
even einstein had certain scientific prejudices and biases, for one he seemed to more than dislike quantum physics. im no expert on einstein, so perhaps this example is apocryphal. but i think the point is that you can be the smartest, most correct person in your entire field and still be wrong sometimes.
im aware of the fact that many people nitpick, exaggerate and even manufacture things that stallman is "wrong" about, when he really isnt. and this only makes people more defensive if stallman is (rarely) ever wrong about anything.
it needs to be said that science doesnt care if you have the best track record in the history of the universe, science still assumes people can be wrong about something until evidence shows otherwise-- and even after that:
> 100 experiments couldnt prove me right, one experiment could prove me wrong-- einstein
i think stallman was "wrong" about hurd. whats more, i think hurd was actually really bad for gnu. and the counter-argument tends to be that hurd is a really amazing and unique kernel, none of which is actually disputed here. ive run it at least once, and i used to hope it could work someday, but the project leader is a liar and a traitor (see his signature on lies and long-premeditated and well-organised, most likely corporate-sponsored betrayal) and hurd should not be part of gnu, for so many reasons.
all hurd has ever done is prevent gnu (not by itself) from reaching its goals. i dont think the traitors should stop working on hurd (i do think they should wear signs that say TRAITOR every time they touch a keyboard, but im certainly not suggesting anybody should force them to) but i dont think gnu should keep hurd under its umbrella, because hurd serves no useful purpose to gnu (and likely never will). deprecate it, already. and be done with it. this will help to show what a farce gnu.fools is-- they will try to turn it into pro-gnu.fools rhetoric, but hurd would not be part of gnu and the developers can call themselves whatever they want. but it isnt gnu!
the problem of hurd goes way beyond this century. choosing such a hopelessly complicated design left the door open for linux to takeover. gnu admirably (im sure it looked foolish at the time) resisted gnu/linux at first, but as one gained steam the other lost more substantially than i think most people are willing to (openly) admit. gnu hurd was a strategic error-- and fixable, but it was also avoidable.
people think of hurd as a descendant of the mach kernel. but gnu could have chosen a mach kernel with a design that was more mainstream, as apple did. today, they could choose the openbsd kernel, as one project already approved by the fsf has done. no matter how you try to bullshit around the fact that ive moved away from gnu/linux, my intentions were very clear-- to become more familiar with the project on which the first fully-free bsd is based, and to continue my research around github dependency. there are only so many free kernels in mainstream use, and openbsd has more promise than most of them.
free software could have also been more fair to openbsd, instead of helping to create a rift between the two that is still costly today. i was not happy with what the other party did in this regard either, but they didnt exactly start it. i dont think the two will ever "unify" and i wouldnt recommend it, but i do think free software has options here they should continue to explore. people loyal to the movement will certainly explore them, the only question is how many? and, how long will people continue to pretend that linux or linus is any sort of ally? it never was! from a free software standpoint, "gnu/linux" was always wishful thinking-- even projection of free software thinking onto a corporate takeover still happening today.
even some (MOST) loyal to the movement and to stallman tell me gnu needs a new kernel, and they do not seem to be referring to hurd. so BY ALL MEANS, get rid of it! deprecate hurd, as well as penguinshit, and eat the cost of those fucking stickers and tshirts for the good of the movement.
not that i think they will, only that they should. anyway, #stallmanwasright the first time: its not gnu plus linux, its gnu divided by linux.
### gnu bash
this list includes nothing unless i really mean it, and if you didnt already think i was trolling when i said "deprecate hurd" then you should consider the possibility that im not trolling now. of course most people will assume i am trolling anyway, so saying "deprecate bash" shouldnt surprise those people at all.
bash was, arguably is, a really great shell. it is not the best shell. (you are entitled to your opinion. of course).
most people who argue against bash are arguing for something they think is fancier, or has extra features (many of which are silly, but they like them). i would argue for something LESS fancy. and there are sound arguments (i hope to make a couple of those) for doing so.
certainly you can continue to advocate bash for the user, and something simpler for system scripts. this is what debian did, and it always sounded reasonable to me.
note that most of the time ive used a lighter shell (busybox for example, which i dont recommend and everybody should know it is in bed with sfc-- not that its any kind of secret, its right on the sfc website) ive not been satisfied. i like command substitution and the feature of bash i miss the most is <() which is really super-cool. bash is the shell i learned shell scripting on, and thats both a good thing and a bad thing.
im well aware that there are strategic reasons for gnu having its own shell. in fact if gnu were to deprecate bash (this would hardly mean that bash development stopped-- it simply wouldnt be a priority for gnu anymore, and gnu would be better for it) a fork of bash would probably be the best move forward. ill also talk about what that fork would be like. its nothing exciting-- rather its better for gnu as well as better for users, who would still be very free to install bash. it MIGHT no longer be gnu bash (thats what i recommend, at least).
bash is indeed the shell i am most familiar with, and the shell ive done the most scripting in. i even went as far as to create (as self-disqualified, just-for-fun entry into a contest to make a programming language in 100 loc or fewer) a simple logo variant in bash that used ansi escapes to draw in the term.
all the same, i hate writing large scripts with bash. im not sure its even intended for that, but if it is then i dislike it (if it isnt, i still dislike it). i generally prefer more elaborate scripting languages for most purposes.
for the shell, bash suffices. if there were nothing else, it would have to do. but i spent years getting comfortable with it, and it could have been months (at least, fewer years) instead.
the thing that makes bash great is also the thing that makes it suck: it has too many damned features. and those features did actually get in my way: my biggest gripe by far in dealing with the bash shell is all the rules i have to know to massage a routine into something that bash wont vomit on due to some rule that it dutifully executes, against my best wishes.
i ASSUMED this was simply a fact of life, and i went out of my way to coddle the shell into doing what i wanted. as i said, most lighter shells never impressed me either. it wasnt until i used ksh that i realised those years could have been spent getting things done instead of playing with finicky bullshit. at least the name should be changed from bash, to bush. (not a name im a fan of at all, but it certainly fits).
im not saying people shouldnt use bash-- i believe in an empowered user, if they feel bash is best for them then by all means, use it. i AM saying bash is way overrated. i expected the transition to ksh would be painful, and bash was one of the first things i installed.
i was surprised when i almost never used it. i made no real effort to stop, either. i simply stopped typing "bash" when i didnt need it. ksh is the best shell ever.
the very least that bash can do is create a lighter, more stable version of itself. and i dont think superkuh wants credit for inspiring this (i dont believe it was his intention at all) but hes welcome to it. you should not blame him, this is not in any way his fault. (in fact if he wants, he can ask me to remove his name from this).
the only problem is that a lighter, more stable version of bash would then not be bash. it would be better. i dont think gnu would get this fork right either, but it would be a step in the direction of something more ideal. ideally, they would make a version of bash that was more like ksh, i think-- but arguably it would just be ksh then (i believe that bash is based partly on korn shell anyway, at least in terms of its design or syntax or features).
the advantages of this are several: greater stability, which OUGHT to be a goal for gnu (it isnt really) and greater simplicity. bash is NOT easier to learn, it is definitely harder. i actually feel a bit cheated for not having found a good, simple, stable shell any sooner than i did. ksh is not a toy, it is a proper tool for real work. it just happens to be easier to use. getting around the "features" of bash requires expertise, even arguing over which tutorial is the best so that you dont do bash the wrong way.
of course ksh also has gotchas you need to know, it simply doesnt have so many because it doesnt keep adding more all the time. i have noted a significant change in terms of ease of use. i was not even looking for one.
so for the good of gnu, deprecate bash. set it free from gnu. but at the very least, made it a secondary shell (REAL gnus use lisp anyway, amirite?) and fork it into something simpler and stable. or dont, and continue to make gnu harder to use, less secure (RARELY, i know) and less stable.
bash is more trouble, and gnu could do better. no, i am not joking at all. this could be improved.
### gnu nano
this one is not entirely out of spite. i dont deny its a factor. i feel particularly betrayed by gnu nano because i loved it and advocated for it so much over the years. it did not deserve my support. of course the editor did nothing to me, i feel bad for ever having supported the developers. they are liars and traitors as well, and despite the fact that deprecating gnu nano would give them something they wanted, its still the best thing to give them.
i dont think nano would have enjoyed so much fame without the gnu umbrella. i think some people really underestimate the leg up they got from gnu itself. the gnu nano devs should be able to secede, WITHOUT any right to use the trademark. let them go. fuck nano, really.
this one is also painful because i relied on nano whenever i had to do a substantial amount of editing without a gui. ive tried (and sometimes use) vi, but its pretty awful no matter how long i use it. if i were paid to use emacs i still dont think i would tolerate it, but stallman turned over emacs to would-be traitors years ago (quick clarification-- im not sure the people he turned it over to originally are the same ones sabotaging it now-- but its unfortunate that the second stewards failed to maintain it and the freedom and notability it brought to users). my editing needs are at least simpler than either what gnu emacs or microsoft vim (fuck github) have to offer. when i do use vi, its not vim.
but nano is an excellent project to deprecate to see about what can be done about traitors who tried to overthrow gnu and abuse its trademark. i know that gnu doesnt consider this a priority, and im sure that wont change. theyll probably just let corporations continue to use gnu.fools (pawns that they are) as a wedge against the gnu project. which makes developers in both camps foolish to leave this unresolved, but thats not as important as how things actually work out. if its like they say, and this really wont change things eventually, then im happy to be wrong. but first, i will note that theyve been wrong before.
gnu doesnt need nano, really. and thats why its a great project to deprecate, just to see what happens.
now i will compare nano to libreboot, because of similarities and also differences. there was a time when libreboot INSISTED on leaving gnu. and gnu wanted to hold onto it, and demanded the right (i dont dispute that it was gnus right to do so). i dont necessarily think that gnu should simply let go of every project that tries to leave, i think that would probably be very stupid. and yet it does let go of projects too often i think, but not the right ones. gcc? fucking awful idea. oops, too late. gdb? what the fuck? too late. gnu nano? WHEN THEY PRY IT FROM OUR COLD GNU FINGERS!
theres always a reason, where gnu is concerned. but if they had to get rid of gcc or gnu nano, why the fuck did they choose gcc? (many will dispute this. i think they will have to overstate the difference between what actually happened and the way i am describing it, rhetorically of course).
the best part of getting rid of gnu nano is that the developers will fuck off and gnu will be rid of them too. not entirely, because there is often overlap (one dev, two or more projects). for this to work it would have to be explored further. gnu nano is used as an example because i think this is worth exploring.
AS WITH STALLMAN STEPPING DOWN, this is about gnu doing whats better for gnu, more than giving a shit what the traitors want. i think the cost of retaining traitors is OFTEN greater than setting the bastards free (unless you want to sue them for trademark infringement, at least. im sure it would lead to a settlement anyway, and its not like theyre going to bother doing this). i dont think gnu has adequately explored this idea (of setting SOME of the more bastardly projects free for strategic reasons) so i offer this example that someone wiser may consider (or properly refute) the idea. i am not stating it is anyones job to do so-- other than the fact that gnu probably should consider ideas that will strengthen gnu and keep it viable for a very long time. not that it will: gnu seems to agree that it is not anyones job to do this.
### perl and python
i cant take credit for this one (i think i can share a little of it), this one is inspired by the chief gnewsance (richard stallman is still the chief gnuisance, though hes not exactly the same richard stallman-- this one works for the fsf, and i think thats a shame). in other words, gnu should take a page from gnews book on this.
perl is not a gnu project, it is controlled by microsoft. and yet gnu is as dependent on perl as it is on glibc. someday this will turn into a dependency on rust, if gnu isnt careful. gnu should retrofit the entire project to ghc, and send perl packing. no, im not fucking kidding. ditch perl, its the worst thing on this list.
gnu has a similar problem with python. as python is increasingly controlled by microsoft and becomes NOT AT ALL PYTHON, really, they are turning it into an NPI or "nebulous programming interface" which is really just another way of saying "clown api" but its cleverly DISGUISED as a programming language.
it isnt. the only way to use rust (for mainstream applications) is to use the clown. as with systemd, its bloat and instability is a feature, (anti-features are features too) just like everything microsoft foists on the world. you know who gives a shit about stability and reliability? pypy. https://www.fsfla.org/ikiwiki/blogs/lxo/pub/new-dawn.en.html if gnu gave a shit about stability and reliability, it would switch from cpython, but whatever. im sure theyd rather make an alternative to discord, or some bullshit like that. why bother? the more gnu moves towards github, the more they can just find something there! why would gnu even need gnu? fuck... (that much at least, is sarcastic).
but if gnu is going to be a slave to npis, then it might as well turn the lights off. if gnu wants to be about fighting for user freedom, it needs to learn how to spell AUTONOMY. i dont give a fuck if thats recursive, gnu needs to stop bullshitting everybody-- themselves most of all.
if gnu WASNT important, then i wouldnt bother saying this. id just use openbsd! the only reason the fucking traitors matter, is because the thing they betrayed is one of the most important things ever. if not for that, then (really) who cares? i mean, except every single user. they betrayed them too, of course.
gnu cant just sit around and pretend all it needs is more developers and features, but the rest we can fucking fool ourselves about. not if it wants to move forward, or even stay as relevant and free as it is already.
but hey gnu-- its your call. if you want to abort all defences while youre still on the ship, youre free to sink your own fucking project. what is that, freedom 0? freedom 2? who the fuck cares? its stupid, but youre free to be.