everything wrong with free software
"obedience breeds foolishness"
*originally posted: oct 2021
i really do love old computers. for some reason, picking up a 486 for only $35 at a computer show well over a decade ago, felt like a bigger deal than picking up an i5 laptop for less than twice that price. it wasnt very heavy for a desktop of its age and specs, id owned a 386 in a much larger, heavier tower.
with that said, my own "nostalgia" works in both directions. there are things i love about older machines (i do not presently own a 486, nor do i have any real use for one) and things i used to look forward to in terms of features we have today. this includes looking forward to lossless compressed audio (which we now have) better binary compression (along the lines of xz) and even carrying our files on chips (which i thought would be better than floppies). all of which i (specifically) longed for before you could simply buy or download them. i was thinking about the future.
one of the things i love about old computers is finding used equipment. when i still used windows, i was outraged when they were quick to abandon hardware that wasnt very old (only 5 years in some instances) and although switching to gnu/linux has sometimes meant waiting a bit for hardware support, over the years its record of supporting older hardware was good, at least until recently.
i also note that there was a time i considered gnome and kde good desktops, but that was a long time ago. i used icewm until microsoft purchased github, then i switched to dwm.
lxde was a great compromise / default desktop for other users and suitable for my own use, but the advent / disaster of gtk3 left a lot of people moving to qt, which really seems like a nicer toolkit until you see the projects that try to move to it. ive never liked lxqt better than lxde (every instance of it ive used is shit, really) and toolkit changes seem to have destroyed more software than theyve helped. lxde is github anyway, just like icewm, so ive given up on it.
it used to be i would install icewm on anything i wanted to run faster, and ultimately i just made it my default until the github purchase.
it wasnt really nostalgia that made me choose icewm though-- i chose it for being the least tedious, most efficient tool i could find at the time. efficiency is something that often does NOT improve over time, and i think people attribute more to mere nostalgia than is accurate. i liked icewm because it is lightweight and simple. a lot of things do become more bloated and complicated-- for example, ive never found kde useful past 3.5, and years without kde have made me feel its really not all that useful anyway. its funny that i ever loved kde, because i thought it was more than alright but i dont think it has aged very well-- changes in overall environment and support aside.
i think part of what made kde 3.5 "great" is that like with windows (9x at least) there was a feeling that you could right click on and change virtually anything, on the spot. you were pretty much the master of your domain, in terms of gui control. kde (3.5) did better with this than anything else. you were probably better off trading that for lxde in most instances, but if you wanted "full control" over the gui you installed kde.
years ago however, i reached a point in my life where the last thing i wanted to do was right click a million things. yes, i want control of my software, but when i was truly in love with kde id barely even toyed with a modern language like python. i wasnt going to start hacking and recompiling gui programs-- i use loads of command line programs and have tended to need a gui for things like web browsing and image editing, though i did use links2 and watch video on the framebuffer often enough-- in many ways, kde was a years-long fad for me and i wouldnt go back. id prefer all my gui applications were done in python 2 (specifically pypy2, which unlike python 2 is still maintained) and then if i want to change the gui, i can do it in the code.
in fact i hate to say it, but after many years of railing against gnome for abandoning the configurability of gnome 2, i have to say that what i really want is LESS gui. and gnome 3 is still the worst example of "less" gui that i can think of. i still think they sabotaged (destroyed) gnome 2, and i dont think gnome 3 is so much "simplified" as broken. either way, it is the most comically bloated mess ive ever seen since windows itself, and theyre clearly out to dictate the behaviour of other desktops (gnome really is the systemd of desktops and gui components, you know) which i find deplorable.
there are some very negative trends in computing that first of all, leave someone very eager to get away from. and they try to simulate (or simply create) "lock-in", which at least half the free software movement refuses to recognise because they cant tell the difference between free software theory and purpose, vs. free software reality. in theory, lock-in is impossible, therefore in practice, it is also impossible. thats a level of ignorance that will destroy free software, but wiser people will fork the entire movement (eventually). and i dont mean a proprietary fork like "open source", because open source is a scam run by liars and narcissists.
actually getting away from these negative trends requires major overhauls, while in free software theory you can just hack a little here and there, maybe fork a couple things. weve had years to witness well-meaning forks that couldnt get far enough away from the abyss, and this includes truly noble "for the users" efforts like trinity and mate.
the reason these forks have failed is that most free software just isnt forkable enough. it seems like the goal of every project is to reach a point where its "too big to fail", at which point it invariably fails. projects that are more conservative in what they allow to happen to the project are seen running laps around the others in terms of reliability, while other projects add countless features but become unstable and unsustainable.
which would be fine, if the projects were really forkable. openoffice was "forked" when most of its developers left, and proceeded to turn it into incredible bloatware that has turned against the free software movement itself. and by that i mean, "libre"office will be taken over by collabora and gnome, with a future just as bleak as debians. it has already been used to attack stallman, and i havent bothered installing libreoffice (or openoffice) since switching to bsd more than a year ago. i simply have no use for it. the terrible, corporate politics of libreoffice have already killed it.
i actually hated abiword all along, ive gone as far as calling it malware and the least stable binary ive ever run on gnu/linux. for me, on any platform, distro or hardware i ran it on, it seemed like the most reliable way to crash the entire system. i dont know how they did it (or why it chose me personally) but i was always quick to remove it even though i didnt use it anyway. note that removing the binary is easier (because theres just one) than removing icons and other shortcuts. i considered a system that had opened abiword unreliable until rebooting. i wont use abiword-- and if i did, what would i ever use it for?
like torvalds, i learned programming with basic originally. i toyed with various other languages, and even tried learning c at one point-- but nothing was as "fun" or easy as basic (python was very close, but required loads of boilerplate and python 3 has made this much, much worse). i spent the better part of a decade looking for a basic dialect for the 21st century. no point in telling me about the major ones, ive tried them. ive tried dozens of others as well.
and this gets me back to nostalgia working in both directions, because when i was a kid, coding in basic, there were things it didnt have that i hoped it would someday:
1. i wanted arrays that you could "index" with strings, not just numbers. dicts in python manage this, and this feature is available in many other languages.
2. i wanted to make full use of ram, without mucking around with machine code and overlays.
3. i wanted higher-resolution graphics, without going to more trouble than i went to for vga (all you had to do for vga was say "screen 12" or "screen 13").
and obviously, i wanted to be able to write larger programs without splitting them into modules.
youll notice that all of the above could be called "features", and lots of "new" dialects of basic came along to offer new features. and when they did, they also didnt care to keep maintaing older features i cared about, so it was always "fuck your features, use our features instead".
at one point, an even newer attempt made REALLY REALLY noble efforts to bring over as much of the "original" as it possibly could, in fact there were a couple such noble attempts (aimed at entirely different generations of basic) and one of those has stayed compulsively true (to an older basic, with line numbers) and the other accomplished just what it set out to do-- before being taken over by people who wanted to deprecate the features people loved and used for ages. i considered that treacherous-- the real reason we cant have nice things, is that people improve them.
of course thats tongue in cheek (but sadly also very true), and the straw man of this argument is that some people (just me) want things "a certain way". alex oliva refers to this as wanting a pony, but the basic premise (if not his, then broadly speaking of similar arguments) is that not wanting people to sabotage really excellent software is i only done by whingey people who are never happy anyway. and thats a copout, even before you take into consideration all the deliberate bribery and corresponding sabotage weve seen.
its not merely longing for the old days, its a dislike of sabotage.
if i went back in time to the 1990s, it wouldnt be to pick up older equipment that i used to love playing with. it would be to tell younger me to learn python sooner, rather than later. it would be to share the outcome of the years i spent meticulously comparing dozens of options, so i could skip those and just look forward to python instead. oh-- and i would also warn myself to use pdksh instead of bash, because all the time i wasted spoonfeeding extra syntax and bullshit to bash makes me want to sue the authors (who of course are exempt and offer bash with NO WARRANTY, which as a free software author i can appreciate, but id still LIKE to sue them even if i cant and ultimately wouldnt).
the only thing i miss switching from bash to ksh is <(this motherfucker). which is awesome, but just not worth the rest of the hassle.
i would tell the younger me to learn python sooner, and also tell the younger me that python 3 would NEVER become good. oh, i used it-- i ported my favourite project to it. i used that version of my favourite project on a nearly daily basis, for 6 months, and one day months later, something i was working on was inexplicably crapping on something basic and after spending an hour or two troubleshooting, i switched back to the python 2 version and it just worked-- so i never made another python 3 version and switched right back to 2. id already done so many hours of research and workarounds to get it to work with python 3 in the first place, and imo python 3 is just crap. its a broken promise to some and extra features for everyone else. go ahead and make the marketshare argument-- that works alright for windows.
youd think someone who was all about nostalgia might favour SOME basic over python, but i do favour python 2 over 3, because (like ksh) i spend less time holding its fucking hand every step of the way. sure, python 3 fixed having to add float() to every division, but it broke strings in a way that is entirely unfixable. if you REALLY want strings to work like python2, you have to basically do them the fucking ansi-c way and treat them as arrays of numeric values.
and im aware that there are loads of other options-- none of which work like python 2 strings, which is extremely deliberate. and fucking broke python.
most free software is unforkable, part of that is the way that free software is usually designed-- its NOT designed to be forkable, its MERELY licensed as such.
so to make free software forkable, you have to redesign it. basically, you have to rewrite it. and if you have to rewrite it to make it truly free, then youre missing out on the basic premise of free software, which is that you DONT have to rewrite it to improve it.
this is not actually an inherent flaw in free software-- its a flaw in practice, in execution. when people write unforkable software, its the fault of the authors, certainly not the fault of the license.
but theres a flaw in the movement in that nobody seems to give an actual shit whether software is forkable or not-- because they seem to believe it is forkable the moment the license allows it.
and i beg to differ. if theres no fork of linux, no (viable) fork of debian (there isnt, i spent years checking this), no maintainable fork of gnome or kde, thats because these are (practically) unforkable things. there are certainly enough people who WANT to fork them, there is reason to fork them, major efforts were made to fork some of them-- it simply couldnt be done.
the forkability of free software is a circular argument, unsupported by facts and reality. which doesnt mean that free software couldnt be written to be forkable-- it simply ISNT. and this is a major, major flaw. not that most people care, they dont want forks, they want pseudo-proprietary (simulated) control. and that is what we actually have-- simulated control of the user, in an ecosystem (stallman doesnt like that word, too bad-- hes failed to make a sufficient argument against it and the closest alternative is "environment", which means the same. fucking. thing. but maybe someone can prove me wrong) that theoretically allows forking and freedom.
meanwhile, bsd is (demonstrably) forkable. not the non-free havens of the unreasonably-named freebsd or the nda-compromised portions of netbsd (or the occasional non-free firmware in openbsd) but the kernel, the drivers, the applications-- the ENTIRE THING is forkable. and today, you cant even fork ONE PART of gnu/linux without running into various reasons its impractical because of other parts that "add up" to the equivalent of lock-in.
and the point here isnt even "trust bsd", rather its "look at what theyre doing-- YOU should be able to offer this, but you cant".
freedom without being able to fork is a lie, its a nice story-- its MARKETING!
the freedom of free software has been REPLACED, with marketing. its a false promise, a scam-- its basically open source now.
on the surface level you can do this or that, you can change things superficially, sometimes you can get deeper into things but overall, youre going WHERE THEY TELL YOU. there is no other path.
way, way beyond forkability is control of your computing, but you really cant (ever) get there without forkability.
what this means is that right now at least, bsd is (fundamentally) MORE FREE.
its free as in you control your computing. at least, if you erase the few non-free parts, you control your computing.
you will NEVER control your computing with gnu/linux.
and again, you might think im saying-- just switch to bsd. well, i did, because i wanted to be more free. i wanted to get away from the imploding gnu/linux disaster.
but thats not the point. the point is that free software CAN be forkable. and it usually ISNT, because MOST free software authors really dont give a shit about your ability to control your computing.
MOST free software authors really DONT give a shit about your ability to control your computing.
they dont design for your freedom--
they dont SUPPORT your freedom--
you want freedom? youre ON YOUR FUCKING OWN.
same as with proprietary software.
now, thats not what free software was ever meant to be-- its not what stallman worked on-- its only what free software has BECOME. (its become open source-- and free software advocates MOSTLY dont give a shit about this either).
but all straw men about nostalgia are beside the point, because if you control your computing you can fork software.
openbsd is an entire operating system you can fork.
linux is an unforkable, festering open source piece of shit.
gnu is an unforkable battleground that runs almost on pure fucking apathy and blatant hypocrisy. thats not by design, its what it turned into via the takeover-- by open source.
gnu is abandonware. it has abandoned its own fucking goals.
but this is not really about nostalgia-- its about simplicity, its about sustainability, its about the user being in control of their computing.
and gnu is not about that. linux is not about that. devuan (really) is not about that. and debian is also abandonware-- it has abandoned anything and everything it stood for.
why then, turn to unix? it isnt about nostalgia, i DONT want to have to deal with a pdp-11 every time i move. i dont want a mainframe computer. i dont even want to own the old at&t machine that i had the pleasure of using (running system v i believe) over telnet or ssh. it was fun to play with, but im not interested in it for daily use.
rather, there were important lessons from unix that gnu missed, possibly to its own destruction.
we need to go back and understand the mistakes we made (including the times we abandoned things that work extremely well) so we can HOPEFULLY make better decisions in the future.
ive said it before, history is ABOUT the future, as much as it is about the past.
its QUITE OFTEN the best way gain a practical understanding of where we are going-- and what we can do about it.
besides-- if you control your computing, it should be possible to run old software-- within reason.
the goal of people who want control is to make all such wishes sound "unreasonable".
many of us who plead for this, already know better than to think theres no reasonable limit to this. the insinuation that we dont know those reasonable limits is a way of dodging the question. systemd authors pull this sort of shit, gnome authors pull this sort of shit-- a lot of the reason sabotage gets as far as it does is that so many projects are run by narcissists and even paid liars.
the truth may win out, but it has to take the long route as the corporate thought police (not really police, more like "thought thugs") are everywhere. thought thugs arent anything new, it sounds less ridiculous (but its also less descriptive) if you simply call them narcissists and liars. people who want truth to win spend most of the time getting beaten down-- with bullshit.
this would still happen, even without corporate interference. the money and corporate takeover goals only step it up by a few orders of magnitude.
but it really isnt about nostalgia, and it isnt quite as useful to think of it that way either-- its about freedom, and the user having control of their computing. even if the user thinks its about nostalgia... they might (to some degree) be missing the point as well.
and obviously, to a much lesser degree, sometimes it really is just nostalgia. its fun. its a nice walk in a museum. but fundamentally, i think theres more going on here-- and its far more important, more relevant, and too urgent to ignore. nostalgia may not be half of enough on its own, but it could at least be something to get the ball rolling.