free software resistance
the cost of computing freedom is eternal vigilance
### apple-vs-unix-vs-basic-mentality
*originally posted:* jul 2024
this article is about ways of thinking, about philosophy in the broadest sense of the word, and it leans on creating archetypes and stereotypes based on many real people, over years or even decades.
such broad generalisations are known for being imperfect. they can sometimes be useful, despite the fact that many stereotypes are unfair and lead to misunderstandings. its at least worth noting that generalisations, by nature, dont apply to everyone.
i was raised around the apple mentality. im not a fan, it has always been a turn off for me, and turned me off most apple products- based on both condescending and dishonest advertising as well as the positions still espoused today by proponents of this mindset. and the main point of this article was to complain about the apple mentality. ive decided to also compare it to two others.
the first thing to say about the apple mentality is that it isnt limited to fans of apple products- you see it a lot in communities that self-identify as being about "open source". i absolutely believe the "philosophy" itself is a product of capitalism, you can even call it a side effect, and it is absolutely about privilege. apple has often straddled the line between being about "personal" computing rather than ugly tan business machines, and luxury quality goods. such contradictions are not rare in marketing, but apple built its empire on being for everyone, and being "the best" for those who can afford it.
the real crux of the apple mentality for me though, is what it means to be "the best". even as a pre-teen, i compared apple vs. other computers to automatic vs. standard transmissions. an automatic transmission is "better" because you dont have to learn how to use a clutch, but cars offering real performance and control over the driving experience would typically have a standard transmission. i honestly dont know enough about cars (even less about modern cars) to say how well this comparison holds up today, but i think it made sense at the time.
side note, if you "need" an automatic transmission to make sustainable electric cars, i think thats completely justified.
but its also worth noting that a standard transmission has a simpler design and was more common on less expensive cars. this, along with the big price tag on apple products, really should hurt the idea that these things are "for everyone", even if theres less learning involved to drive an automatic. and there was a time of course, when the choice simply didnt exist at all. if you learned to drive, you learned to drive stick. alternatives were less about making driving ecumenical, and more about making driving more appealing to consumers.
what i routinely encountered from apple fans was a sort of ignorant smugness. in fairness, looking back, i dont think apple users were as stupid or as non-technical as i thought- and i wasnt a fan of the other kind of smugness either- i didnt like people who were smug because they actually WERE smart and informed. though smugness may appear in different forms, i can honestly say its a turnoff in general. theres a certain amount of crowing i can get behind and take amusement from, but its the exception to the rule. what i really appreciate is people who know theres always more to learn- who are kind to newbies.
i do actually want computing to be FOR everyone. and i still believe that to be FOR everyone, one-size-fits-all solutions are doomed to fail, badly. as people are fond of saying, freedom is more important than choices. but i think choices are a VERY common side effect of freedom, and when people attack freedom to build monopolies, you often see choices start to disappear- by design. the fact that some "choices" are false choices- the "choice" to have your choices limited by design- i dont count those when i count how many choices people have left.
also its okay to abandon things that suck? i dont believe everything should be maintained by people who dont want to work on them, i DO however think its important to be wary of this as a disingenuous excuse for corporations throwing out solutions to build monopolies. if you think this is if-by-whiskey, im actually refuting and rejecting a false dichotomy used as a common excuse.
but at the core of the apple mentality is this idea that "it just works"- i think this was literally part of an advertising campaign for apple at one point, but its certainly a phrase you hear a lot from fans of various projects that espouse the apple mentality. like the automatic transmission of yesteryear, it is typically a more complicated, more expensive design. free software implementations do not change this- "it just works" tends to be more hungry with physical resources, more demanding in terms of the amount of (sometimes brittle, unstable, or early/beta quality) dependencies it has, and often the number of situations where "it just works" is actually much smaller than other, more flexible tools.
which isnt to say that apple didnt earn its reputation for being reliable. before apple started to get worse from tim cook onwards (im not a fan of steve jobs, i just like cook less- the pepsi guy years hardly matter to me) jobs made a number of choices that i thought were unreasonable, and some of them were very good. one of the best things jobs did was bring together apple with unix- and he did this a lot better than microsoft did when they (like so many other companies) tried to do the same. i want to stress that i really, really intensely disliked steve jobs. this is just credit where credit is due.
i also think apple reached peak reliability years ago, and that "it just works" was always, and is always- selectively true.
fascist movements, to move to the extreme end of this argument, are always for "the people", of course. they mean it VERY selectively, because far from being inclusive, they simply get very creative with who is and isnt a "person". less fascistically, but this is still capitalism we are talking about, i think the idea that apple is "for everyone" forces people to be creative about what "everyone" actually means. an apple product may last you a very long time, it might not- but saying that something is more affordable when you average it out over years 1. ignores what apples model of selling things really is and 2. is of little use to someone who cannot afford to buy 10 years of luxury computing equipment all at once.
i have seen poor people with iphones, yes. poverty doesnt hit everyone the same, nor does it hit everyone all at once, but its worth noting that most of the poor people ive seen with smartphones DO NOT have iphones- and most of them also do not have another computer besides their phone. the fact that iphones often spread the price out into the monthly bill for mobile service is another factor.
with all of that said, my complaints about what apple means by "the best" is not limited to, or even primarily based on, the sticker price. i think the price makes it more cynical to market it as a "volkscomputer" (volkswagon literally meaning "the peoples car", to get back to my complaint about fascistic tendencies in marketing) but when you choose apple, you give up more than just money. the history of apple is a decades-long history of foisting apple-only tech onto people. this is why many years ago, before "unix" and its descendents were less proprietary, i disliked even the technical choices underlying apple.
some of these were at least good choices that became reasonable standards. others are more cynical and stand the test of time regarding my complaints. both are part of a corporate culture that is built on privilege as much as ecumenism.
the smugness of apple users is that their product is better because 1. its more expensive 2. its more fancy 3. its more "reliable" but only for a very narrow, even cynical concept of reliability.
but i think it was really always an appeal to snobbery. you may not know anything about fixing something, but you have servants to do that for you. the computer is a servant, whether you have the apple mentality or not- but if you have an apple, then apple will always decide for you what your servant is (and is not) capable of helping with. this was true in the 80s, but from the end of jobs tenure and continuing into the tim cook years, it became not less true but much, much more so. almost like the political landscape, apple swung closer to "free" software and even free software, before taking all of that and making it increasingly locked down by apple. but you get the BEST servants. and that makes you better. and you even brag about it. and i think its absolutely fucked. there are problems with bragging too much about things youve done yourself, but implying youre better because youve paid someone to do everything for you and because you paid for fancy shit- what the hell is that?
another side note, the problem of giving up control has extended even into the firmware. i would not even run a different os (nor an apple os) on a used mac today, due to firmware i consider both dangerous to users and malicious. this is a problem on most modern computers, but i know ways (getting experts- which shouldnt be necessary of course) to limit or fix this on "most" modern hardware- not including apple machines or anything with a mobile chip, such as phones or tablets.
but what the apple mentality really boiled down to was "im better than you- because i dont HAVE TO learn anything about computers- because i have servants who take care of everything for me."
i dislike this on so many levels. you shouldnt feel superior to another person because you dont have to learn anything. and while im not against making things easier to use, i am against taking control away from people who WANT it, im against taking the OPTION away, which apple has always encouraged.
basically, the apple mentality is that youre foolish or naive or even have poor taste! because you want a more computer literate society that has more control over the machines that intrude on practically every aspect of our lives. its a toxic, snobbish, ignorance-celebrating mentality. and while there IS another side to it- from jobs choosing unix, to amazing things like applescript, apple logo and applebasic, and the story of oregon trail and the way apple (lets be honest) exploited education in a way that ABSOLUTELY brought some benefit to the world (its both good and bad- but its pure capitalism and it helped drive apples success) the apple mentality will always be a celebration of ignorance and giving control up to corporations.
i fucking hate it. i hate it from apple users, and much more often, i hear it from and hate it from "open source" people. it has nothing to do with freedom, and PRACTICALLY everything to do with corporate rule.
there is a trick in politics, and capitalism- where you control your opposition, and exploit it for whats called "openwashing" (a term coined by someone you can look up on wikipedia, no matter what some other jackass may tell you) or image laundering, and apple made some amazing choices here and there.
for decades i was and in a few ways remain a big fan of basic, from its original use in education in the 60s and 70s to its exploitation by microsoft and apple, to the simpler projects inspired by it today- including my own favourite language of my own design. qb64 was originally created by a teacher, but was more recently (years ago) taken over by someone i consider an actual fascist. i havent used it in many, many years. but the original philosophy and implementation was good.
what i mean is, neither microsoft nor apple invented basic- but you cant (while being honest anyway) entirely separate these things from microsoft or apple. i think basic itself really lends itself to a philosophy that flies against what microsoft and apple want the user to be subject to, but its hard to talk about a "basic" or "unix" mentality without admitting that microsoft and apple definitely made use of these things too- i just think that in the long run, they subjected these things to a more "microsoft" and "apple" way of doing things- than a basic or unix one. i mean, i dont know anyone who really believes that apple- still built on bsd and the darwin kernel- really does things in a unixy kind of way. bsd often does- but not apple.
### the basic mentality
like the unix mentality, the basic mentality really comes from limitations- but it also comes from being designed to be truly friendly. lets not kid ourselves, basic was originally designed to be friendly by 1960s standards- but for all the hassles inherent in computing in the 1960s- you generally had to talk to a mainframe over a noisy telephone line- it was grace hopper and the 1950s that gave us compilers and computer languages based on english-like keywords.
building on that foundation, two scientists at dartmouth set out to make an environment for educational use, that was accessible to students who were not studying to be computer scientists. a similar and equally noteworthy effort was logo, aimed at younger students. basic however, was straightforward enough that it far surpassed its goals in being friendly, and was taught to students in high school and secondary school levels.
logo is a wonderful language for small children, but its graphics features are better known and more popular. for an introduction to programming that includes things other than graphics, basic is traditionally a friendlier language. both have strengths by design and in practice for teaching an introduction to programming, but logo is friendlier for young people learning graphics, and basic was probably friendlier overall.
in the 80s and 90s, some basic dialects included simple logo implementations so that perhaps you could have the best of both worlds, but mentioning basic without logo or vice versa would probably be leaving too much credit out. these languages have had a permanent effect on computing education, and you can see some of that live on in python- which is maybe a little less friendly than basic or logo.
both of these 60s-era languages got a boost in the 70s and 80s from the personal computing revolution. logo has really never gone away, it simply continues to inspire new learning environments- including most of the ones ideal for very small children. basic got a significant boost from being included on rom chips- on 8bit computers like the sinclair, bbc micro and commodore 64, as well as the ibm pcjr (which made it available on a rom cart) and the apple ii.
the language design was generally very simple to start working with, and the limited architectures of computers like the c64 meant that "low-level" coding was often fairly trivial for someone to use and experiment with even in their early teens. with 16-bit computing you had to fiddle with more complicated things like paging that were not an issue with 8-bit computers, and while 32-bit computing gave "back" flat access to ram, low-level coding had gotten a lot more complicated, at least superficially. not to mention you now had to work with the operating system. in the 8-bit days it wasnt always an issue.
while these advantages are wonderful, the main feature of basic and logo for me was always in native features, not their ability to talk to the hardware directly. the most common use for doing so was graphics or speed hacks, and when computers got faster and better graphics, a lot of those hacks were still worthwhile- but not always as necessary to learn.
i think the most important features of basic were:
1. a limited command set- this would make it relatively possible to learn the entire language, or do most tasks with an even smaller subset. you could extend it with libraries and shell commands, but so many people never needed to.
2. friendly commands that didnt have parameter counts reaching into the heavens- learning the part of the command you needed was easier, learning even the entire command was easier. there were limitations that came with this, but the kitchen-sink featuritis you get with things like python and other modern languages make them a lot more overwhelming for people.
3. just the fun of working around limitations- there were compromises and challenges based on those compromises. this never goes away with modern computers, but its easier to learn and do and work around things on a simpler system. people would say "how do you print to the printer with basic?" and youd show them how to create a string that called commands from the shell to print your file. you can still do that with python, but with python theres like a library for everything. and many of those libraries are a bit intimidating, relatively speaking. or abandoned. or they abandon the version of python another library depends on year after year. shell commands are not as cross platform, but they can be great- and easier than some libraries.
4. the syntax was definitely simpler. not every dialect or implementation was ideal, standards that had any real impact on what people actually used just didnt exist- some dialects of basic werent great. i was pretty excited to learn python in 2009. and lists are worth the square brackets, but basic was definitely easier to learn. i dont miss the type sigils (dollar signs on strings) anymore. duck typing is definitely more friendly than static. you can have duck typing in a basic dialect, but as the author of a language inspired by basic and logo, id actually lean more towards a language inspired by basic and logo than a "real" basic dialect at this point.
theres absolutely an element of dos linked to the "basic" mentality. but i think most of it predates the rise of the pc and the rise of microsoft. it took me a while to get used to the unix shell- funnily enough, i had no way of knowing id much prefer pdksh to bash- not because of ksh having any extended features, but because openbsd and pdksh are actually simpler than bash- with simplicity comes predictability, and the sort of reliability i personally subscribe to.
as a shell, dos was always more limited- even in later versions when they started getting more serious about having features. today i dont like dos at all, but im also not a fan of the fancier shells for bsd. if you like them, thats okay- im sure some of them are worth it. theyre not for me and not what i want to use, but its totally ok to have more than one shell. just like its totally okay to have more than one dialect of basic.
people still learn basic now and then, when they get into retrocomputing. i think logo has fared better, in terms of widespread use in this century. i still think the mentality around basic- more than the language itself- still holds some key to widespread computer literacy. only i think if that ever did happen, it would probably be more likely to come from a logo with more basic-inspired features, than an actual dialect of basic. id certainly love my own dialect, fig- to do better, or inspire similar projects. another very interesting language, closer and impressively familiar to fans of applescript, is nova.
its worth noting that logo itself is more comparable to lisp? it avoids parentheses, and so looks basically nothing like lisp at all, and i think maybe the reason that some of the non-graphics features of logo are difficult is the unusual way it does lisp-inspired things without parentheses. but i dont think the solution is to put more parentheses in logo. i think logo already has so many dialects that people dont even associate with logo, that the real solution is to just keep experimenting with languages- both existing ones, and ones that havent been invented yet.
### the unix mentality
i have a lot of respect for, and really do rely on, the unix mentality. not everything about it is good, and its certainly not as friendly as basic- sometimes there are things youll experience that are undeniably unixy which are just horrible. ive looked extensively at the unix-haters handbook, and have no interest in promoting the idea that PURE TRADITIONAL UNIX is the perfect thing for anybody. but i certainly wouldnt want to use brand-name unix, not even the oldest versions of bsd.
unlike apple or basic, we dont have to call it "the unix mentality", i just did so to compare it to apple and basic. this one is called "the unix philosophy", but i think we can talk about things adjacent to the unix philosophy that are worth mentioning here. they may be more accurately considered separate from the philosophy itself, but we can talk about them together if only because people tend to lump them together. this will be part lament, part critique, but mostly a defence of the philsophy and culture.
as ive already said, apple choosing unix technology didnt mean apple chose unix philosophy. i also think unix philosophy is maybe overstated- you could argue, and i think brian kernighan (the k in awk, the k in k&r, the inventor of "hello world") already has- that the unix philosophy ceased to be law with the advent of awk or perl.
i dont think hes completely wrong, but i think hes more technically correct than correct in any truly meaningful way. unix philosophy isnt a law, its a convention, and- surprise- a philosophy. subscribing to a philosophy isnt entirely the same thing as a dogma.
when you create a tool like awk, you bypass the need for many uses of many different tools. you can use awk instead of cat, for many things you might use cat for. it doesnt necessarily make sense to- i would find it painful to replace cat with awk even for trivial things, but i think anything that works like a programming language- probably wont follow the unix philosophy per se. kernighan insists that awk wasnt intended as a progamming language, even if people abuse it that way. but thats why i said "anything that works like" a programming language. which awk very arguably does.
and the bigger picture here is that the unix philosophy- when it is used and not utterly abandoned- still does what that philosophy is supposed to do. the spirit of the unix philosophy is probably worth a lot more than the philosophy itself. the philosophy itself, i believe, was based on the limitations of disk packs. we dont have to worry about that usually. but saying "oh, we did that because of disk packs" obviously ignores why the unix philosophy still matters to some people.
what if, by creating this "philosophy" around spreading the system across small units of storage, and making it easier to port to countless different systems, we inadvertantly found a rule of thumb that say, made it easier to create AND MAINTAIN something like the unix operating system? to say that awk isnt pure unix philosophy when you compare it to smaller, more single-purpose unix tools is true- compared to those, awk is a kitchen-sink tool. i tend to hate those.
but when you compare awk- which i use very sparingly, and never see a real point in complaining about it- to the kitchen-sink tools of today, its really closer to the unixy tools than the "modern" ones are. maybe its a first step in the wrong direction (which i hope to be clear about this- i think its okay if we classify awk with programming languages, and if programming languages are NOT written and compiled as discrete binaries for each command...) but its still pretty self-contained as an tiny application, the way that unix tools typically are. it may not be orthodox unix, but its at least reform unix.
so the advantages of unix philosophy are:
1. things tend to be very, very portable. you write something and youll never be able to predict the number of things it WILL run on and WILL be ported to. youre creating an absolute monster, if by "monster" you mean something portable enough to run EVERYWHERE.
2. theyre simple. this makes them easier to port and "easier" (fsvo easy) to use. this one is more debateable, because you can have a "simple" tool thats pretty obtuse or a complete pain to use- its less of a guarantee but it think theres a tendency. simple is a pretty good goal for tools. when people are criticised for taking the philosophy "too far" its often from leaning too hard on this point. or not really getting what "simple" means. i still think this point is worthwhile, and still underrated. i dont like wpa_supplicant- but i like it a heck of a lot more than praying to nm, gobject, dbus and the nonfreedesktop regime. its trivial to create a reliable script that makes wpa_supplicant less painful. maybe five minutes of work. have fun troubleshooting networkmanager- godspeed. its the sort of "reliable" that isnt, that is a perfect example of apple mentality.
3. they arent resource hungry. really unix tools are the succulents of software. while other things just suck- sorry, i know you think unix people are all toxic, some are- but theyve weathered decades of abuse from know-it-all marketers and pointy-haired-bosses and their spawn. whoever you think "shot first", im not so sure?
but above all, so much as free software ALLEGES to put users in control of their computing- simple, reliable, STABLE tools actually DO that. unstable beta versions as "stable" is a microsoft problem in the "free" software world, and while testing is GOOD actually, forcing everyone to spend years using "new" shit in production when something Already Works is NOT.
from a user standpoint, dragging everyone to the next whim of developers can only happen with either lock-in, which is monopolistic by no coincidence whatsoever, or "simulated"/"pseudo" lock-in, which is a new plague dating back to 2011 or earlier, absolutely by no coincidence whatsoever.
big tools attract big companies, who point out that its unsustainable to maintain big tools without their help and resources.
which isnt entirely untrue. its how we start with freedom and end up with open source. thats "open source" circa 1998 when it was allegedly coined. "open" goes back farther and includes some more innocent things like openbsd. you dont have to take my word for it, its just what ive noticed. caldera openlinux for a counterexample, is less innocent- and also closer to 1998.
smaller tools can also attract big companies, but smaller tools are easier to fork when that happens. openoffice devs actually fled to libreoffice, so thats a triumph- but i think libreoffice has only become less sustainable since that time. in other words, you can argue that openoffice was forkable- but like mate (which needs gtk3, a weakness to be sure) and devuan (which is quite far from the best or even most principled so-called "systemd-free" distribution) the idea that these are successful forks of what they came from is debateable. libreoffice is a true fork at least, and what i debate is not that but how sustainable a fork it is.
i want users to be free- i also want them to have control of their computing. i dont think that free software is sustainable (nor can it remain free) if it is not forkable and defensible from corporate takeover, and red hat is definitely a lesson people need to pay more attention to. but i know stallman puts no stock in the unix philosophy, not even the spirit of it- and i think this is partly why gnu will ultimately fall to monopoly, assuming it hasnt already.
there is obvious tension between a basic philosophy and a unix one. since unix creates operating systems and tools designed to withstand attacks- unix design (and i actually mean bsd) has to be taken more seriously than kids writing little basic routines.
i think basic is useful for making your own tools, for simple tools- i dont know if its the best philosophy for creating anything robust- certainly anything for a production server? but for having fun and making things that run on a personal machine, and for learning more about computers- i make use of things like this literally every day. the tools i write are translated by my own compiler into python code, and i typically recommend a server for home users that doesnt really even have cgi capability. im not telling people to screw around with production.
but i use a lot of my own tools on the desktop, for editing, to automate, to control my computing- as it were.
and i think two of these philosophies have a real place in free computing.
the apple mentality though, is really just capitalism. its cynical, smug, opportunistic- and informed as much by privilege and ignorance as it is by excellence.
i would call it a false god. but the alternatives arent perfect, theyre just conventions, preferences, sometimes really good ideas. turning any of this into dogma probably wont yield good results. but treating any of this as dogma is the sort of thing monopolies love, because people who have actual philosophies- GOOD philosophies- will always stand up to corporate bullshit. and open source built its success on the idea that corporate rule is "more reasonable" than a dogmatic opponent. those are the two options, i guess? thats a very convenient position, for corporations.
but "all corporations are bastards" includes apple. and apple mentality is still bad when you bring it to "open source" and build on weaponised bullshit of THAT variety. i like basic, more than that i like things that remind me of basic- and i like unix, but especially things that are reasonably unixy. i dont like gnome, i dont want everything to rely on dbus, i dont trust ibm and i dont think you should either.
if for some reason none of this appeals to your own computing aesthetic, as it were, i hope you will at least try to stand up to corporations controlling how we develop and use software. a free license is very important, but there are additional things we need to stand up to before we can truly say "users control their computing".
license: 0-clause bsd
```
# 2019, 2020, 2021, 2022, 2023
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
=> https://freesoftwareresistance.neocities.org