1. 26
  1.  

  2. 31

    I feel like the whole “Unix minimalist reactionary” scene is getting less detached from things that matter. Does anyone actually have any real qualms with D-Bus beyond aesthetics? It feels throwing stones from glass houses in the wake of horrible but fundamental like the POSIX shell that they enshrine as right. Suffering without working infrastructure like audio just seems like a self-own to prove a point.

    Side note: Using VMS makes me realize how crazy this all is: here is an OS with a far better help system that has interactive drill-down and - get this - examples! All while POSIX is stuck with 1970’s roff infodump hell (and they like it!) and GNU’s only improvement to this is a degenerate clone of ITS’ help system. It makes me really think so many of the people who think this is a good idea haven’t been exposed to anything else - and with how dominant Unix has been, why would they?

    1. 12

      I have some big issues with this kind of philosophy. The argument that software is getting too complex might hold some water, but a lot of that complexity is actually (imo) due to the complexity of the world we live in, and the fact that the software is solving complex problems.

      If this “minimalist” philosophy offered simpler ways to model the world, and simpler solutions to the aforementioned problems then I might buy the argument. However the actual tactic seems to be just refusing to solve any problem beyond a certain level of complexity. (See KISS’ refusal to support internationalisation).

      It’s all well and good for making certain desktop users feel happy about the aesthetics of their system, but I don’t see it really has much to offer the world as a set of ideas beyond that. (In fairness, I don’t think anyone has ever claimed that it does have anything further to offer, but if this is the case then I don’t see there’s much to actually say or discuss about it).

      1. 11

        Suffering without working infrastructure like audio just seems like a self-own to prove a point.

        I’m not “suffering” though? I thought I made that clear in the post.

        1. 5

          My love of {Open,}VMS is well known. For a while my vanity domain was hosted on a web server running on VMS with a DEC hobbyist license on an old VAXstation under my desk at home (back when I was willing to spend whatever it was to get a static IP from…whatever that DSL provider was in the US that catered to that. Speakeasy I think?)

          That machine died and my VMS host moved to being VMS on an emulated VAX running under SimH on Linux. The Linux box acted as nothing more than a bootloader to get VMS up and running.

          I’m waiting with bated breath to see what VMSI does with the x86-64 port of VMS. If they have a hobbyist program or just reasonably priced single-user commercial licensing…that’ll be fun.

          1. 1

            I’d love to play around with a reasonably priced/licensed VMS.

            1. 2

              Check to see if DEC…I mean Compaq…I mean HP…still has their hobbyist program going (it was through DECUS, the DEC User Society). If so, you can get a license to run VMS on Alpha or VAX hardware. SimH on modern hardware can easily run a classic VAX running VMS and better-than-full speed. It’s fun.

              EDIT: Yep, looks to be going strong: http://www.openvmshobbyist.com/news.php

              1. 1

                It was actually recently announced that HPE is ending the hobbyist program:

                Dear HPE OpenVMS hobbyist,

                This is to inform you that HPE is concluding the HPE OpenVMS Hobbyist license program in alignment with the HPE >OpenVMS support roadmap. If you wish to understand more details, please reach out to us at the earliest through the usual license renewal webpage.

                Thank you.

                HPE OpenVMS team

                See here: https://groups.google.com/forum/?hl=de#!topic/comp.os.vms/_yh0_u7Vtj8%5B1-25%5D

                1. 1

                  Well crap.

                  I hope VSI either restores the hobbyist program or has a relatively cheap hobbyist license. I’d be willing to pay, say, $100 for a copy of OpenVMS that runs in VirtualBox or something.

                  1. 2

                    VSI seems like the kind of people who would continue it. To me it looks like they actually want VMS to succeed, rather than just milk its legacy users.

          2. 3

            Suffering without working infrastructure like audio just seems like a self-own to prove a point.

            In my experience, and when I had more time to play with these things, one might get the audio to work, or usb devices to be detected, but everything seems unstable. Considering how complicated and dependent everything from the operating system to the hardware has become, the attitude seems to ends up not reducing complexity, but ignoring it.

            Using VMS makes me realize how crazy this all is: here is an OS with a far better help system that has interactive drill-down and - get this - examples!

            Is there any place where one could still find these documents?

            1. 1

              Is there any place where one could still find these documents?

              The WASD web server has a bunch of scripts out of the box, including a help viewer, which is conveniently hosted online for you. There’s also other manuals too, usually in the book format (which WASD also has a reader for) or HTML (they didn’t ship a VAX/VMS version of Netscape for nothing!)

            2. 3

              As someone who had a stab at creating a minimal musl based distro some years ago I’ve now settled on a pragmatic approach that works for me: Debian Stable with a few packages rebuilt to strip away dependencies/features that I do not use. Some examples:

              • vim-nox without Ruby/TCL/Lua (but with Python for :Black).
              • ffmpeg/mpv with fewer dependencies.
              • —no-install-recommends as default.

              With the package splitting done in Debian this leads to a fairly minimal system. Far less bytes on disk compared to similar Arch setups. You still have to pay the Glibc tax on binary size, but I have given up on getting a musl system that supported all my use cases.

              1. 2

                I’ve found Arch’s mpv package to be particularly bad with needless dependencies. A while back I was able to shave off 72 MB (!!!) of dependencies and 60% size reduction in mpv itself.

                I also remember trying to take a stab at a leaner ffmpeg, but wasn’t able to get things working. I forget why though. How’d you slim down your ffmpeg?

            3. 10

              GNOME may be a monstrosity, but it has the most comprehensive accessibility support of any free desktop environment. To some extent, what some consider bloat is the accumulation of features that are necessary for other people.

              You may argue that blind people, for example, should use the text console with a screen reader like Speakup that’s designed for that environment, or something like Emacspeak. But sometimes you have to use mainstream GUI applications, in a web browser if nothing else. And, believe it or not, a fully accessible GUI can actually be more user-friendly than a screen-oriented console program with a screen reader.

              As for low-tech or no-tech solutions, being visually impaired myself, I remember too well how tedious handwriting was when I had to do it in school. And I doubt that any of my blind friends would want to go back to a mechanical brailler or, worse yet, slate and stylus. And remember that with digital text, we can read each other’s writing regardless of which sense we use to do it.

              If low-tech or no-tech approaches work well for you, then go for it. I’d suggest being careful, though, if you ever have thoughts of imposing such solutions on others.

              1. 2

                I see your point! And never, will I try imposing these on anyone. I think I understand (at least from the responses here), that minimalist lifestyles aren’t for everyone. :)

              2. 9

                When I was younger, this would have been my jam. Years ago I would spend hours honing little custom scripts to get something almost-sorta-kinda working for “desktop notifications” without D-Bus or whatever was the protocol-du-jour.

                I’d hack together little scripts to get screen locking to happen after a timeout, talking to the X Server directly and using the XScreenSaver extension. I’d tell myself that it was okay that my laptop didn’t put itself to sleep when I closed the lid or that sound only worked kinda-sorta or that my external monitor wasn’t detected when I plugged it in without restarting my window manager (which I’d patched all to hell and/or written myself, of course).

                Those things are fantastic. They’re exactly what I needed to really learn how things worked under the hood. I wouldn’t be where I am today without having done all that….but where I am today is a place where I have a mortgage and kids and a very demanding full-time job and I just want my computer to work without me having to fiddle with it too much so that I can do what my job requires and maybe do some recreational coding in the evening. I want my external monitor to come to life when I plug it in. I want to listen to my music when I hit play. I want desktop notifications to work reliably so I know the battery’s almost dead or that I have a meeting in ten minutes.

                Please note that this isn’t a dig at KISS Linux! It’s envy. I wish I could be in that sort of situation again (but, you know, still with my kids and house and all…).

                1. 4

                  I have to admit there are many things I’m just not interested in learning. I’m sure getting suspend, or desktop notifications to work is someone’s passion, and there are already people working to make that work for everyone out of the box, evidently—those things just work in my distros of choice. Those people may not be interested in routing protocols or other things I’d like to just work for everyone. I’d rather spend my time making things that help me or both me and other people in the long run than creating one off solutions.

                  1. 2

                    I’d rather spend my time making things that help me or both me and other people in the long run than creating one off solutions.

                    See also

                    1. 3

                      Not that it’s always wrong to do things that don’t scale. I have a set of custom .XCompose bindings for example, it’s a) an “API” that has a decades long track record of compatibility b) a case when providing a set of bindings that suits everyone is impossible. The default covers the needs of most people well, just not all my needs/wants, but it provides an easy way to fix it, and I’m happy with it.

                2. 25

                  “Poetterware” ? Please, just stop treating other people’s work like this.

                  1. 18

                    Of all the many unlikeable things about the entire anti-systemd subculture, the rampant ad hominens against Lennart Poettering are probably the worst.

                  2. 6

                    In the event that Dylan decides to call it quits and switches to Windows, we can simply just bump versions ourselves, locally!

                    This is fine until it isn’t. If everyone just used semver. /s

                    My problem with this is that every time you bump a library version because of some kind security fix (or, rarely, a new feature you need or want) there’s a chance your depending software won’t work. I don’t want to do that, that’s why I use a distro that more than 5 people use.

                    Sure, this approach is fine if you’re a specialist in an ecosystem (many people used to build their PHP setup themselves, many years ago, because you’d add or remove 20 extensions anyway, so you kinda became a bit of an expert on the direct dependencies as well) - but I simply don’t get why you’d want to take this on yourself for a whole linux userland.

                    And yes, as a Debian user, of course I sometimes want new versions, but I much prefer a stable base system. Not totally out of date, but I’m no fan of the bleeding edge anymore. So I often use nix-pkg to update a few things and have them not interfere with my base system. And yes, I should maybe look at nix for the whole system, but I haven’t “reinstalled” one of my machines since early 2017 I think. And for my work machine I’m kinda forced to use Ubuntu, anyway.

                    1. 1

                      My problem with this is that every time you bump a library version because of some kind security fix (or, rarely, a new feature you need or want) there’s a chance your depending software won’t work. I don’t want to do that, that’s why I use a distro that more than 5 people use.

                      slackware is really solid in this regard, even -current, i never experienced broken things due to a package upgrade. maybe thats because there are nearly no patches applied to upstream sources.

                    2. 13

                      However, using a system without notifications has been very pleasant. Nothing to distract you while you’re in the zone

                      However, I used this to my advantage and decided not to consume media on my laptop

                      Taking away audio and notifications feels more stupid than simple to me.

                      1. 7

                        well, in a saner world there wouldn’t be dbus required for a bluetooth stack and notifications. most linux distributions sure have the “looming npm left pad disaster” feeling for me.

                        1. 14

                          I think dbus isn’t so bad; you need some way to do IPC, and dbus isn’t really worse than anything else I’ve seen. For example for notifications, how else should dunst get the information from another application to display anything? There are probably some things that could be done better in hindsight (there always are), but I don’t see any major concerns.

                          If you really don’t like the reference implementation, then there is a published protocol and you can implement it yourself.

                          I’m not sure where the author got the notion that dbus is “Poetterware”, with just 67 commits over a 11-year span he’s hardly a top contributor, and I don’t see his name on the specification doc either. Not that this is a very good argument in the first place.

                          1. 9

                            I think dbus isn’t so bad; you need some way to do IPC, and dbus isn’t really worse than anything else I’ve seen.

                            To expand on that, dbus is basically the outcome of a unification of previous IPC systems, namely DCOP and Bonobo (essentially CORBA) and as such it was very welcome that not every DE decided to do their own things and not be interoperable with any other software on any other DE. And dbus turned out a lot better than another (classic, Unixy, thus by definition good) protocol, ICCCM.

                            1. 2

                              I think dbus isn’t so bad; you need some way to do IPC, and dbus isn’t really worse than anything else I’ve seen. For example for notifications, how else should dunst get the information from another application to display anything? There are probably some things that could be done better in hindsight (there always are), but I don’t see any major concerns.

                              just brainstorming here: file structure like /proc and inotify for listeners to avoid polling.

                              If you really don’t like the reference implementation, then there is a published protocol and you can implement it yourself.

                              haha :)

                              Not that this is a very good argument in the first place.

                              it’s politics after all. poettering isn’t exactly known for being non self righteous.

                              1. 2

                                Yeah, there are other ways of doing it for sure, such as sockets and whatnot. Every approach has their upsides and downsides. Doing a FS implementation would make it less cross-platform for example (dbus as a userspace daemon runs just as well on OpenBSD), and sockets are unstructured.

                                Reasonable people can disagree on what the “best” way is, and different usages have different requirements, but I don’t see anything that’s so bad about dbus that makes it so terrible that “in a saner world there wouldn’t be dbus required for a bluetooth stack and notifications”? I never looked much at the dbus internals, but as a user I’ve never had to think about it, which is a good thing.

                                1. 3

                                  Doing a FS implementation would make it less cross-platform for example (dbus as a userspace daemon runs just as well on OpenBSD), and sockets are unstructured.

                                  it doesn’t even have to be a kernel implementation, again brainstorming: with 9p/fuse for example it could be a directory for publishers and subscribers creating files there, reading blockingly. the publisher then would write to these files. 9p/fuse should be mountable nearly everywhere.

                                  i’m not sure that i’d say freedesktop.org targets their standards being cross platform. that dbus is cross platform is because it’s so old. maybe it’s just a lucky coincidence.

                                  1. 4

                                    The important question to ask is “Why is this protocol better?”. Why is an IPC daemon that you interact with through fuse meaningfully better than an IPC daemon you interact with over sockets?

                                    1. 2

                                      because files are the default mechanism, everything can use files without library magic as long as the contents of the files are easily parseable (like lines of tab delimited fields). easily parseable as requirement has the side effect that things don’t get features thrown in.

                                      but it’s kind of moot to discuss these things here lately. even technical people are satisfied with the status quo, the web is the new os, so it’s really irrelevant in the end.

                                      1. 2

                                        It’s not really library magic, it’s a defined protocol over a socket.

                                        Text files are certainly simpler on first glance, but unstructured text has its own problems of complexity and inefficiency.

                                        It is not at all clear to me that a dbus-fs would be better, or that the 9p way is actually better in general than the way BSD and others prefer APIs and libraries.

                                        1. 1

                                          I don’t know about dbus specifically, but how many different implementations are there which aren’t wrappers and implement every feature?

                                          Text files are certainly simpler on first glance, but unstructured text has its own problems of complexity and inefficiency.

                                          so, \n delimited rows and \t seperated columns are unstructured? also, don’t miss that part of the structure can be represented as file hierarchy, not file contents.

                                          It is not at all clear to me that a dbus-fs would be better, or that the 9p way is actually better in general than the way BSD and others prefer APIs and libraries.

                                          i was just thinking out loud about how things could have been different. But most of the time here the answer (at least between the lines) is that I’d better be grateful that these things are barely working now (systemd, dbus, the web, etc.) because now we finally are “on par” with windows. It sometimes feels like inadequacy paired with stockholm syndrome. it’s just not really fun to discuss this way. sorry. “better” is too hard to define in absolute terms.

                                          nb: i’m a bit tired and grumpy ;)

                                          1. 2

                                            dbus allows transmitting all kinds of binary data. Trees and images and objects aren’t so easily expressed as tab delimited tables. That means that there has to be a richer format. If you don’t specify one then you just end up with something adhoc and that’s even more work.

                                            I think Dan Luu makes a good argument about this: https://danluu.com/cli-complexity/

                                            I think it’s good to want to make things better, but there are genuine problems with the way that UNIX and 9p worked and there are advantages to the way things like dbus work.

                                            Similarly with the web, loads of people grumping, often with very little appreciation for what the web actually is or how to do better. I don’t like a lot of the modern web either, but there are important use cases that are not fulfilled by just turning the clock back. The web gives us an application platform that works almost everywhere and is fairly well sandboxed. That’s a huge development.

                                            1. 1

                                              I think it’s good to want to make things better, but there are genuine problems with the way that UNIX and 9p worked and there are advantages to the way things like dbus work.

                                              yes, they aren’t perfect of course. i just think that most of the current technologies are trying to solve too much, leading to exploding complexity, where things should better be compartmentalized. this isn’t universally so, from what i’ve seen about wayland, it seems like an improvement over x11 for the most parts. dbus is kind-of middle-ground, i think it is too complex, but there could be much worse things in terms of complexity.

                                              Similarly with the web, loads of people grumping, often with very little appreciation for what the web actually is or how to do better. I don’t like a lot of the modern web either, but there are important use cases that are not fulfilled by just turning the clock back. The web gives us an application platform that works almost everywhere and is fairly well sandboxed. That’s a huge development.

                                              well, the web “won” because it solved cross-platform ui and getting around shitty firewalls. it’s a hack to keep decades of hacks usable :)

                                    2. 2

                                      inotify is itself a Linux specific API, though, so now you need an abstraction layer for that.

                                      1. 1

                                        see that “brainstorming”? please also read my other comment for a maybe potable solution

                                        sorry, read that on mobile, you are referring to my first suggestion. i don’t know enough about file-change-notification-implementations across systems, but this seems like it could be reasonably abstracted.

                                2. 2

                                  I’m not sure where the author got the notion that dbus is “Poetterware”,

                                  Because of the tight systemd integration. It’s a silly association fallacy and not a technical argument by any means.

                                  1. 2

                                    i guess the association is due to freedesktop.org choices of “standard” technologies

                            2. 5

                              Someone used the phrase “progress backwards” at a talk I was at once, and it’s really resonated with me. It looks like you’ve come to a lot of the same conclusions as I have about how technology should be. A good read.

                              1. 1

                                This is a beautiful read, and it moved me to try kiss myself, on a virtual machine. As for alternative, minimalist systems I can suggest also openbsd, dragonflybsd, voidlinux (with musl) and slackware. The last one is not minimalist “by default” but the package system is extremely clear and open, and you can remove very easily anything yo do not want.