free software resistance

 the cost of computing freedom is eternal vigilance

### five-ways-in-which-userfriendly-design-sometimes-fails *originally posted:* feb 2024 the idea that the latest userfriendly gimmick is hated simply for being friendly is marketing clickbait from the 1980s: USE THIS ONE COOL TRICK TO MAKE COMPUTING EASIER- NERDS HATE IT!!!!! if your office is arranged in a way to make your work easier, and someone comes in and rearranges everything "its easier now!" a very common reaction will be "i hate this. put it back!" this is not limited to humans, let alone geeks. cats are known to be very stressed when furniture is relocated. youre changing their interface around on them. people are rarely grateful when you cause them stress. so the way marketers and fanboys frame this is "geeks are elitist and hate things being friendlier for you." its not even true that they always hate change. but they will rarely be grateful for you making their lives more difficult, and its not always obvious why a change somewhere else will affect a geek using some different software. okay, yes- there are elitists in every industry. including the professions that require the most empathy to do a reasonable job. im not saying those idiots dont exist. at any rate, there have been moves towards userfriendliness that i admire and applaud- and theyre not all from the 1960s. though it should be noted that one of the first examples of userfriendliness i really loved, was the effort to make programming accessible to non-computer scientists. that effort resulted in the creation of the programming languages basic, and logo, in the 1960s- and they were so userfriendly that not only were they successfully used to teach programming to non-computer-scientists, they were also useful for teaching grade schoolers! i also used a mouse from childhood onwards. i was using the command line, but some of the first programs i enjoyed made the mouse very useful. lets talk about five examples i was thinking of today: ### manual labour the core premise of userfriendly design is that its EASIER. sometimes this is true, and sometimes thats a good thing. youd be surprised how often a bad design is dressed up in the trappings of userfriendly features, only to make things more difficult and tedious. automated call systems are a great example of this. isnt it much easier to talk to a menu than pressing buttons? not when you could stop in the middle by pressing a single number, and the alternative is having to sit there for 5 times as long while the entire menu is read out, slowly. some menus have the trappings of userfriendly design, but make everything LESS easy to do. and this also happens with software. people who know about design do hate this, but only because it inflicts more pain on everyone- including those who believe the marketing hype that THIS IS SO MUCH BETTER! no, it isnt. moving to your own phone, one of the biggest changes in gui design was extensive reliance on big chunky menus that fit less than a dozen options on the screen at once. easy to touch with a finger? yes. but now you have to flip through menu, after menu, after menu. while this is even worse than before, its not entirely new. poorly designed gui apps used to make you do similar with the mouse. and its not limited to menus- having to do the same task dozens or more times instead of being able to group and repeat actions is just brutal- its not easier. its incredibly tedious. but good design helps. poor application of designs considered "good" can still be awful. ### missing features no type of design is immune to this sort of decision making, but traditionally a gui (particularly for configuration) will have fewer features available than an alternative, like a config file. some config files are awful too- designing a config file to be friendly is an art, just like designing a decent gui is. but with configuration dialogues- and other features that are used more frequently, its not uncommon to have a lighter complement of settings in the gui, to make them easier to find. and thats not always a bad thing- even in the 90s, windows would compromise by putting loads of things in the "advanced" tab. two things went wrong, from putting really basic stuff with "advanced" youd never expect to see there, and simply deciding that user meddling was too much trouble, then removing features that used to be in the gui anyway. alex limi is probably the worlds worst example of this, insisting that making it too easy to disable javascript was "KILLING" websites- while killing the beloved option in firefox. settings registries are of course, a bandage on this. they are also tedious to use, tedious and click-heavy to modify, VERY tedious to find things, and in firefox, everything is named EXTREMELY poorly using what appears to be a thousand different conventions. awful. but admittedly better than no bandage. when windows moved everything to the registry they knew that, on average, they were taking control away from users. it even acted like a sort of copy protection scheme for programs. its easier to put more features on the command line, where "typical" users will never bother anything. ubuntu broke that rule by following it, to the point where every user became accustomed to cutting and pasting snippets to accomplish anything. while ubuntu is awful- and not for being userfriendly, and while some of those snippets were also needlessly ridiculous- ubuntu doing this was good, actually. ### no receipt when i work on a lot of things at once, if im using a gui i have to keep track of what im doing in my head. i move something and it just disappears. did it go where i intended? probably. if it didnt, i can go looking for it. this is a distraction. "undo" is unreliable here. what if you accidentally undo twice? now its even more work to keep track. having a list of things you just did on the screen is great. sure, you could add this to a gui. its just a de facto feature of having simple commands though. the thing you just did is right there on the screen, if you got up or left the window to deal with a notification or to check some instructions or write a quick message, theres a log of every action you just took to get you back on track after. this isnt typically added to a gui and it isnt usually added to other tools, either. its a nice side effect of the command line. its also a feature of calculators that print out everything youve entered into them. maybe youre thinking "but the history on the screen gets distracting too!" i agree. thats why i clear it often. but only when i want to. ### miseducation if youre wondering why someone might hate a feature of a program they dont even have to use, consider the effect it has on other users. a gui tool designed in a beneficial way can make it easier to see the advantages of the command line- by demonstrating and importing them in some way to the gui. sometimes this is done well, and thats good. other times it creates confusing or poorly designed abstractions, which give a bad or unnecessarily misleading impression of the thing it is emulating. some of this is possible through bad design, but this also happens due to marketing. exaggerating the pain of using a more traditional tool or pretending the gui tool invented that feature simply leads to users who are miseducated about other tools. when marketers teach users things that arent true, it would be nice if such claims could be countered. but fanboys teach that the only people who disagree with marketers are elitists, creating a sort of cult of the gui that helps no one but the companies or projects making these tools. dealing with cults is annoying, whether theyre techbros who like older tools or techbros who love new stuff every few months. honest discourse is much too rare, but nearly the only thing that can solve this. ### dependence similarly, tools that could be a little more familar from one option (or one project, or one vendor) to the next but forego that to simply pile feature on top of feature, on top of feature, lead to a cycle of getting people to depend on a kitchen sink that simply disappears when it becomes impossible or unprofitable to maintain. tools that are designed more intentionally, not just to create, follow and then abandon fads, are less prone to this. making your user depend on a single tool for everything, which isnt sustainable and will simply make them helpless again in a few years, is never the best kind of "userfriendly" but its one of the most common tropes of software that claims to be friendlier- and more "modern" in design. the problem isnt friendly- the problem isnt modern- the problem is hype, gaslighting, marketing and the bad design that hides behind all of these things. its not just the elitists. people dont like being told a bunch of nonsense they know isnt true- or thats only half true. so when people get smeared for being honest and actually caring what developers are doing TO users, its a shame. you wont find marketers who are totally honest with you. because that isnt marketing- its education. on a personal note, this article was written in a text editor that also lets you run commands by typing them and hitting two keys- one after the other, while holding the first one down. it has native, built-in commands and when those arent used, it runs lines of shell code. the output is inserted on the lines following the command you just ran. instead of editing a single line of output, you can immediately edit several, then if you wish, run those as commands as well. it doesnt do tab complete, so for commands where tab complete is incredibly useful, or text-only programs that are also interactive, i still use a regular term window. it DOES let you select several lines and run some commands on all of those lines at once. a number of text editors have such functionality- emacs and vim are the most famous. those are very powerful and very cool, but despite numerous tutorials im still more comfortable with an editor thats closer to "notepad with a magic shortcut", than an ide that practically comes with its own operating system. im not saying one is better than the other- at least not with text editors, but im typically happier using tools that have fewer features and fewer steps to learn. even if theyre wonderfully powerful and can be combined with other tools in incredible ways. license: 0-clause bsd ``` # 2018, 2019, 2020, 2021, 2022, 2023, 2024 # # 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