It's a good talk. The only quibble I have with it is the older I get, the less patience I have with this:
> Never mistake conformism or obedience with virtue
I would tweak it to say "Don't rely on conformism if you will gain more with autonomy." But that's the kicker; most users won't. Microsoft and Apple are trillion-dollar companies not because they've tricked people into using their ecosystems, but because those ecosystems solve most people's problems most of the time without a lot of thought.
The kind of person that slings emacs around for fun probably won't flourish lashed to Apple's mast. But most people care more about the destination than the journey for their computing, and for them, I'd recommend one of the two big OS vendors over trying to self-maintain a GNU/Linux desktop ecosystem 99 out of 100 times. What the author calls "fake comforts" they just call "comforts."
> Don't rely on conformism if you will gain more with autonomy.
The author and myself, among others, believe that we should be free to use our computing machines as we see fit. That is, the value of autonomy far exceeds that of any benefits of heteronomy. We believe that we always gain more with autonomy. That this is a minority view is of no ethical importance.
However history, both in computation and in general, has shown us there is never a shortage of those willing to sacrifice their autonomy for the initially lower cognitive burden of letting someone else make decisions for them. The costs of doing so are often only apparent after some time.
On using a system from heteronomous vendors such as Apple, Google, or Microsoft long enough, it will inevitably be changed in capricious and annoying ways. Those who abandon the virtue of freedom are forced to rationalize why accepting this abuse is actually a good thing. Meanwhile those who hold to freedom as a virtue do not. They either switch to a system that respects their autonomy, or they grit their teeth and bear the abuse without any need for calling evil good.
For what it’s worth I agree one of the things autonomy grants is the ability to give it up. I’m willing to grudgingly use closed firmwares and graphics drivers for example, but I view it as an ethical compromise and not anything good.
> That is, the value of autonomy far exceeds that of any benefits of heteronomy We believe that we always gain more with autonomy.
Unfortunately, it's simply not true for everyone. I'd hazard it's not true for most... That the set of people who can really make a computer dance if the architecture is open is a tiny, tiny set. The net harm were that to be the only option (i.e. if Apples and Microsofts were removed from the equation) would be significant.
I have older family members that I must continuously run tech support for. Most of my time is spent pruning their choices to the set of only things they want the machine to do because a wider space leads to confusion and inability to complete tasks (when it isn't being used as an exploit vector by malicious actors taking advantage of the flexible nature of a general-computing architecture to phish them).
None of this is to say nobody's architecture should be open and mutable, and I fight hard against any attempts to make closed the only option on the table. But most users aren't power users any more than most drivers want to replace their own spark plugs.
Autonomy and heteronomy should, ideally, both be options on the table, and I see no value passing moral judgment on those who adopt either. For some, a self-run architecture is the freedom of the frontier; for others, it's the freedom to get eaten by wolves in the jungle.
First, I acknowledge that your given observations are accurate. We just evidently view them in light of different set of principles.
I've also been family tech support and as often as not the problem is that some app or other stopped working properly or altogether after a system update. I often get complaints along the lines of "I used to do X this way and now I can't, can you put it back?" And I pretty much just have to say "no, I can't. You need to now do X in this new way," supposing it's still possible at all.
More generally, I believe that the West, and perhaps the world, has been sliding toward ever greater heteronomy for several generations now. Not so long ago most drivers did replace their own spark plugs. Not so long ago virtually all computer software did respect the user's autonomy. And it's not like we're talking about the dark ages, this is all comfortably within living memory. On a similar note, the right to repair tractors is another big autonomy issue for farmers, especially smaller ones that are operating on razor thin margins.
Another example is cooking. Also in living memory, virtually all food was cooked from scratch in the home. People had autonomy over what they put in their bodies. The submission to the heteronomy of a mostly processed food diet may well be responsible for a number of serious public health issues from endocrine disruption to obesity.
I agree that many would be uncomfortable with having more autonomy. Nevertheless, we as a culture should value freedom and autonomy and hold them up as values to aspire to. As you say, some will benefit from autonomy more than others, but I just don't believe anyone truly benefits from having their autonomy taken away.
By the way, I appreciate your spirit of pragmatism. I also try to be pragmatic. I recognize that in some matters heteronomy is socially beneficial. I simply believe we're striking a considerably suboptimal balance skewed ever further toward heteronomy. I think our social structures will become considerably less fragile if we work to encourage a culture of autonomy.
Thank you for this exchange. I think you've laid out your position clearly and distinctly and I appreciate it.
> As you say, some will benefit from autonomy more than others...
I think that actually sugar-coats a truly cruel approach. It's not "some benefit more than others," it's "some benefit while others suffer."
Pushing the autonomy slider to its limit is just breaking governance and letting the strong rule. Maximum freedom is nature red in tooth and claw. We build heteronomous structures to escape that chaos.
Of course, pushing the slider all the way towards heteronomy is also terrible. But given these two thought experiments, I fail to see how one passes moral judgement on someone who likes the slider tweaked a bit further towards either extreme than I do... "Moral judgment," to my mind, implies an absolute virtue that is absent from the equation. It's a struggle for balance, not for supremacy.
This is great article with a lot of insights that some of us, who have been deep in tech our whole lives, might have never encountered or considered fully. I strongly recommend actually reading the article instead of just going to the comments.
>I would speculate, in retrospect, that the
absence of tools for self learning that is prevalent in the proprietary
app ecosystem conditions users, perhaps inadvertently, into not
questioning things and conforming with the status quo.
I just want to claim that this the reason why MS Edge and Google Chrome do not have native bookmark tagging. Any feature that makes bookmarks easier to search cuts into the bottom line of Bing/Google.
> why MS Edge and Google Chrome do not have native bookmark tagging
A similar feature is lacking in file explorer GUIs, so it's likely a different reason.
My guess (from anecdotal experience) is most people don't use bookmarks, and those that do don't see value in organizing them. It takes too much discipline from the user to tag documents each time they are added. So the userbase for bookmark tagging is miniscule.
So ultimately, since so few users value the feature, no one bothers implementing it.
Same with spellchecking when the "phone home" option is turned off. It's terrible. Now fortunately, there is a system wide Spellchecking function on Windows so one doesn't have to use Chrome's.
Oh man, this resonates quite a bit, as a perpetual "how can I find the perfect system that melds with my mind" sort of person.
For me, one of the biggest lessons is really teasing out the differences between what the computer can do and is good at, and what I can do. It's VERY easy to confuse the two. In fact, I think this is why I think most AI is completely overhyped.
Computers keep perfect records and can remind you of things. This is basically the only thing the computers can definitely outdo you, the human, on. They really can't think as good as you. I think a great example of this is the Mindmap/graph stuff prevalent in many note taking deals. I used to love these things (and they're fun) until I realized that my own brain is SO MUCH BETTER than this thing at this particular task. I make these connections far better than this thing ever can.
I would argue that computers cannot autonomously do anything, anymore than a hammer can swing itself. It's only when some user sets them to purpose that they become operative. And while a computer can be set to task by another computer, ultimately some person started it going.
> This is basically the only thing the computers can definitely outdo you, the human, on. They really can't think as good as you.
Can you give some intuition about “thinking”?
Is “thinking” what I do when playing chess? In my case probably not, but let’s say a grandmaster. Because if so, in that domain, whatever a computer is doing seems superior to “thinking”.
Weirdly, I think your second bit (solving from first principles) is much closer to the truth of how human brains work than "copy-paste?" Which harmonizes quite well with my first point?
As great as computers are, I think a big problem is how they've created this tendency for bad analogies when it comes to the details. Not really different from how Frankenstein came about from people watching the advent of mechanical stuff like gears and pistons and such, and then made the LEAP to "HUMAN LIKE MONSTER."
I'm not saying it will never ever happen -- but I'm still comfortable saying, even today, computers are NOTHING AT ALL LIKE human brains.
> Weirdly, I think your second bit (solving from first principles) is much closer to the truth of how human brains work than "copy-paste?" Which harmonizes quite well with my first point?
I suppose we just disagree about this. My own experiences indicate that mostly I ape other humans rather than “figure” things out.
> As great as computers are, I think a big problem is how they've created this tendency for bad analogies when it comes to the details. Not really different from how Frankenstein came about from people watching the advent of mechanical stuff like gears and pistons and such, and then made the LEAP to "HUMAN LIKE MONSTER."
But isn’t that happening in the real world? Machines intended to present as human are becoming more human-like overtime.
> I'm not saying it will never ever happen -- but I'm still comfortable saying, even today, computers are NOTHING AT ALL LIKE human brains.
I don’t think computers need to work like brains in order to do most of or all of the things that humans do. As you pointed out a car doesn’t need to work like a human’s locomotive system to do like human locomotion.
Prot's literate emacs config[1] is easily the most informative that I've seen. I would follow his advice and not try to copy it verbatim, but rather view it as an excellent contribution to the Emacs documentation ecosystem.
I disagree. I used Emacs for a couple of decades until I hopped onto VS Code. The Python setup was particularly nice, as it did everything I hoped for with no special configuration.
That said, Microsoft’s gotta Microsoft, and between their GitHub shenanigans and their proprietary language server, I’ve switched back to Emacs. BTW, turns out elpy has been coming along nicely and offers nearly as nice of an out-of-the-box experience as VS Code, and is better in some ways.
Similar experience with doing the vim -> VS Code switch. Didn't end up actually wanting the product, but the act of temporarily switching to a different editor made me double check what was available at home.
For example, modern editors have a neat feature where they'll highlight a variable everywhere if you put your cursor on it. Nice to have, didn't think to look for it, there's a vim plugin that does it.
> For example, modern editors have a neat feature where they'll highlight a variable everywhere if you put your cursor on it. Nice to have, didn't think to look for it, there's a vim plugin that does it.
This sounds like pressing '*' over a keyword in vim.
It's striking to see the first time the author used a computer was in 2006. Given that it was in university, they aren't that much younger than I am yet my first time using a computer was about 20 years earlier, and there were computers in my primary school.
I was required by some humanities teachers in highschool in the 90s to turn in typewritten work. In at least one case it was required "Times New Roman, 12pt, double spaced" so a typewriter would not have sufficed.
Meanwhile I use Linux + Emacs as a window manager because I don't like distraction. On Windows you are always an update away from unwanted software, news, the weather, advertisements popping up or Windows not letting you turning on or off your computer because it's doing something you did not ask it to. It feels more like renting a computer than owning one.
My Linux + Emacs will remain the same until the heat death of the Universe. The last change was when I had to write an early-init.el file for Emacs 27, the next one will be probably when X is no longer maintained.
I don't particularly hate change or learning, I just like my setup. It works for me. Don't take it away from me.
> My Linux + Emacs will remain the same until the heat death of the Universe. The last change was when I had to write an early-init.el file for Emacs 27, the next one will be probably when X is no longer maintained.
Looks like I must be doing something wrong then. Every single time I re-install Ubuntu (and switch to a newer Emacs version), yet another thing in my Emacs config breaks (mostly plugins). To me it's very far from a configure-once-run-forever piece of software.
Try Doom Emacs. You can turn off evil-mode and tweak init.el to get most packages out-of-the-box, even all the language server mode-stuff of VSCode. Check which dependencies are needed and find out how to install them most cleanly, either using distro packages, nix, git, go, stack (for Haskell), npm, and the like. You can reconfigure keybindings so you get cut/copy/paste and everything you need, exactly how you need it. It's going to take a week, but should be stable after that, and you'll realize you could've theoretically done it in hours if you knew enough, which you now do. The Doom-part takes out 95% of needed configuration and makes it more ready-made for usage. It also looks and works like a modern IDE, but you scale it how you like it and have minimal annoyances to turn off.
VSCode has its own shenanigans, of constant updates, configurations, java/scala is a mess to set up, telemetry, proprietary extensions, etc. So deeper work is anyways going to need investments also there, but there's also lock-in to the eco-system and thus less freedom.
> It feels more like renting a computer than owning one.
These corporations don't really want us to own anything. There's always a "license", "terms" or whatever. They're just generously allowing us to use the computers we paid for.
They do with hardware too. Taking a problem with it depends on the end user. Many don't want the knife-seller to dictate how they should use it, what items are allowed to be cut, etc. Once the buyer buys it, they can do anything with it and take full responsibility in doing so.
Because if I buy something then it should be mine and I should be able to do anything I want with it with nobody infringing on my freedom. The total opposite of these terms nobody actually reads where people sign away all the rights that affect the corporation's bottom line for the privilege of being allowed to enjoy the product they paid for and only in the ways the company deems acceptable, a privilege that they retain the right to deny at any time for any reason or no reason.
> On Windows you are always an update away from […] news, the weather, advertisements popping up […]
Block msn.com at the DNS level. That removes almost all of these annoying bugware.
I have a bunch of these rules as part of my pihole blacklist, that works surprisingly well. Adding msn to it was really a visible change when using windows.
What do you know, I tried, and found it to be impossible. You cannot block msn.com at the DNS level, not inside Windows anyway. It's been discussed and everything:
Not sure who you have been talking to but most Linux developers who I've communicated with have strongly suggested that you do always install updates and don't skip them. It seems it is an equally bad idea to disable automatic updates on Linux as it is on Windows; unfortunately neither of them are formally verified operating systems with any kind of guarantees about correctness and security, so you've just got to keep up with patches.
Linux distros do differentiate between security updates and feature updates. Only the former are recommended to be done automatically.
Microsoft takes the idea of the latter, buries the distinction in the former idea, and shoves "feature" updates down your throat in the name of "security".
> unfortunately neither of them are formally verified operating systems with any kind of guarantees about correctness and security, so you've just got to keep up with patches.
I'm unsure that conclusion follows from those premises, since patches are not formally verified either.
I should have explained it better. Good practice would be to add a regression test when making a bugfix patch, it's not as good as formal verification but it's better than nothing.
I update once a day manually. I build a few packages, but I rely on linux-tkg for the kernel and pull the rest from AUR using git. The Arch Linux package maintainers are very reliable, rolling release is just better when testing is reliable. No big surprises.
I guess, and I would not use it on a production server, but on desktop both Ubuntu and Windows can be unstable as well despite spending months instead of weeks or days testing their updates. Arch keeps it simple, there is not much to test, basically just the core, if the kernel, systemd, X, pipewire and gcc or llvm works I can do my job or take care of the rest. Even if they don't I can take care of it. There is not much to it. One can always revert too, the packages are all git based as well. A working system is always a few commands away.
I found annoying to restart all the windows that depend on Emacs window manager (namely EXWM) every time I used to modify its conf. And I modify its conf way more often that I would for any other window manager (because I use it for programming).
Also, the fact that when Emacs freezes, everything else freezes is a huge problem.
A solution would be to use another Emacs within EXWM? That seems unrealistic: keybindings conflicts I guess, and also, then why use EXWM?
Now I'm happy with Gnome (no conf file) + Emacs with 200 lines conf file (which is small). I love that it takes only 1s to restart Emacs when I play with its conf.
I used EXWM for a pretty long while, and I liked it OK, but had similar experiences to you. Eventually moved over to i3wm, and will eventually move over to Sway whenever the chip shortage lets up and I can get a better graphics card.
What I found out:
- i3's config system is pretty extensible, and I was able to port over the majority of the shortcuts I wanted without too much trouble.
- I thought it would be annoying to have configs in two places, but because my Emacs config changes very rarely, and because my i3 config is the same and also changes pretty irregularly, it turns out it's actually not that big of a problem to duplicate setups when I want to add something. Once a setup is stable, optimizing for keeping it in a particular form can sometimes be a lot of work for very little payoff, because you don't spend a lot of time updating it or debugging it in the first place.
- EXWM's keyboard interception (particularly with evil mode) turned out to be not quite as good/low-latency as I needed it to be? And that meant that a lot of the benefits of "one set of bindings/commands everywhere that just works" were a little overstated in practice during daily use.
- On that note, you bump into the problem that stuff like your "save document" shortcut might not actually be very universal, because it's not enough to have your window manager recognize that, you also have to have the program recognize it. And it ends up getting kind of cumbersome to figure out the mappings/scripts you need for each piece of software you have installed (or at least it was for me). Again with the optimization question above, most of the work to keep my keybindings consistent ends up being with applications, not with the window manager.
- Some just general bugginess around some stuff like floating windows that were probably at least partially the result of my config.
- The single-threaded nature of Emacs was a problem, even though people told me it wouldn't be. Freezing your window manager because you run a terminal command incorrectly feels bad.
It was still usable, I was able to get work done on the machine, it was fine and I liked it at the time, I wasn't unhappy. But I've noticed that I spend a lot less time doing maintenance/setup now that I'm using i3, I have far fewer freezes/crashes, and I'm finding that this setup is able to replicate most of the other stuff I care about. There are a few things I miss, but not enough to go back.
i3 or Sway are good alternatives to EXWM, but they are not as customizable. For example I like switching between buffers using autocomplete or cycle between the ones that has the same major mode. I like to toggle certain buffers like Firefox with a shortcut that hides it if it's visible, shows it if it's hidden and opens it if it's not open. I like to filter out buffers that are not part of the current project. All of these work better if applications can be treated as buffers.
EXWM has a few issues like freezing, buffers vanishing into thin air, applications that use multiple windows or fullscreen not being displayed properly. It's developer also vanished around a year ago, it is barely maintained. It is not perfect, but it is powerful. Mucking around in text files, C and shell scripts to replicate my setup would be painful.
It's definitely powerful, but I'll push back a little bit on i3/Sway being really underpowered. There are things I can do in Emacs I can't do in i3. And the reverse is not true, Emacs is definitely capable of a superset of features. However, it's really only the very power-level stuff, the kinds of features you're listing above are all in the category of stuff that I already do in i3.
And what I found is that stuff like "toggling every Firefox window" or "listing all of my open windows and letting me fuzzy-search them" turns out to be about as power-level as I get in practice. So if losing the concept of buffers is the only thing holding you back, I still use "buffers" in i3, I use the same language to think about everything that I used with EXWM. Off the top of my head, some of the stuff I have set up:
- Multiple-key keybindings like I had in EXWM. For example, `alt-spc w d` (command window delete) hides a "buffer" instead of closing it, just like it does in my Emacs config. `alt-spc w /` splits a window right. Modes in general in i3 are abusable in some really interesting ways.
- Buffer fuzzy-search, toggles for application groups, re-grouping applications into different workspaces, etc...
- Window swapping, even between workspaces
- Window splitting/reorganizing using the same keybindings that I used in Emacs. This is a situation where i3 actually has an extremely slight edge because EXWM can't have multiple window views into the same application buffer, so you can't have two windows pointing to the same Firefox buffer. And this problem doesn't vanish outside of Emacs, but working with pure X11 gives you slightly more potential to do weird things around that.
I'm definitely not going to tell someone to switch, if you use EXWM and like it, great, stick with it, I see no problem with that at all. Just that I don't want to scare someone off of trying i3/Sway if they assume they can't script it.
----
The big difference I've found in how I build my config now is that i3 kind of takes the opposite approach to Emacs on interaction with other programs, where instead of having everything bundled inside one config file and pulling state out of those programs into Emacs, in i3 you call out of the config file into normal scripts and those scripts can control i3 with normal messaging or shell commands. So you can still build these really composable setups that are doing very complicated things, it just forces you to be a bit more Unix-y about it.
My personal experience (others may vary):
- The upside to that approach is that i3 is a bit less cumbersome to integrate with other programs, not because Emacs can't, but purely because the syntax is a little bit nicer and I don't need to worry about stuff like threading as much. Big upside in that I can have i3 triggers and commands that originate from other programs. In Emacs I can't really do anything unless Emacs started it or unless I set up a messaging system. It's kind of cool that any extension or script that's running in another program can also call into my i3-config for me if I decide to give it shell access.
- The big downside is stuff like state management, which becomes more annoying because you can't just have a list of pointers to windows that you care about stored in memory. You can do it (session variables, files, etc), but it's the reverse of the problem above, it's just more annoying than it would be in a Lisp repl where you could just make a list. I still haven't really gotten around to building an undo command just because I haven't gotten around to thinking about where I want to store the undo tree.
- And the other (slight) downside is not having nice display prompts built in by default. It's understated in Emacs how nice it is to have one generally agreed-on way to display a list of options on the screen, and Linux in general is missing that kind of universal one-off toolkit for building quick text interfaces/prompts for things. There are a lot of projects that try to fill in these gaps, I haven't found any that I love yet for quick scripting. But that could just be me.
Some of the stuff I miss from EXWM also comes from Emacs being kind of bad at playing with other programs. There's not a lot of good ways for me to add Emacs text buffers to my i3 search commands because Emacs doesn't have any good way I've ever been able find to run a command externally and then pipe the contents of the output buffer back. That means that any functionality I have in Emacs is just kind of locked in there. I can have a keyboard shortcut that opens up an Emacs frame to my TODO list and toggles that on/off, but it has to open up a frame. This has always been weird to me because I'm running Emacs in headless mode, it seems like I should be able to run commands and query text from a buffer without opening a frame.
But all that to say, if all you're talking about is toggling groups of windows or organizing views by project, then that's fine; you can do stuff like that no problem. i3 will give you access to its entire layout tree, so you can traverse it, you can get a list of buffers, and you can do things like edit it, save it to file, reload it. It's not perfect (stuff like merging trees is kind of annoying), but it's pretty usable for most stuff I've tried to do with it. It mostly just comes down to how complicated you want to get with remembering layout and managing state and stuff while you're toggling things.
Yes, I know the selected_id line is potentially vulnerable to malicious buffer names.
To split a buffer right and prompt for a new program (same setup I had in EXWM) I have <alt-spc w /> mapped to:
#!/bin/bash
selected_id=$(~/.config/i3/scripts/helpers/buffer-list.sh)
i3-msg mark __current_focused_buffer
i3-msg split h
i3-msg [con_id="$selected_id"] move container to mark __current_focused_buffer
i3-msg unmark __current_focused_buffer
i3-msg [con_id="$selected_id"] focus
Querying buffers as a helper script: (note the hurdles getting a buffer list from Emacs, and calling into multiple languages to do other parsing just because my Bash-foo is pretty bad):
#!/bin/bash
# Get emacs buffers
# echo "-eval (print-buffer-list)" | nc -U /run/user/$(id -u)/emacs/server 2>/dev/null
# TODO finish this and do something with it.
# Get i3 buffers -- I'm using node scripts for some parsing here because it's
# easier and because I can. Try to stop me.
i3_tree=$(i3-msg -t get_tree)
i3_buffers=$(echo $i3_tree | node ~/.config/i3/scripts/helpers/parse-i3-windows.js)
selected_buffer=$(echo "$i3_buffers" | dmenu -i -b -l 10 -fn 'pango:monospace 18' -p 'Choose a buffer:')
selected_id=$(echo $selected_buffer | awk '//{print $NF}')
echo $selected_id
This also can do things like filter out buffers based on titles or their position in the workspace, so basically all the same stuff you would expect from EXWM on that front.
I mentioned in the previous comment, but the other thing I've discovered switching to i3 is that being able to get low-level with some of this stuff and control i3 directly from anywhere turns out to be pretty nice for this kind of setup even if it does mean I'm forced to be a bit more verbose in my code, because my config is pretty set-it-and-forget-it; I add new capabilities only when I need them and otherwise I basically leave it alone. So I'm not really optimizing for being able to re-type this by memory constantly; I rarely edit my config once I have it the way I want it, and then I just have these "operations" like splitting/swapping as helper scripts and if I ever need to use them as part of another command, I call into them.
I want to kind of evangelize that i3/Sway are reasonably powerful, while at the same time being really clear that if EXWM is working for you, it's fine to stick with it, EXWM is great.
Hoping my parent comment doesn't come across as "you need to switch" as much as "if you want to try something else or if you want to move to Wayland, don't let this hold you back."
+1 I worked with someone in the late 1990s who didn’t run X Windows on his Linux laptop, just using Emacs as you do. He went to MIT, so at the time I thought it might be a thing there?
Have you tried the MathPlot shell backend, so you can get colored graphs in the Emacs interactive shell? I like that if I am doing any machine learning via SSH to a remote server.
I run X actually, there is an Emacs package called EXWM that let's you treat any application window as an Emacs buffer. I need X for applications like Firefox, mpv, Wine, Inkscape, LibreOffice, QEMU, mupdf and RetroArch, and I need font rendering.
I enjoyed reading the talk. But must also admit that his way of thinking is a bit alien to me. I see questions of freedom and autonomy as much larger issues than just whether you can tinker with your computer software or not. And I don’t appreciate the constant looking down on people who doesn’t want to spend their time fiddling with their software. I am very happy that OSS exists. But let’s not assume that people who prefer to use commercial software are somehow giving up their freedom. It reminds me of the argument that if you don’t own guns you are not free. Swap software for guns and you can find people arguing kinda the same way. Which is fine. I just don’t think that narrowing your view to just software or guns when talking freedom makes sense. It is so much bigger than that.
The intention is not to look down on people, but too make people aware of the places they may be giving up freedom for convenience. We all do it in one way or another, it's required for modern life.
People who prefer to use commercial software are indeed giving up some of their freedom in exchange for convenience. Almost all of us willingly give up some freedom by not growing our own food, or building our own car. This isn't a value judgement, just an observation.
I will argue that it is not true. Not using OSS or deciding not to grow your own food doesn’t mean that you give up any freedom for convenience. You still have the freedom to change your mind and start using OSS or grow your own food tomorrow. Having the choice to use OSS or not makes you more free than being forced to use OSS (or non-OSS) software. It might be true that the majority of people don’t know or have any interest in fiddling with OSS software. But that’s fine. Most people also don’t know how to build their own car or grow their own food. That doesn’t mean that they are giving up any freedoms.
> You still have the freedom to change your mind and start using OSS or grow your own food tomorrow.
Might be too late. We've long lost the freedom to simply plant the seed of an apple bought from a supermarket. Thanks to genetically modified, engineered fruits. What I mean is if we keep supporting heteronomy, the balance with autonomy will become so skewed that this option of switching to autonomy might not exist.
Today there aren't as many hardware options as they used to be, to run your own BIOS replacement like CoreBoot, or even Linux for that matter. One has to buy a Windows laptop and install Linux on it. I have to constantly turn off Secure Boot off for it to work. Windows 11 made UEFI (as opposed to BIOS) mandatory, so the laptops on market don't have BIOS anymore. This means that I don't have the option to buy a BIOS based laptop.
> Might be too late. We've long lost the freedom to simply plant the seed of an apple bought from a supermarket.
I don't think it is too late. YouTube for example has many videos showing people growing their own food (including apples) and instructions on how to do it.
> Today there aren't as many hardware options as they used to be
True. Hardware constantly changes and sometimes what was available 10 years ago no longer is. However you still have the freedom to buy a PC without any OS installed and install Linux instead of Windows.
I didn't watch the whole presentation, but I like the style of being able to read along. This guy is clearly a High Priest of the Church of Emacs. side note: I think he should just call it gimp and not worry about the heathens who think otherwise.
The third lesson is that autonomy comes at a cost. It presupposes
responsibility, and that is predicated on discipline. If you do not
want to be responsible, if you prefer to be spoon-fed what life has to
offer, then you remain in a state of heteronomy with its fake comforts.
This is not about the Mac per se. It is about understanding your
system.
Here I must stress that discipline is not the same as conformity with
the established order. No! Discipline is a virtue. It is about
overcoming your pernicious rationalisations; those that keep you trapped
in a state of perceived helplessness. It is about deciding to be in
charge of yourself and being prepared to deal with the challenges from a
position of control. Discipline is about adding structure to a
theretofore chaotic life.
Never mistake conformism or obedience with virtue.
I mean, in some sense every word is made up, so if we want to make up a new definition we can. But I was unable to find a reasonable in this context definition of progressivism outside of political philosophies:
This follows the general trend, where -ism is usually used to describe a particular school of thought, while words ending in -ness are used to describe a more general tendency.
1) Progressivism is a directly political word, if you want to use some nonstandard definition that's up to you but I think it is unreasonable to jump into a conversation with the assumption that somebody else is using your nonstandard definition. Conservativism is an often political word, with some non-political uses. When put in contrast with progressivism I think it is reasonable to assume that the political definition is being used.
2) I fear that if you make a habit of telling people that they have, by using the conventional definitions of words, misread things, you will naturally get into debates about definitions. I'm happy to not debate definitions and just use the standard ones.
The freedom argument immediately falls apart when asked to define
"computer." Stallman appeared to be fine with his TI-30, but not the
Xerox printer driver at CSAIL. What would he think of the flight
control system of the plane he boarded for his all-expenses paid talk in
Redmond?
Freedom isn't an argument, it's a principle. It doesn't have anything to do with computers per se. Look at the right to repair issues with tractors and other equipment that vendors actively stop their owners from repairing. We should be free to do as we wish with the machines we buy. If that's a PCB calculator we should be free to take it apart, desolder, and make whatever modifications we like. If it's a programmable computer, which includes PostScript printers, then we should be free to modify its programming.
I'm going to hazard a guess that he'd say the owner of the plane should at the very least be able to inspect the source code and compile it. I won't speculate as to whether he would say the owner of the plane should be free to modify the software in a way that made the plane less safe, but I would hope not.
I'd hazard a guess that he would say that the owner of the plane should in fact be "free" to modify the control software of the plane, but that the owner (airline) would then be required to re-certify the plane as well. And that might mean that the Free argument extends to the airworthiness test suite used by the manufacturer as well.
This “bynarism” of you with freedom is interesting. Freedom is also a spectrum. First, “computer” is related to the machinery, whereas “compute” is with the concept of manipulating information, from where the morals being talked about in the article and from where freedom arise. Second, I wonder why someone who defends freedom in the software realm has to cope with all “permutations” of all device drivers. You may make mistakes at times, and you may be right, wrong, neutral, not necessarily in this order.
> Never mistake conformism or obedience with virtue
I would tweak it to say "Don't rely on conformism if you will gain more with autonomy." But that's the kicker; most users won't. Microsoft and Apple are trillion-dollar companies not because they've tricked people into using their ecosystems, but because those ecosystems solve most people's problems most of the time without a lot of thought.
The kind of person that slings emacs around for fun probably won't flourish lashed to Apple's mast. But most people care more about the destination than the journey for their computing, and for them, I'd recommend one of the two big OS vendors over trying to self-maintain a GNU/Linux desktop ecosystem 99 out of 100 times. What the author calls "fake comforts" they just call "comforts."