Threads for mtset

  1. 7

    For example, it is possible to adjust the white balance or auto-focus on a camera app, or make an event recurring on a calendar app. These advanced controls can be tucked further away, as the majority of users will not need to see their UI cluttered with them.

    That designers believe we should design primarily for the type of user that never creates a recurring event in their calendar app helps me understand the sorry state of consumer software much better.

    1. 3

      Not so much “never”, it’s the 80/20 rule - in this example - “recurring event” may well be better classified as an “obvious” interaction. Do 80% of GCal’s billion users regularly make new recurring events? Maybe. Sadly I don’t think designers are asking these questions. So, you’re absolutely right, consumer software usability is a sorry mess.

      1. 3

        The 80/20 rule is, itself, a rule of thumb, something to consider in a wider context. It’s sometimes true that the importance of a function is proportional to how often it’s accessed, but that’s not always the case. As a trivial counter-example, consider the case of an “emergency shutdown” button: it’s rarely used – ideally, never – but tucking it away someplace non-obvious is a very bad idea.

        Maybe this makes sense for GCal (I obviously don’t have access to their telemetry data). But speaking of calendaring software and recurring events in general, while it’s likely that 80% of a program’s users don’t need that, it’s also likely that the 20% who do use such an “advanced” function are users who rely heavily on their calendar tool, and presumably value its efficiency, since nobody uses calendar tools for fun. Tucking the features these users need behind all sorts of hamburger menus and intermediary windows is unhelpful to the users who are most committed, least likely to switch to other solutions, most likely to advocate for your software, and easiest to retain as paying customers. Depending on how you do it, that may also end up reducing efficiency exactly for the target group that values efficiency the most, while offering marginal usability gains to the target group that already ignores most of what’s on the home screen anyway and is likely to be swayed by competitors through little more than a marketing campaign that cleverly uses pictures of cute but slightly angry cats.

        These days, a considerable chunk of the software industry cannot really monetize the applications it offers per se. Mobile apps are very cheap, and it’s hard to get people to pay for some types of applications anymore – browsers, email, RSS clients, even word processors in many professional fields, to cite a few examples. Companies that find themselves in this kerfuffle certainly need to optimise their designs “for the 80%” and attach zero weight to “the 20%”, because that’s where user conversion is more likely to happen, and if you’re primarily relying on monetising user accounts (through advertising, sponsorships or whatever) and low-tier paid subscriptions (with minimal features), user conversion and low-tier customer retention, rather than heavily-invested, loyal, long-term customers, are your primary money printing machines. But IMHO we shouldn’t mistake the principles used to design this kind of software for universal design principles, which result in good interfaces wherever you apply them.

        (Edit: just to be clear, I’m not discounting the 80/20 rule nor your idea of applying it, and especially not the way it’s applied by GCal, since it’s unlikely that, after thinking about it for of two minutes, I can outmatch Google’s marketing team, which has access to data that I don’t have, and obviously has to be primarily concerned with the question of how to bring more money, not how to make a better calendaring tool. I just wanted to add some nuance to the way the 80/20 rule is considered. I think modern UX design is getting increasingly dogmatic and I like to poke at it once in a while :-) ).

        1. 1

          Thanks for this excellent, well considered reply. I find myself strongly agreeing with all you’ve written.

    1. 7

      Do not do this. Godot Engine and the applications it creates have no accessibility bus support and the developers don’t see it as a priority. It is immoral to build applications that inherently exclude blind and motion-impaired users, and illegal to sell such software in some jurisdictions. Use native frameworks or a framework with accessibility tooling built in like GTK or Qt.

      https://github.com/godotengine/godot/issues/14011

      1. 8

        It is immoral to build applications that inherently exclude blind and motion-impaired users

        I agree that accessibility is important, but what about applications that are inherently content-driven, e.g. a photo editor, video editor, animation software, etc.? Godot seems to have a great foundation for building UI applications, and may be a valid tool for the job in many of these cases. I wouldn’t say that making an inaccessible photo editing or animation app is “immoral”; no amount of screen reader support can describe image effects, etc. in a way that would make the app legitimately usable for someone with impaired vision.

        1. 5

          This is an obvious exception, yes. Your application is not excluding blind people, since even an accessible application would not make that activity accessible. That said, you still need to make it accessible to people with other disabilities!

        2. 3

          It is immoral to build applications that inherently exclude blind and motion-impaired users

          In reality that’s true for a huge portion of applications build, also ones built with ones that technically use the web, QT, etc.

          https://github.com/godotengine/godot/issues/14011

          There’s a follow up for this issue:

          https://github.com/godotengine/godot-proposals/issues/983

          While I in general agree that accessibility is lacking, it’s also a reality that affects huge amounts of software. Given that we are talking about a game engine that is not backed by a big corporation (like Qt) and given that Godot is certainly not a major player for UI and there is that open issue and I am sure contribution would be welcome I’d at least see better targets for the statement “It is immoral to build applications that inherently exclude blind and motion-impaired users”.

          I don’t agree with the author’s take on accessibility either, but I don’t really see why the blame should be put on the a game engine that is completely open source and so far uses the UI framework mainly for its editor.

          With that said the whole thing also reads more as a “hey, you can do UI with this thing you might not have heard of and it does a lot of stuff right”. At least I don’t think the expectation is that everyone switches away from Qt, SwiftUI and the web which btw. is a target platform.

          1. 5

            I don’t agree with the author’s take on accessibility either, but I don’t really see why the blame should be put on the a game engine that is completely open source and so far uses the UI framework mainly for its editor.

            I agree! I don’t blame Godot at all. I think building desktop apps with a game engine at all is generally a bad idea.

            In reality that’s true for a huge portion of applications build, also ones built with ones that technically use the web, QT, etc.

            That don’t make it right.

        1. 9

          When you tell them the original game Elite had a sprawling galaxy, space combat in 3D, a career progression system, trading and thousands of planets to explore, and it was 64k, I guess they HEAR you, but they don’t REALLY understand the gap between that, and what we have now.

          Hi! I’m a young programmer. When someone says “this game had x, y, and z in (N < lots) bytes”, which I hear is that it was built by dedicated people working on limited hardware who left out features and polish that is often included in software today, didn’t integrate it with other software in the ecosystem that uses freeform, self-describing formats that require expensive parsers, and most importantly took a long time to build and port the software.

          Today, we use higher-level languages which give us useful properties like:

          • portability
          • various levels of static analysis
          • various levels of memory safety
          • scalability
          • automatic optimization
          • code reuse via package managers

          and the tradeoff there is that less time is spent in manual optimization. It’s a tradeoff, like anything in engineering.

          1. 8

            While I’m curious about the free-form, self-describing formats you’re talking about (and why their parsers should be so expensive), cherry picking from your arguments, there are a lot of interesting mismatches between expectations and reality

            which I hear is that it was built by dedicated people (…) and most importantly took a long time to build and port the software.

            Elite was written by two(!) undergraduate students, and ran on more, and more different CPU architectures than any software developed today. It’s true that the ports were complete rewrites, but if wikipedia is correct, these were single-person efforts.

            • various levels of static analysis
            • various levels of memory safety
            • code reuse via package managers

            Which are productivity boosters; modern developers should be faster, not slower than those from the assembly era.

            • scalability

            Completely irrelevant for desktop software, as described in the article.

            • automatic optimization

            If optimization is so easy, why is software so slow and big?

            My personal theory is that software development in the home computer era was sufficiently difficult that it demotivated all but the most dedicated people. That, and survivor bias, makes their efforts seem particularly heroic and effective compared to modern-day, industrialized software development.

            1. 7

              My personal theory is that software development in the home computer era was sufficiently difficult that it demotivated all but the most dedicated people. That, and survivor bias, makes their efforts seem particularly heroic and effective compared to modern-day, industrialized software development.

              I tend to agree. How many games like Elite were produced, for example? Also, how many epic failures were there? I’m not saying I know the answers, I just don’t think the debate is productive without them. Pointing to Elite and saying “software was better back then” is just nostalgia.

              Edit: Another thought, how much crap software was created with BASIC for specific purposes and we’ve long since forgotten about it?

              1. 2

                I’m curious about the free-form, self-describing formats you’re talking about (and why their parsers should be so expensive)

                I’m mostly talking about JSON. JSON is, inherently, a complex format! It requires that you have associative maps, for one thing, and arbitrarily large ones at that. Interoperating with most web APIs requires unbounded memory.

                You respond to my assertion that building software in assembly on small computers requires dedication by saying:

                Elite was written by two(!) undergraduate students,

                But then say:

                My personal theory is that software development in the home computer era was sufficiently difficult that it demotivated all but the most dedicated people.

                It seems like you agree with me here. Two undergraduates can be dedicated and spend a lot of time on something.

                [scalability is] Completely irrelevant for desktop software, as described in the article.

                No, it’s not. Scalability in users is irrelevant, but not in available resources. Software written in Python on a 32-bit system can easily be run on a 64-bit one with all the scaling features that implies. There are varying shades of this; C and Rust, for instance, make porting from 32 to 64 bit easy, but not trivial, and assembly makes it a gigantic pain in the ass.

                Which are productivity boosters; modern developers should be faster, not slower than those from the assembly era.

                I don’t agree. These are not productivity boosters; they can be applied that way, but they are often applied to security, correctness, documentation, and other factors.

                1. 1

                  I’m mostly talking about JSON. JSON is, inherently, a complex format! It requires that you have associative maps, for one thing, and arbitrarily large ones at that. Interoperating with most web APIs requires unbounded memory.

                  JSON is mostly complex because it inherits all the string escaping rules from JavaScript; other than that, SAX-style parsers for JSON exist, they’re just not commonly used. And yes, theoretically, I could make a JSON document that just contains a 32GB long string, blowing the memory limit on most laptops, but I’m willing to bet that most JSON payloads are smaller than a kilobyte. If your application needs ‘unbounded memory’ in theory, that’s a security vulnerability, not a measure of complexity.

                  (And JSON allows the same key to exist twice in a document, so associative maps are not a good fit)

                  It seems like you agree with me here. Two undergraduates can be dedicated and spend a lot of time on something.

                  But it also puts a bound on the ‘enormous effort’ involved here. Just two people with other obligations, just two years of development.

                  No, it’s not. Scalability in users is irrelevant, but not in available resources. Software written in Python on a 32-bit system can easily be run on a 64-bit one with all the scaling features that implies. There are varying shades of this; C and Rust, for instance, make porting from 32 to 64 bit easy, but not trivial, and assembly makes it a gigantic pain in the ass.

                  As someone who has spent time both porting C code from 32 bit to 64 bit, and porting Python2 string handling code to Python3 string handling code, I’d say the former is much easier.

                  And that’s part of my pet theory for why modern software development is so incredibly slow: a lot of effort goes into absorbing breaking changes from libraries and language runtimes.

                  1. 3

                    You’re moving the goalposts. My initial point was that, given some source code and all necessary development tools, it’s far easier to expand a Python or Lua or Java program to use additional resources - such as but not limited to bus width and additional memory - than an equivalent assembly program. You’re now talking about something totally else: problems with dependencies and the constant drive to stay up to date.

                    my pet theory for why modern software development is so incredibly slow: a lot of effort goes into absorbing breaking changes from libraries and language runtimes.

                    I agree with you here, but it’s a complete non-sequitur from what we were talking about before. It’s at least as hard, if not harder, to port an assembly program to a new operating system, ABI, or processor as it is to port a Python 2 program to Python 3.

                    1. 1

                      You’re moving the goalposts. My initial point was that, given some source code and all necessary development tools, it’s far easier to expand a Python or Lua or Java program to use additional resources - such as but not limited to bus width and additional memory - than an equivalent assembly program.

                      That is most definitely true. I actually think the use of extremes doesn’t make this discussion any easier. I don’t think anyone wants to go back to assembly programming. But at the same time there’s obviously something wrong if it takes 200 megabytes of executables to copy some files.

                      1. 3

                        But at the same time there’s obviously something wrong if it takes 200 megabytes of executables to copy some files.

                        What’s wrong, exactly? The company providing the service was in business at the time of the rant, and there’s no mention of files being lost.

                        The only complaint is an aesthetic one. Having 200MB of executables to move files feels “icky”.

                        1. 2

                          There are externalities to code bloat, in the form of e-waste (due to code bloat obsoleting less powerful computers), and energy use. It’s not very relevant in the case of one 200MB file transfer program, but over an industry, it adds up horribly.

                          1. 4

                            Agreed. These externalities are not taken into account by producers or most consumers. That said, I think there are more important things to focus on before one gets to software bloat: increased regulation regarding privacy and accessibility among them.

            1. 4

              I never thought I would see this happen.

              Nice!

              Edit: Now that I think of it.. There’s gotta be a catch. Right?

              1. 16

                The catch is that it only supports fairly recent GPUs, and only works because most of the “hard part” has been moved onto the GPU itself in a proprietary blob.

                1. 11

                  and you still need the proprietary userspace junk for GL.

                  and it’s probably not upstreamable in its current form, so it’ll exist as some out of tree thing.

                  but it’s a promising start!

              1. 4

                I’ll be running a game of my homebrew RPG system, Whittledice and Parchment. We only have about an hour to play, so I’m hoping the tiny system and simple rules will make that easier.

                I’m also finishing up moving from my old apartment in the basement of a co-op to a condo on the 5th floor of a mid-rise on the outskirts of Chicago! I’m very excited.

                1. 1

                  Update: it went very well, with both the novice and the experienced D&D player getting into the groove quickly. They found a typo in the rules, too, which is useful!

                1. 9

                  This is a deeply philosophically incoherent statement:

                  Our design principles are:

                  1. Trust the programmer.
                  2. Provide tools the programmer may use when they don’t trust themselves.
                  3. Prefer explicit behavior over implicit behavior.
                  4. A good program must be both correct and simple.

                  First of all, I can only assume this is a list of differentiators, because there are many more implied principles which aren’t mentioned here; that familiar syntax is better, that *nix are the most important OSes, that modularity is important, etc. These are not just axioms for a coming argument; these are the raison d’etre of Hare.

                  Proceeding on that assumption, we immediately have a problem. The first point makes no sense as a differentiator. There is no language in the world that is built on the premise “don’t trust the programmer” (or, perhaps, no industrial language; an esolang like that would be fascinating.) This strikes me as a shot at garbage collected languages, or perhaps at Rust; the latter being a bit more likely as the two langauges compete in the same space. Either way, it is a rather, ah, hare-brained criticism, since in most languages like this, and certainly in Rust, there are facilities for bypassing the GC (or borrow-checker) and doing whatever the heck you want.

                  The second point is fine, but in combination with the first, it seems… I don’t know, petty? “We’re good enough at programming that we don’t need any compiler telling us what to do, but we recognize that some of you aren’t, so we’re giving you some memory safety tools.” This attitude is reinforced in “Hare’s Advances Compared to C”:

                  Despite the veneration with which we look upon C, those who look upon it with scorn do have some valid concerns. A complete lack of memory-safe features and a miserable error handling experience both make it pretty easy to make mistakes in C that are not possible elsewhere. Some of this also makes it possible to do desirable things which are not possible in those other languages, but it would be nice to have options for when you don’t need to do those things and just want to write reliable code.

                  This is absolutely true and I agree with it (though “veneration” is a bit much - what are you, a Confucian?), but when placed in the context of other things DeVault has written, such as in “Rust is not a good C replacement”, it reads like a double standard.

                  Rust is more safe. I don’t really care. In light of all of these problems, I’ll take my segfaults and buffer overflows.

                  Here, “these problems” are, among others, a lack of portability compared to C, lack of a spec, and a lack of competing implementations. To its credit, Hare has a spec, but I don’t see competing implementations, and it doesn’t even support Windows, let alone the 90s RISC architectures people are complaining about missing in LLVM/Rust. Why is that okay in Hare but not in Rust? It’s almost enough to make one think that DDV just doesn’t like Rust because it opens systems programming up to people he doesn’t deem worthy.

                  Beyond this, point 4 is just a straight-up shot at programming languages with advanced type systems. “I’m smart enough to write correct code without having the compiler check my work. Why aren’t you?” This is ridiculous; nobody can write code as perfectly and consistently as a computer can check mathematically encoded invariants, and while there is a very important conversation to be had about what the right tradeoff is between flexibility and powerful static analysis, that is not the conversation being had here.

                  This language is interesting and I’m excited to see it progress, but I sincerely hope this is the end of DDV’s bashing of all languages which are not strictly better than C in every way, and that the elitism on display is toned down somewhat in later revisions of the meta-information around the language.

                  EDIT: I should talk about why I’m interested. It looks like an expression-oriented C with required initialization, slices, and slicey UTF-8 strings (and UCS-32 types!). A modern C, in other words. That’s valuable, if it can gain traction.

                  1. 6

                    Tailscale’s free tier is not very feature rich. You can’t do user ACLs with it, for example. And yes, you’re locked into a Google/Microsoft identity. If you don’t like that, pay for more. If you can’t, go use another service or roll it on your own.

                    Articles like this are why I’ll probably never make a service with a free tier. Yikes.

                    1. 21

                      Articles like this are why I’ll probably never make a service with a free tier. Yikes.

                      Because someone might write a polite and even-handed criticism? I have certainly read and indeed written substantially less charitable things about companies that are not giving their stuff away for free.

                      1. 12

                        Tailscale employee here. +1, my reading of iliana’s post is absolutely not “wow, those ingrate free users”. It’s a very well constructed critique of one of our product choices, and my reaction is a web of different things (mostly “I agree, and have complex thoughts on why we haven’t done the thing yet”), but I’m very grateful for this feedback.

                        1. 10

                          Another Tailscale employee here. +1, iliana means very well by this. Xie means very will by this and xer feedback is already in the awareness of the product side of things at Tailscale. I was thinking out ideas on how to work around this with xer and presented them alongside that article. Overall I’m fairly sure that this will end up with positive change.

                          1. 6

                            Talking about ICE and union busting in this context doesn’t feel even-handed to me. 🤷🏽‍♀️

                            I have certainly read and indeed written substantially less charitable things about companies that are not giving their stuff away for free.

                            I’m confused, isn’t that exactly the point? If Tailscale only offered Google/MS login on their paid corporate plan this article would make much more sense?

                            1. 8

                              Talking about ICE and union busting in this context doesn’t feel even-handed to me

                              A footnote explaining why the OP doesn’t want to work with Microsoft and Google seems entirely relevant, no? Google and Microsoft do work with immigration authorities, and they do engage in union-busting; these are facts, not imputation or speculation.

                              1. 1

                                But the OP isn’t forced to work with them. They can use the free service Google/MS provide or pay Tailscale to bring a different identity provider.

                                That makes Google/MS business with immigration extremely irrelevant to an article about Tailscale.

                                1. 9

                                  I’m really not sure what you mean. The complaint here is that the free tier of Tailscale requires people to use Google or Microsoft’s services. Explaining why Google and Microsoft are parties the OP doesn’t want to work with is at least somewhat relevant.

                        1. 8

                          Uh. If you don’t like their product, use another? Cloudflare Tunnels? wireguard?

                          1. 27

                            People are allowed to criticize things and still use them.

                            1. 3

                              Yes. You’re right. And it’s totally legitimate criticism. It’s quite a dependency for what’s essentially your new network plane.

                          1. 2

                            My laptop, the T480, isn’t listed; only the inferior T480s is.

                            1. 2

                              I would be wary of ordering this if you plan on playing with it within the next few months. I mentioned under their ad on Twitter that I’ve been waiting for quite a while for my order to even ship, and several other people chimed in with similar experiences, with one person saying he’s been waiting since December.

                              1. 1

                                December is not long to wait for low volume devices in the current environment.

                                People who ordered an EOMA68 have been waiting since August 2016 – 5 1/2 years and counting.

                                https://www.crowdsupply.com/eoma68/micro-desktop

                                The project owner abuses me every time I point this out somewhere, claiming that there is a good reason for every single delay. Summon: lkcl !!!

                              1. 1

                                Unfortunately the only way to generate passwords requires copying and pasting the password from the “Generate Password” menu item into the target field, allowing anything that can access your clipboard to access your password.

                                1. 16

                                  This is not accurate. You can generate a password and select it as the password to use for a new record, through the new record interface.

                                  1. 4

                                    Can you describe this process for my sake?

                                    1. 6

                                      Absolutely! To the right of the Password field on the New Record screen, there is a Generate button (circling arrows), which takes you to Generate with a Select action available in the top right. Choosing Select on this Generate screen inserts the generated password. You can then save the record and fill as normal.

                                  2. 1

                                    Don’t you need to copy it to use it anyhow?

                                    1. 1

                                      Actually, I’ve tried this a few different ways, but it seems like you never need to use the generator if you use the + button in all the apps. If I do use the generate function in the web browser, it doesn’t let me specify parameters, but picks up the parameters from the “tools” page.

                                      1. 1

                                        With at least Lastpass the extension can fill in fields in the browser and so doesn’t require the user ever reading the plaintext.

                                        1. 3

                                          Bitwarden has browser extensions for every browser that I have heard of and some that I hadn’t: https://bitwarden.com/download/

                                    1. 3

                                      When I was young and just getting into computing on my first hand-me-down Windows laptop, I happened to run across a copy of Mac OS X Snow Leopard: The Missing Manual and, being That Kind of Kid, read through it cover-to-cover on a train to Oxford.

                                      QuickTime, Automator, and AppleScript completely blew my mind, especially compared to the multimedia apps and Windows batch files I was using at the time. I was absolutely convinced that this was the best operating system in the world, and I begged my parents to give me the thirty dollars I’d need to buy an install DVD. I got as far as Googling “osx snow leopard system requirements”; I don’t think I’d ever been more crushed in my life to discover that the software would only run on a machine I had no hope of affording for ~10 years. By that time, I was firmly entrenched in the Linux ecosystem, and Mac OS wasn’t any good anymore anyway.

                                      1. 2

                                        So, all the agreeing people here pay for their linuxes? Do you pay per machine? Per year? Both?

                                        1. 12

                                          I regularly donate to both GNOME and Ubuntu, unlike the multi million dollar companies being discussed in the article. You can get out of here with this shaming whatsboutism nonsense.

                                          1. 1

                                            Corporations are run by people too. I don’t understand what the difference is supposed to be between you using something w/o paying the maintainers and a corporation using something without paying the maintainers. You are both benefiting from it one way or the other.

                                            1. 2

                                              They have more money than me and also they make more money from it than I do.

                                          2. 6

                                            If by ‘people’ you mean ‘corporations that make a profit by running said OSS software’, then yes, they actually should pay for it, and funnily enough, no, they actually don’t want to pay for it. Who knew?

                                            1. 2

                                              Are you not making a living using and knowing how to use these tools? Are you saying it is strictly somebody elses problem?

                                              1. 3

                                                I’m making a living using open source tools, but I’d also make a living using closed-source tools. Corporations are the ones that are making profits hand over first thanks to OSS.

                                                1. 1

                                                  okay, but how is only the company benefiting if you are earning a salary from said company. Seems like a strange difference you are making up. You are part of the system. If you think maintainers should earn money, give them money and maybe also evangelize that thought in the company you work for.

                                                  1. 3

                                                    I didn’t say only the company is benefitting, but it is disproportionately benefitting. You can bet that I’m not paid even a tenth of what my share of the profits would be if they were divided up among all employees. But then, that’s capitalism. My point is that corporations handily exploit OSS developers.

                                                    And btw, I do and have evangelized it. We have a Red Hat enterprise support contract so we are at least partially funding open source development work. And I am recommending ways to contract with other open source providers as I feel that’s a sustainable model for everybody.

                                                    And in any case, saying ‘You are part of the system’ is not actually a way to invalidate someone’s argument. Yes, we are part of the current world and live in it somehow. Does that mean we can’t speak up about it wanting to be better?

                                              2. 1

                                                The question is, would they use it if it wasn’t free? If you must pay for software, would you pay for a “free” database, Linux or web server instead of an alternative from a commercial vendor?

                                                1. 1

                                                  Have you seen how much corporations pay for enterprise software like Oracle and Salesforce? Yes, they would pay for software that they perceive as a benefit. That’s not even a question.

                                                  1. 1

                                                    Nobody pays money for a library like log4j2 though, yet that is the starting point of the discussion

                                            1. 25

                                              I have watched the videos behind this text and I’m a bit frustrated. The most problems they have are either hardware problems or problems because they expect thinks work like on Windows (or believe they work on Windows).

                                              For the hardware the somehow acknowledge that this is more the problem of the vendors then of Linux. It still sounds the most time more like Linux is bad because this super fancy hardware don’t work. Yes I know the problems behind this are complex and as a normal user this is frustrating.

                                              And of course they expect a Windows like behavior, they have used Windows for years. What bugs me is that they claim that the Windows way is the better way without understanding what the problem is. There are two examples for this:

                                              First the Linus broke his Pop!_OS installation while he tried to install steam. This was because the steam package had a dependency problem which could only resolved by removing essential packages. The GUI tells him there was an error with some suggestions what might case the problems and output from apt hidden behind a details button. He reads out loud: “Warning: you trying to remove the following essential packages”. So he googled and found the command line to install steam. So the command prompted him a lot of text and at the end following two lines:

                                              You are about to do something potentially harmful

                                              To continue type in the phrase ‘Yes, do as I say!’

                                              So he typed in “Yes, do as I say!” and his installation was broken. He claimed later: “the thinks that I did are not entirely ridiculous or unreasonable”. He ignored all warnings and “dictated the computer” “Yes, do as I say!”, how is this not a clear user error[0]?

                                              So lets look what would had happen with a similar issue under Windows. First so similar we don’t get the issue, because under Windows there is no package manager accessible for somehow third party software. So lets assume there is an windows update which removes the wrong file and breaks your system. On the install the update would remove the wrong file and breaks your system. Other example the steam installer manage to have a bug with removes some necessary files from your Windows installation. Is there anything Windows protect you from this bug[1]?

                                              It’s late and the other stuff about the file exertion issue I might write tomorrow.

                                              [0] Of course this has also something to do with the spirit of some developers to create popups/warnings/info messages. Which leads users to ignore these messages.

                                              [1] I don’t know, but a few years ago windows installers where just executable which required to run as administrator.

                                              1. 32

                                                And of course they expect a Windows like behavior, they have used Windows for years

                                                I think the “Windows-like behaviour” in this case is that on Windows Steam works perfectly, you don’t have to think about installing it, there’s no chance it’s going to break your OS, nor will you have to you choose between installing an application you want and having a working OS.

                                                We could imagine a hypothetical Steam bug that somehow wrecks Windows installations, but in reality those don’t exist.

                                                1. 4

                                                  I think those kinds of comparisons don’t work very well, because of the range of options. For the Steam installation issue, on windows you basically have two options: you install it and it works or it doesn’t. In Linux you have the same two options + playing around with various tweaks and installation methods.

                                                  If we were going with a typical user windows-like approach, he’d declare it a failure after Steam failed to install from the default source. Going further with other solutions is both a good thing because it’s possible and a bad thing, because newbies get into a situation like a broken desktop. So once you start going past the basics it’s really on the user to understand what they’re doing. Otherwise it’s comparable to “I messed with some windows DLLs / registry trying to get Steam to work, despite warnings and now it doesn’t boot” - but that’s just not something average users do.

                                                  1. 14

                                                    on windows you basically have two options: you install it and it works or it doesn’t

                                                    On Windows you install Steam and it works. Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                    In Linux you have the same two options + playing around with various tweaks and installation methods.

                                                    I guess? But the Linux (Pop!_OS?) equivalent of “I messed with some windows DLLs / registry trying to get Steam to work, despite warnings and now it doesn’t boot” is [0] kind of the only experience that was available? It seems like there was no way to install it and have it work, or even install it and have it just not work. The only way to install it broke the OS?

                                                    [0] Disclaimer: I didn’t watch the videos, so I’m going off my understanding of the comment I originally replied to

                                                    1. 12

                                                      Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                      Not just that but you actually do have a lot of tweaks to play around with. They’re not common knowledge because it’s incredibly rare to need it in order to get something like Steam working. You don’t really need them unless you’re developing software for Windows.

                                                      I had this “it’s a black box” impression for a long time but 10+ years ago I worked in a Windows-only shopped that did a lot of malware analysis and the like. It’s quite foreign, since it comes from a different heritage, but the array of “power tools” you have on Windows is comparable to that of Linux. The fact that typical users don’t need them as frequently is a good thing, not an evil conspiracy of closed-source vendors to make sure you don’t have control over your hardware.

                                                      1. 3

                                                        Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                        That’s a bit hard to quantify, but sure they do. Just search for “Steam won’t start” or “steam installer fails” on Reddit or their forums. It’s also common enough for many SEO-spam sites to have listicles for that phrase that are actually steam-specific.

                                                        And my point was that this wasn’t there only experience available. The alternative was not to type “yes I’m sure I know what I’m doing” (or whatever the phrase was) when he did not. He went out of his way to break the system after the GUI installer refused to do it. I think you really should watch they fragment for the discussion context.

                                                    2. 3

                                                      there’s no chance it’s going to break your OS

                                                      Presumably because it’s the primary platform they test for.

                                                      1. 1

                                                        there’s no chance it’s going to break your OS

                                                        Of course with a simple installer (copy all files to a directory and add an entry to the windows registry) it’s quite hard to have a bug with breaks your OS. But a simple installer don’t have the features a package management system, i.e. central update mechanism. I don’t want to say package manager are better then the installer way used on Windows[0]. The problem I have with this case it’s not he has clicked some random button and then everything was broken. He has read the error, ignored all warnings and typed the prompt char by char and then wounder why it’s goes wrong.

                                                        I don’t say the UI[1] is perfect. The problem I have is this “I ignore all warnings and complain if it goes wrong” mentality[2]. apt is not a program witch bugs you with unnecessary questions or warnings. Install a package only ask for conformation if it does more then only install the requested package. The annoying conformation question is there only if you try to remove essential packages and is designed to give enough hassle to bring the user to question about this commands.

                                                        [0] I think systems with package manager are better, but this is not the point of the comment

                                                        [1] The error message in the GUI and the handling in the command line

                                                        [2] Yes some (or most) users don’t want to understand error messages, but shouldn’t they not stop at the error and look for (professional) help? And no copy paste a command from a random blog post is not help, if you don’t understand the error or the blog post.

                                                      2. 21

                                                        The entire point of Linus’ challenge is that desktop Linux is full of barriers and traps for new users who don’t (yet) know what they’re doing.

                                                        Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user. “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer” is an entirely reasonable use-case.

                                                        Web dev community had a reckoning with this, and thinking has changed from “users are too stupid to understand my precious site” to “all my new users know only other sites, so I must meet their expectations”. If Linux wants to get new users it needs to be prepared for users who know only Windows, macOS, or even just Android/iOS.

                                                        1. 4

                                                          Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user. “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer” is an entirely reasonable use-case.

                                                          That’s well and good, but there is a perfectly good fast path for this; install Pop!_OS or Ubuntu on a day where there’s not a bug in the packaging system, which is the vast majority of all days. Yep, it sucks that there was a bug, but that’s simply not going to affect anyone going forward - so why are LTT giving advice based on it?

                                                          1. 11

                                                            For every distro D there exists a problem P that is solved in a distro E.

                                                            That endless cycle of “then abandon your whole OS and install a completely new one” thing is another annoying problem “Linux desktop” has. It’s not any single distro’s fault, but it’s a pain that users need to deal with.

                                                            In my case: I want to use Elementary, but I hosed it trying to update Nvidia drivers. So I was told to switch to Pop!_OS — they do it right. But this one gets stuck seemingly forever when trying to partition my disk, presumably because of the combination of NVMe and SATA that I have. Manjaro worked with my disks, but I’ve run into bugs in its window manager, which wouldn’t be an issue in Elementary. I still use macOS.

                                                            1. 6

                                                              For every distro D there exists a problem P that is solved in a distro E.

                                                              Right, I agree that in general this is a problem; we need better ways to integrate the best ideas from multiple projects.

                                                              But for the problem stated, which was “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer”, Pop!_OS or Ubuntu are the way to go. Your problem is not that; it’s “I want Pantheon and a fast Nvidia card,” and Nvidia have intentionally made that harder than it needs to be.

                                                              To be totally clear, I’m under no illusions that every user can simply pick up a free desktop and be on their way, but I think it’s pretty unhelpful to cultivate a discourse which simultaneously says “Users should have a fast path for these common use cases” and “Users should be able to get whichever window manager, packaging system, and customizations they want.” Those are both valuable goals, but the former inherently precludes the latter, especially in a world where some hardware companies, like Nvidia, are actively hostile to free desktop projects.

                                                          2. 3

                                                            I switched from windows to Mint a couple of years back for gaming, in a similar experiment to this one (only not so public). I had no issues at all, steam was in the official applications, it installed with one click. Every game that steam claimed worked on linux did work. There were issues with my non-standard multi-monitor set up (there were issues with this in windows too, but they were worse in linux*) but nothing that prevented playing the games. It was only once I enabled the steam beta program which sets steam to attempt to open all games in wine that I had to get down in the weeds with configuring stuff and some things didn’t work. Steam has pretty clear warnings about this when you turn it on though.

                                                            I feel like for a tech tips site those guys are pretty non-technical. I never really watched their stuff anyway but now it seems like they should be calling me for help (and I am pretty noob when it comes to linux). This is the biggest criticism for me of this whole experiment. If these guys are an authority on computer tech informing users, they should simply be better at what they do. It is almost like they are running an investment advice channel and going ‘oh no I lost all my money investing in a random startup, guys don’t do the stockmarket it’s broken’. They should be informing people interested in linux what to do and what not to do, and if they are not qualified to do that they should state that and recommend alternatives sources of advice.

                                                            *I have a suspicion most of these issues were on the application level not the OS level. Games were probably getting the monitors list from the wrong place. Ironically once I set my monitors up in the way that the developers on both windows and linux were expecting me too, the problems on linux disappeared, but a few small issues persisted on windows.

                                                            1. 2

                                                              As a waggis / rolizins engineer, maybe I’m out of touch, but I don’t think “Doing this will cause everything to break. If you want everything to break, then type ‘Yes, please cause my computer to break!’” is quite as obscure a message as anything about florbing and confeling. This required not only a (very rare) bug in the dependency tree but also either a user that deliberately wanted to break his Linux install for YouTube content, or one that is the very embodiment of Dunning-Kruger.

                                                              Not only did the dependency tree break, but the package manager was smart enough to recognize that the dependency tree had broken, and stopped him from doing it and told him so. He then went out of his way and used another package management tool to override this and allow him to break his installation anyway. This tool then was also smart enough to recognize the dependency tree was broken, and again warned him what was about to happen. He read this message and copied the text from this warning into a confirmation prompt.

                                                              He could just as easily have typed sudo rm -rf /usr. He could just as easily have deleted system32 on Windows.

                                                              The only possible solution that could have prevented him from doing this would be to not tell him his own sudo password and to give him a babysitter to do everything requiring privilege escalation for him so he doesn’t hurt himself, but that solution has logistical issues when you try to scale it up to every desktop Linux user.

                                                              1. 3

                                                                You need to have more empathy for the user.

                                                                The prompt wasn’t “destroy my system”, it was “do as I say”, and user said to install Steam.

                                                                No other operating system is stupid enough to delete itself when you tell it to add a new good application from a reputable publisher. Crappy Windows installers could damage the OS, but Steam doesn’t.

                                                                It’s normal for OSes to sound dramatic and ask for extra confirmation when installing software from unusual sources, so the alarming prompt could easily be interpreted as Linux also warning about dangers of “sideloading” a package, which can be dismissed as “I’m not installing malware, just Steam, so it’s fine”.

                                                                From user perspective the screen contained “Install Steam, wall of technogibberish user didn’t ask nor care for, type ‘Yes, do as I say!’”. The system frequently requires to type weird commands, so it requiring to type one more weird command wasn’t out of ordinary.

                                                                The only possible solution… [condescending user blaming]

                                                                The real solution would be for Linux to work properly in the first place, and actually install Steam instead of making excuses. Linux is just an awful target for 3rd party applications, and even the other Linus knows this.

                                                                1. 2

                                                                  No other operating system is willing to give the user the ability to break the desktop environment intentionally (though I recall a lot of Windows bugs in the past that did this unintentionally). One of the fundamental problems Linux faces is that most users don’t actually want as much power as running as root gives you. They’ll say the do, but they really don’t, and their operating system choice generally reflects that.

                                                                  It’s normal for OSes to sound dramatic and ask for extra confirmation when installing software from unusual sources

                                                                  This is pretty obviously because it’s axiomatically impossible for the OS to actually tell if something the user does with sufficient privileges will break something (inter alia, you’d have to be able to solve the Halting Problem to do this). In this case, the package manager was obviously correct, which should be applauded. There are two obvious responses to this (maybe there are non-obvious ones I’m missing as well): restrict the user’s ability to do things to actions with a low likelihood of breaking the OS or trust the user to make a decision and accept the consequences after a warning.

                                                                  Broadly, Windows, the MacOSs, and the mobile operating systems have been moving towards restricting the user’s ability to do risky things (which also includes a lot of things proficient system operators want to do). That seems to be in response to consumer demand but I don’t think that we should enshrine the desires of the bottom 60% of users (in terms of system operation competence) as the standard to which all systems should be designed. This is not related to an “it should just work” attitude towards 3rd party software as there’s generally been a significant decrease in things like OS API stability over the past two decades (e.g. this rant of Spolsky’s). Users just think that anything they want to use should “just work” while anything they don’t care about should be marginally supported to minimize cost: the problem is that many people want different things to work.

                                                                  On the other hand, some users don’t want the operating system reasoning for them (at least some of the time). I don’t want an operating system “smart” enough to prevent me from doing something stupid on my project boxes or in a VM I’m playing with especially if it’s just something that looks stupid to the OS but I’m doing for some (moderately good) reason.

                                                                  1. 4

                                                                    You’re boxing this into a dichotomy of restricting user or not, but this isn’t the issue here.

                                                                    The issue is not about power, but about usability. You don’t need to block all failure paths. You need to communicate clearly and steer users towards success paths, so they never even come close to the dangerous commands by accident.

                                                                    1. 2

                                                                      I wouldn’t say this is really about power, so much as control though I tend to be a bit of a pedant about defining “power”.

                                                                      I think the communication here was reasonably good, though it could be improved. I think the real mistake Linus made was in choice of distribution. That is a real problem in the Linux community (and I think the one we should be focused upon here). I think the opportunity to improve communication here is marginal at best.

                                                                  2. 2

                                                                    You need to have more empathy for the user.

                                                                    I do. I’m just saying that there’s nothing anyone could have done to prevent this except disallow even the root user from uninstalling xorg, and even then he could have just manually removed crucial files if he felt like it. OS maintainers are going to make mistakes occasionally. “Just don’t make mistakes ever” isn’t a viable strategy for avoiding things like this. What is a viable strategy is to build tools that detect and correct for errors like the one in Pop!_OS’s dependency tree. And that’s exactly what happened. He just disregarded the numerous protections from this bug that his OS afforded him.

                                                                    “From the user perspective,” the screen contained a list of packages that were about to be installed, a list of packages that were about to be uninstalled, and a message saying that the packages that were about to be uninstalled were essential to the operation of his computer and he should stop now rather than electing to uninstall those packages, along with a prompt that very deliberately requires you to have read that warning in order to proceed.

                                                                    The real solution would be for Linux to work properly in the first place, and actually install Steam instead of making excuses.

                                                                    Linux worked properly, apt even worked properly. Pop!_OS’s dependency tree was briefly broken. The package manager then recognized there was something wrong and explicitly told him he was about to uninstall his desktop and that he shouldn’t do it. It wasn’t “destroy my system.” That was me being (generously) 5% hyperbolic. In reality it was a warning that he was about to uninstall several essential packages including his desktop and a recommendation that he shouldn’t do this unless that was what he wanted to do. He was then required to enter a very specific message which was part of that warning, verbatim.

                                                                    Here’s the thing, no operating system has avoiding pushing out a bad or bugged update periodically. What’s great about Linus’s example is that Pop!_OS pushed out a bad update but the error was limited to one package, and the package manager was smart enough to stop Linus from breaking his system, and told him that it had stopped him from breaking his system. Linus then decided to use another tool that would allow him to break his system. This tool too was smart enough to notice that the package system had broken, and prevented him from breaking his system. He then deliberately bypassed these safeties and uninstalled gdm and xorg.

                                                                    What’s crucial to note here is that exactly nobody is making excuses for Pop!_OS — they messed up their dependency tree, yes — but also, this is a perfect example of all of these systems working exactly as intended. The package manager was smart enough to stop him from breaking his system even though the dependency tree was mangled, and he then overrode that and chose to break his system anyway. That’s more than can be said for many other operating systems. The tools he was using detected the error on Pop!_OS’s side and saved him

                                                                    It’s also worth noting that he literally didn’t brick his system, he could have fixed his machine if he’d just installed from the command line the same packages he had just uninstalled. Like, he didn’t actually break his system, he just uninstalled a few packages that were flagged as essential to stop newbies from uninstalling them because it might confuse them if they were uninstalled.

                                                                    1. 2

                                                                      Your assertion that nothing could be done is provably incorrect. Alpine doesn’t have this problem — by design — and it isn’t any less capable than Debian family. It’s a matter of design of tools’ UI, and this part of apt is a poor design.

                                                                      People don’t accidentally uninstall their OS when installing Steam on other OSes, because everywhere else “install a new user program” and “catastrophically alter the whole system” are separate commands.

                                                                      Users generally don’t read walls of text. In usability circles this is accepted, and UI designers account for that, instead of wishing they had better users. Users aren’t illiterate, they just value their time, and don’t spend it on reading things that seem to have low value or relevance. The low signal-to-noise ratio of apt’s message and surprising behavior is apt’s problem, not user’s reading problem. And “this is just the way the tool works” is not a justification for the design.

                                                                2. 1

                                                                  The entire point of Linus’ challenge is that desktop Linux is full of barriers and traps for new users who don’t (yet) know what they’re doing.

                                                                  I have understand this. The problem I have with some of the complains is they proclaim the one or other way is clear better during the challenge. This is a bit more obvious in the file extension example[0]. I completely understand the experience is frustrating. But the “it is frustrating for me because the system don’t behave like I expect from the knowledge of an other system” don’t mean this system is bad.

                                                                  Yes systems try to adopt behavior from other systems to make it for users better to adopt. But this has it down side, because you can’t change a bad design after the user get used to it. In this example users get used to ignore errors and warnings and just “click ok”.

                                                                  Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user

                                                                  I don’t want to imply they are dump or just don’t want to learn the system. It is frustrating, if a system don’t work the way you expect. I would like to see a discussion after the challenges with an expert explaining why the UI behaves different.

                                                                  [0] Which I don’t write today, it’s late again

                                                                  1. 5

                                                                    When doing usability evaluations, it’s normal to discount specific solutions offered by frustrated users, but never the problems they face.

                                                                    There were a few problems here:

                                                                    • Lack of hardware support. Sadly, that’s a broad problem, and difficult to fix.

                                                                    • User needed to download and run a script from GitHub. I think distros could improve here. For a random developer who wrote a script, it’s difficult to distribute the code in a better way. There’s a very high bar for getting something to be an official package, and hardly any other viable alternative. There are several different packaging formats (some tedious to build, some are controversial), a few unofficial package repositories, a few “app stores” for some distros. All this fragmentation is a lot of work and maintenance headache. It makes just dumping a script on GitHub very easy and attractive in comparison. It may not be a failing of any single person or distro, but it is a failing of “Linux desktop” in aggregate.

                                                                    • Browser and file manager did a crappy job by treating HTML with .sh extension as if it was a totally normal thing a user may want to do. The fight about file extensions has been lost in the ‘90s. I’ve been there, tweaking detection by magic bytes in my Directory Opus on AmigaOS, and fiddling with creator codes when copying stuff from classic MacOS. The reality is that file extensions exist, and are meaningful. No normal person stores web pages as “.sh” files.

                                                                3. 20

                                                                  At the risk of being that condescending Linux user (which would be pretty awful since I’m not really using Linux anymore) my main takeaway from these videos is “don’t use hipster distros”.

                                                                  Or, okay, hipster distros is where innovation happens. I get it, Gentoo was a hipster distro when I started using it, too. Okay, maybe don’t recommend hipster distros to beginners?

                                                                  I saw Manjaro mentioned here. I tried Manjaro. It’s not a beginners’ distro. It’s great if you’re a burned out Arch user and you like Arch but you already know the instructions for setting up a display manager by heart and if you have to do it manually again you’re going to go insane. There’s a (small!) group of people who want that, I get it. But why anyone would recommend what is effectively Arch and a rat’s nest of bash scripts held together with duct tape to people who wouldn’t know where to begin debugging a broken Arch installation is beyond me. I mean the installer is so buggy that half the time what it leaves you with is basically a broken Arch installation for heaven’s sake! Its main value proposition is in a bunch of pre-installed software, all of which can be trivially installed on Ubuntu.

                                                                  I haven’t used Pop!_OS but IMHO a distribution that can’t get Steam right, Steam being one of the most popular Linux packages, is just not a good distribution. It’s particularly unsettling when it’s a distro that’s supposed to have some level of commercial backing, and Steam is one of the most popular packages, so presumably one of the packages that ought to get the most testing. Hell even Debian has instructions that you can just copy-paste off their wiki without breaking anything. And the only reason why they’re “instructions”, not just apt install steam, is that – given their audience – the installation isn’t multilib by default.

                                                                  There’s certainly a possibility that the problem here was in the proverbial space between the computer and the chair, sure. But if that’s the case again, maybe it’s just time we acknowledged that the way to get “better UX” (whatever that is this year) for Linux is not to ship Gnome with the umpteenth theme that looks like all other theme save for the colors and a few additional extensions. It’s safe to say that every combination of Gnome extensions has already been tried and that’s not where the magic usability dust is at. Until we figure it out, can we just go back to recommending Ubuntu, so that people get the same bad (I suppose?) UX, just on a distribution with more exposure (and, thus, testing) and support channels?

                                                                  Also, it’s a little unsettling that the Linux community’s approach to usability hasn’t changed since the days of Mandrake, and is still stuck in the mentality of ESR’s ridiculous Aunt Tilly essay. Everyone raves about consistency and looking professional. Meanwhile, the most popular computer OS on the planet ships two control panels and looks like anime, and dragging things to the thrash bin in the second most popular OS on the planet (which has also been looking like anime for a few years now) either deletes them or ejects them, which doesn’t seem to deter anyone from using them. Over here in FOSS land, the UI has been sanitized for consistency and distraction-free visuals to the point where it looks like a frickin’ anime hospital, yet installing Steam (whether through the terminal or the interface it makes no difference – you can click “Yes” just as easily as you can type “Yes”) breaks the system. Well, yeah, this is what you get if you treat usability in terms of “how it looks” and preconceived notions about “how it’s used”, rather than real-life data on how it’s used. It’s not an irredeemable state of affairs, but it will stay unredeemed as long as all the debate is going to be strictly in terms of professional-looking/consistent/beautiful/minimal/distraction-free interfaces and the Unix philosophy.

                                                                  1. 14

                                                                    The issue about Linux distro here is that they didn’t know the differences between them, why that matters, and that Linux isn’t one thing. Without a knowledgeable person to ask what to use, this is how they ended up with these different flavours. They also didn’t know about desktop environments, or how much influence they have over their Linux experience.

                                                                    It’s unfortunately a hard lens for many technical people to wrap their head around. Heck, we are starting to see people that don’t need to interact with hierarchical file systems anymore. Something natural to everyone here, but becoming a foreign concept to others.

                                                                    1. 6

                                                                      Certainly. My response was mostly in the context of an underlying stream of “Ubuntu hate” that’s pretty prevalent in the circles of the Linux community that also have a lot of advice to give about what the best results for “best Linux distro for gaming” should be. I know I’m going to be obtuse again but if the l33t h4x0rz in the Linux community could just get over themselves and default to Ubuntu whenever someone says “I’ve never touched Linux before, how can I try it?” a lot of these problems, and several distributions that are basically just Ubuntu with a few preinstalled programs and a custom theme, would be gone.

                                                                      There’s obviously a huge group of people who don’t know and are not interested in knowing what a distribution is, what their desktop environment is, and so on. As the Cheshire Cat would put it, then it doesn’t really matter which one they use, either, so they might as well use the one most people use, since (presumably) their bugs will be the shallowest.

                                                                      I know this releases all sorts of krakens (BUT MINT WORKS BETTER OUT OF THE BOX AND HAS A VERY CONSISTENT INTERFACE!!!1!!) but the competition is a system whose out-of-the-box experience includes Candy Crush, forced updates, a highly comprehensive range of pre-installed productivity apps of like ten titles, featuring such amazing tools like Paint 3D and a Calculator that made the Win32 calculator one of the most downloaded programs in history, two control panels and a dark theme that features white titlebars. I’m pretty sure any distribution that doesn’t throw you to a command prompt on first boot can top that.

                                                                      1. 1

                                                                        Oh, I totally agree, I was just clarifying that they did some googling to try and find something to use, and it’s how they ended up with this mess of difficulties.

                                                                      2. 2

                                                                        I think you cut to the heart of the matter here. I also think the question they asked initially (what’s the “best” gaming Linux distro) wasn’t well formed for what they actually wanted: what the easiest to configure was. To forestall the “that’s a Linux problem” crowd, that’s an Internet problem, not a Linux problem. If you Google (or ddg or whatever) the wrong question, you’re going to get the wrong answer.

                                                                        I think we have to resign ourselves to the fact that users generally don’t want to learn how to operate their systems and don’t want meaningful choices. Therefore, many users are not good candidates for a *nix.

                                                                      3. 2

                                                                        Until we figure it out, can we just go back to recommending Ubuntu, so that people get the same bad (I suppose?) UX, just on a distribution with more exposure (and, thus, testing) and support channels?

                                                                        I wish Ubuntu offered an easier flow for getting a distribution with the right drivers out of the gate. This is what Pop_OS! does (source):

                                                                        Pop!_OS comes in two versions: Intel/AMD and NVIDIA. This allows us to include different settings and the proprietary NVIDIA driver for NVIDIA systems, ensuring the best performance and use of CUDA tools one command away. On Oryx Pro systems, you can even switch between Intel and Nvidia graphics using a toggle in the top right corner of your screen.

                                                                        IMO this is superior to in Ubuntu where you need to follow complex instructions to get NVIDIA proprietary drivers: https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia

                                                                        And you need to follow different instructions for AMD graphics

                                                                        Also if you buy a System76 laptop all the drivers for your computer come set up, no driver manager needed. With Ubuntu you can buy from Dell but not with the same variety of hardware as System76.

                                                                        I agree that Ubuntu is a good option but I would like to see it improve in these aspects before I would recommend it to a random non-power user who wants to play video games.

                                                                        1. 2

                                                                          I haven’t used Ubuntu in a while, and that page doesn’t help because the instructions look like they haven’t been updated since Ubuntu 12.04, but the way I remember it all you needed to do was go to “Additional Drivers” or whatever it was called, choose the proprietary driver, hit OK and reboot. Has that changed in the meantime? Last time I used a machine with an NVidia card I was running Arch and it was literally just pacman -S nvidia, please tell me Ubuntu didn’t make it more complicated than that!

                                                                          Also… is the overlap between “people who write CUDA code” and “people who can’t install the proprietary NVidia drivers” really that big? Or is this aimed at people using third-party CUDA applications, who know statistics but suck at computers in general (in which case I get the problem, I’ve taught a lot of engineers of the non-computer kind about Linux and… yeah).

                                                                          Also if you buy a System76 laptop all the drivers for your computer come set up, no driver manager needed.

                                                                          If you choose the “Ubuntu LTS” option when ordering, doesn’t it come with the right drivers preloaded? I mean… I get that Pop!_OS is their thing, but shipping a pre-installed but unconfigured OS is not exactly the kind of service I’d expect in that price range.

                                                                          1. 2

                                                                            For a novice user, do you expect them to know before they download the OS whether they have an nVidia or AMD GPU?

                                                                            I seem to recall that a big part of the motivation for the complex install process for the nVidia drivers was the GPL. The nVidia drivers contain a shim layer that is a derived work of the kernel (it hooks directly into kernel interfaces) and so must be released under a GPL-compatible license and of the proprietary drivers, and the proprietary driver itself, which is first developed on Windows and so is definitely not a derived work of the kernel and can be under any license. The proprietary drivers do not meet the conditions of the GPL and so you cannot distribute the kernel if you bundle it with the drivers. The GPL is not an EULA and so it’s completely fine to download the drivers and link them with your kernel. The GPL explicitly does not restrict use and so this is fine. But the result is something that you cannot redistribute.

                                                                            FreeBSD and Solaris distributions do not have this problem and so can ship the nVidia drivers if they wish (PC-BSD and Nexenta both did). I wonder how Pop!_OS gets around this. Is it by being small and hoping no one sues them?

                                                                          2. 1

                                                                            From what I can tell, steam isn’t even open source. And while you assert it to be one of the most popular Linux packages, I hadn’t even heard of it until this video came up in all the non-gaming tech news sites despite having used Linux for 25+ years. Was it even a Pop!OS package or were they installing an Ubuntu package on an Ubuntu derivative and assuming it’d just work?

                                                                            1. 8

                                                                              it’s proprietary, yeah, but i just feel like someone has to tell you that there are several orders of magnitude more Steam users than Linux desktop users, and it’s not only a package in Pop!_OS and Ubuntu, it’s a package in Debian and just about every distro for the last decade.

                                                                              i honestly have gotta applaud you for being productive enough a person to have never heard of Steam. if you look at the install data from popularity-contest, ignoring firmware and libraries (i.e. only looking at user-facing applications), Steam is the third most-installed non-free package on all Debian-based distros, behind unrar and rar. pkgstats.archlinux.de suggests Steam is installed on 36% of Arch Linux installations. Steam is not only an official package on Pop!_OS but one of the most installed packages on desktop Linux overall.

                                                                              1. 5

                                                                                And while you assert it to be one of the most popular Linux packages, I hadn’t even heard of it until this video came up in all the non-gaming tech news sites despite having used Linux for 25+ years

                                                                                Someone else already pointed out how popular it is but just for the record, any one of us is bound to not have heard about most of the things currently in existence, but that does not make them pop out of existence. Whether you’ve heard of it or not affects its popularity by exactly one person.

                                                                                Also, lots of useful applications that people want aren’t even open source, and a big selling point of Pop!_OS is that it takes less fiddling to get those working (e.g. NVidia’s proprietary drivers). An exercise similar to this one carried out with, say, Dragora Linux, would’ve probably been a lot shorter.

                                                                                Was it even a Pop!OS package or were they installing an Ubuntu package on an Ubuntu derivative and assuming it’d just work?

                                                                                Most of Pop!_OS is Ubuntu packages on an Ubuntu derivative. Does it matter what repo it came from as long as apt was okay installing it?

                                                                                Edit: to make the second point clear, Pop!_OS is basically Ubuntu with a few custom Gnome packages and a few other repackaged applications, most of the base system, and most of the user-facing applications, are otherwise identical to the Ubuntu packages (they’re probably rebuilt from deb-srcs). No idea if what they tried to install was one of the packages System76 actually repackages, or basically the same as in Ubuntu, but it came from their “official” channel. I.e. they didn’t grab the Ubuntu package off the Internet, dpkg -i it and proceed to wonder why it doesn’t work, they just did apt-get install steam, so yes, it’s a Pop!_OS package.

                                                                            2. 10

                                                                              I mean, I have Big Opinions® on the subject, but my tl;dr is that Linux isn’t Windows, we shouldn’t give false expectations, have our own identity, etc. etc. But….

                                                                              So he typed in “Yes, do as I say!” and his installation was broken. He claimed later: “the thinks that I did are not entirely ridiculous or unreasonable”. He ignored all warnings and “dictated the computer” “Yes, do as I say!”, how is this not a clear user error[0]?

                                                                              I mean, the system should refuse to do that. Alpine’s and others refuse to allow the system to enter a boned state. One of the Alpine developers was rightly criticizing Debian for this issue in apt, citing it as one of the reasons why they stopped using Debian. The attention to the problem Linus gave in an embarrassing light was the push finally needed to fix it.

                                                                              1. 5

                                                                                Knowing how Internet guides work, now all guides will say “apt --allow-solver-remove-essential <do dangerous stuff> instead of “Type Yes, do as I say at the prompt”.

                                                                                1. 3

                                                                                  I like luke’s perspective that some distros should do different things. I think it’s reasonable for arch to be a ‘power user distro’ that is willing to bork itself. But PopOS is ‘an operating system for STEM and creative professionals’, so it probably should have some safeguards.

                                                                                  That being said I don’t think arch should ever be recommended to a brand new user. Linus shouldn’t even be on arch because 1) there should be better resources for picking a good distro for absolute beginners and 2) PopOS never should have that broken of a steam package in the first place.

                                                                                  1. 1

                                                                                    That being said I don’t think arch should ever be recommended to a brand new user.

                                                                                    I would qualify this; there are many users for whom arch was there first distro and it went great, but the key thing is these are not your typical computer user; they are people who are technically minded (not necessarily with deep deep knowledge of anything in particular, but they’re probably at least the person their friends ask for help), are up to and interested in learning about the system, and generally have been given some idea of what they’re getting into. That is to say, arch is definitely for “power users,” but that set includes some users who have not actually used Linux before.

                                                                                    For my part, Arch was the first distro that was actually reliable enough for me to do more than play with; I spent a year or so fussing with other stuff while dual booting windows, and Arch is the first one that actually worked well enough for me wipe the windows partition and stay. This was 15 years ago and I haven’t left, though I keep eyeing NixOS these days.

                                                                                    I think at the time folks still had fresh memories of before Linux desktop environments were even a thing, and there was this mentality that the barrier to entry was mostly around user interfaces. People hadn’t really internalized the fact that Linux had caught up decently well even by then (this was KDE 3.x era), but the problem was stuff needed to work better out of the box, and it needed to not break whenever you upgraded to the next release of the distro.

                                                                                  2. 1

                                                                                    I mean, the system should refuse to do that

                                                                                    The system had refused to do that. Then the user has told the system to shut up and do as he said. You could argue that this should not be possible, but if you are in the situation where you have fucked up your packages? The way around should be present within the package manager, because without it you need to do the way around without your package manager by deleting files and changing the database file.

                                                                                  3. 7

                                                                                    To answer some of your questions:

                                                                                    First so similar we don’t get the issue, because under Windows there is no package manager accessible for somehow third party software.

                                                                                    Technically not true; there is a Windows package manager and has been for a long time, and that’s the Windows Installer (MSI files). There’s also APIs and supported methods for 3rd-party installers to register an install with the system. What’s historically been missing are official package repositories for installing and updating applications (ala. APT, RPM, etc… repos). That’s slowly changing with the Microsoft Store, winget, and others, but this is an area Linux has long been very far ahead.

                                                                                    So lets assume there is an windows update which removes the wrong file and breaks your system. On the install the update would remove the wrong file and breaks your system.

                                                                                    This is incredibly rare. I won’t claim it hasn’t happened, but more common (while still very rare) is an update which causes a bluescreen on boot or exposes a bug in a critical system process. In either case, we’re talking very rare, but I’d suggest that’s true of Linux too.

                                                                                    Other example the steam installer manage to have a bug with removes some necessary files from your Windows installation. Is there anything Windows protect you from this bug[1]?

                                                                                    Yes, several things, and this is a genuine major contrast to Linux. Off the top of my head:

                                                                                    1. Window system files cannot be modified by default even with administrator privileges. You can’t simply run an elevated Command Prompt and run the equivalent of rm -rf C:\Windows. That’s because most operating system files are both owned and only writeable by a special account (TrustedInstaller). You can still modify or delete these files, but you have to jump through several hoops. At a minimum, you need administrator privileges (ala. root), and would have to take ownership of the file(s) of interest and subsequently grant yourself the relevant privileges. There are other ways you could gain the relevant access, but the point is it’s not a thing you could do by accident. That’s similarly true for installers, which also would need to take the same approach.

                                                                                    2. Windows has long had numerous recovery options for when things go pear shaped. Notable ones include Safe Mode and its various permutations (since forever), the ability to uninstall operating system updates (also forever), System Restore (since XP?), System Reset (Windows 10?), and a dedicated recovery partition with a minimal Windows 10 installation to serve as a recovery environment wholly independent of the main operating system. Obviously, none of these are a guarantee for recovery of an appropriately damaged system, but it’s long been the case that Microsoft has implemented numerous recovery/rollback mechanisms.

                                                                                    On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it? Yes, there’s single-user mode, but that just drops you into a root shell, which is wholly unsuitable for non-experts to use.

                                                                                    1. 1

                                                                                      there is a Windows package manager and has been for a long time, and that’s the Windows Installer (MSI files). There’s also APIs and supported methods for 3rd-party installers to register an install with the system.

                                                                                      I believe we use the same words for different thinks. When I talk about a package manager I mean a system witch provides packages and resolves dependencies. If I understand your comment correct an MSI file installs Software and registers the Software. But there is no way a MSI file claims is it incompatible with version 3.6 of explorer. So that on install the installer solve the dependence graph and present what he need to install and remove.

                                                                                      On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it?

                                                                                      This depends on your system. On debian based OS there are the packages still in the package cache. So you can easy downgrade. There are other options witch allows easy recovery from such bugs. There are most of the time not setup by default and still require some skill to solve your problem.

                                                                                      1. 2

                                                                                        I believe we use the same words for different thinks. When I talk about a package manager I mean a system witch provides packages and resolves dependencies. If I understand your comment correct an MSI file installs Software and registers the Software. But there is no way a MSI file claims is it incompatible with version 3.6 of explorer. So that on install the installer solve the dependence graph and present what he need to install and remove.

                                                                                        It’s true that MSI (and most competing technologies) generally will not compute and resolve a dependency graph for package installation, but it’s also worth noting this is in part because it’s far less applicable to Windows systems. As the operating system is a single unified system, versus hundreds or even thousands of discrete packages sourced from different projects and maintainers, it’s unusual for an application on Windows to have many dependencies. So in this respect the packaging tools functionality is very much in response to the needs of the underlying platform.

                                                                                        A system with the same sophistication for dependency resolution as the likes of Apt or Yum is simply just not as useful on Windows. Of course, that’s a separate argument from a system which provides a centralised catalogue of software ala. Linux software repositories. That’s an area Windows is very much still playing catch-up on.

                                                                                        This depends on your system. On debian based OS there are the packages still in the package cache. So you can easy downgrade. There are other options witch allows easy recovery from such bugs. There are most of the time not setup by default and still require some skill to solve your problem.

                                                                                        I think we have different definitions of easy here. Typically such an approach would minimally involve various command-line invocations to downgrade the package(s), potentially various dependency packages, and relying on cached package installers which could be removed at any time is less than ideal. Given the upstream repositories usually don’t to my knowledge maintain older package versions, once the cache is cleaned, you’re going to be in trouble. The point I’d make is that if something goes wrong with package installation that breaks your system, on most Linux distributions the facilities to provide automated or simple rollback are fairly minimal.

                                                                                        1. 1

                                                                                          As the operating system is a single unified system, versus hundreds or even thousands of discrete packages sourced from different projects and maintainers

                                                                                          I would doubt that Windows itself has/is no modular system. The Updater itself must also have some sort of dependency management. FreeBSD as an other unified OS is currently working on a package management system for there base system.

                                                                                          A system with the same sophistication for dependency resolution as the likes of Apt or Yum is simply just not as useful on Windows

                                                                                          Why not? Currently all software ships it dependencies on there own and updater have to implemented in all software. Maybe not with one big graph for all software, but with a graph for each installed program and with a duplicate elimination.

                                                                                          1. 1

                                                                                            I would doubt that Windows itself has/is no modular system. The Updater itself must also have some sort of dependency management. FreeBSD as an other unified OS is currently working on a package management system for there base system.

                                                                                            You’re right, Windows itself is very modular these days, but the system used for managing those modules and their updates is independent of other installers (inc. MSI). There’s some logic to this, given the updates are distributed as a single cumulative bundle, and MS clearly wanted to design something that met Windows needs, not necessarily broader generalised package dependency handling requirements. The granularity is also probably wrong for a more general solution (it’s excessively granular).

                                                                                            On my system, there’s around ~14,600 discrete components, going off the WinSxS directory.

                                                                                            Why not? Currently all software ships it dependencies on there own and updater have to implemented in all software. Maybe not with one big graph for all software, but with a graph for each installed program and with a duplicate elimination.

                                                                                            Several reasons. One is that most Windows software is predominantly relying on Windows APIs which are already present, so there’s no need to install a multitude of libraries to provide required APIs as is often the case on Linux. They’re already there.

                                                                                            Where there are 3rd-party dependencies, they’re usually a small minority of the application size, and the fact that software on Windows is much more likely to be closed source means it’s harder to standardise on a given version of a library. So if you were to try and unbundle 3rd-party dependencies and have them installed by package manager from a central repository, you’d also need to handle multiple shared library versions in many cases.

                                                                                            That’s a soluble problem, but it’s complex, and it’s unclear if the extra complexity is worth it relative to the problem being solved. I suspect the actual space savings would be minimal for the vast majority of systems.

                                                                                            I’m not saying it’s a bad idea, just that it’s solving a problem I’d argue is far less significant than in *nix land. Again, all of this is independent of centralised package repositories, as we’re starting to see with winget, scoop, choco, etc …

                                                                                      2. 1

                                                                                        On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it?

                                                                                        https://documentation.suse.com/sles/11-SP4/html/SLES-all/cha-snapper.html

                                                                                        By default Snapper and Btrfs on SUSE Linux Enterprise Server are set up to serve as an “undo tool” for system changes made with YaST and zypper. Before and after running a YaST module or zypper, a snapshot is created.

                                                                                        1. 1

                                                                                          Excellent. Like ECC RAM, those who are already expert enough to devise ways to do the task are given the tools.

                                                                                          This doesn’t happen on mainstream user- friendliness- oriented distros.

                                                                                          I do wonder about a Nix- based highly usable distribution. All the tools are there to implement these protections, lacking only a general user interface.

                                                                                          1. 1

                                                                                            I think that’s an unfair summary. Implementing this properly takes time and few distros have even started to default to filesystems where this is possible. It’s coming desktops too: https://fedoraproject.org/wiki/Changes/BtrfsWithFullSystemSnapshots

                                                                                            1. 1

                                                                                              Of course it’s coming.

                                                                                              I still think the criticisms are valid and help drive these technologies arriving for the common user.

                                                                                          2. 1

                                                                                            That’s pretty cool. I hope it becomes more widely accessible on end-user distributions (I expect SLES is a pretty tiny minority of the overall desktop/laptop Linux userbase).

                                                                                        2. 1

                                                                                          bug

                                                                                          It was a good old package conflict, wasn’t it? The normal way this happens is if you try to install a package from a foreign distro.

                                                                                          Different distros have different versions of packages, so unless the foreign package’s dependencies happens to line up with every installed package, the only way to install the foreign package is going to be to uninstall everything that depens on a conflicting version of something, which can be quite much.

                                                                                          If so, I wouldn’t call it a “bug”, since that’s a term used on software – the package manager itself, not its input. For user expectations, this means that bugs are fixable, whereas package conflicts (at least of the self inflicted kind) are not. The software can only heuristically refuse to do stupid things.

                                                                                        1. 7

                                                                                          The application names don’t represent the jobs of those applications (e.g. “Kate”).

                                                                                          I generally don’t like to nitpick, but this is, frankly, some bullshit. There are tons of Windows applications whose names have nothing at all to do with their function. Hell, half of the software Linus shills on the daily - not that this is a bad thing, sponsorship is fine - is basically word soup. It’s especially annoying because the .desktop data for these programs includes their generic descriptions, so if you type “text editor”, you get Kate as a suggestion!

                                                                                          There are some real issues brought up by the LTT folks (although, I’d argue, nothing the free desktop community doesn’t already know), but this and several other points really come off to me as “the status quo is the only viable option until the alternatives are perfect in every way,” which is a classic deflection of any suggestion of change. It’s especially frustrating here because LTT is telling people not to try this as an option, despite these issues being ones that have not hampered any of the various people I’ve given free desktop based machines to over the years.

                                                                                          1. 14

                                                                                            The new MacBook Pro, which I have, is all this and more. A clean build of my work project (C++, Xcode) is about 50% faster than on my 2018 model, with no audible fan noise. In fact I don’t recall ever hearing the fan. I’m getting multiple days of battery life, too. (This is with the baseline M1 Pro CPU, not the Max.)

                                                                                            I’ve been through every Mac CPU change, 68000 to PowerPC to x86 to ARM, and each one gets more transparent. The only time I noticed this one was when I first launched an x86 app and the OS told me it was going to install the emulator. Everything I’ve recompiled and run has worked fine.

                                                                                            Also kudos to Apple for backing away from earlier design decisions — “butterfly” keyboard, touch-bar — that turned out to be bad ideas. The Apple I worked at probably wouldn’t have done that.

                                                                                            1. 8

                                                                                              I liked new MacBooks Pro on paper, but when I touched them in the store I took my 3k$ and went home. I don’t care about useless to me ports, USB C is all I want (I do software). For me MacBook Air with M1 is much better in terms of form and weight. But this is my usecase.

                                                                                              1. 2

                                                                                                I don’t need an SD card reader, and I could do without the extra weight, but I do need at least a 15” display to do work. ¯\(ツ)

                                                                                              2. 4

                                                                                                Ditto to all of this. I spend a lot of time in and around WebGL graphics. One of our in-house apps makes my old MacBook and the laptops of all my colleagues sound like the decks of aircraft carriers. It’s completely silent on my new M1 MacBook Pro.

                                                                                                I was frankly a little nervous about getting this machine. I need it to run everything from Blender, a .NET server with a proxied webpack dev server on top, various node servers, to a headless WebGL engine. I was pleasantly surprised to find it does all but the last those things without breaking a sweat. Things that run natively feel instantaneous. Things that run on Rosetta 2 still feel snappier than before. Industry adoption for Apple Silicon is moving apace. I’m pretty sure I’m just a dependency upgrade away from getting the last item on my list working and I can finally shed my old machine for good.

                                                                                                The most revolutionary thing about the experience of using the new MacBook Pro isn’t the features or build quality per se (although they’re both excellent). It’s that the performance bottleneck in my day-to-day work is squarely back on the network. I haven’t felt that way in a while.

                                                                                                1. 1

                                                                                                  I am really disappointed that Apple removed both the touchbar and the butterfly keyboard. The butterfly keyboard was the best feeling keyboard I have ever used, bar none, and the touchbar was very useful in some scenarios, while the physical F keys are absolutely useless to me.

                                                                                                  1. 13

                                                                                                    The touch bar has an interesting idea, but without proper haptics (i.e. scan with your finger, more forecful click as you actually press), I don’t think most people wouldn’t have bought into it.

                                                                                                    I thought the butterfly keyboard was nice on the 12” MacBook (they should bring it back w/ M1, IMHO), but I wasn’t as impressed with it on the Pros…. and the reliability issues sunk that.

                                                                                                    1. 1

                                                                                                      I forget if I’ve mentioned it on here before, but HapticKey is worth trying. It uses the magnets in the touchpad to emulate feedback on the Bar, it work better than you’d expect.

                                                                                                      1. 1

                                                                                                        Oh yeah, the version of the 12’’ MacBook was the best. The newer version on the Pros wasn’t quite as good, but to me it was still better than the current keyboard.

                                                                                                        As for reliability, mechanical keyboards have atrocious reliability compared to both regular keyboards, and I suspect to the butterfly keyboards as well, but that’s not the reason why people use mechanical keyboards. They simply like the feel and accept the tradeoff. I would accept the same tradeoff for my laptop’s keyboard.

                                                                                                        1. 5

                                                                                                          As for reliability, mechanical keyboards have atrocious reliability compared to both regular keyboards, and I suspect to the butterfly keyboards as well, but that’s not the reason why people use mechanical keyboards.

                                                                                                          Do you have some evidence for this? I don’t have numbers, but I have numerous mechanical keyboards and the only one that has failed was stepped on, whereas I experienced multiple failures of my MacBook butterfly keyboard.

                                                                                                          1. 1

                                                                                                            Unfortunately I am not aware on any real studies, so all I have is anecdotal evidence, albeit I have a lot of anecdotal evidence.

                                                                                                          2. 1

                                                                                                            As for reliability, mechanical keyboards have atrocious reliability compared to both regular keyboards

                                                                                                            Just to clarify, you are only referring to mechanical keyboards on laptops and not to external mechanical keyboards?

                                                                                                            1. 1

                                                                                                              No, I am referring to external keyboards. I didn’t even know mechanical keyboards on laptops were a thing.

                                                                                                              1. 4

                                                                                                                There were, though I’m going back to the 486/Pentium era (easily portable might be a better description than what we think of now). The current ones I know of with mechanical keyboards are from Razer and Asus.

                                                                                                                My experience with mechanical keyboards differs, even cheap ones are long-lasting than any laptop keyboard I’ve seen since some of the old IBM Thinkpads and Toshiba Porteges.

                                                                                                          3. 1

                                                                                                            The touch bar has an interesting idea, but without proper haptics (i.e. scan with your finger, more forecful click as you actually press), I don’t think most people wouldn’t have bought into it.

                                                                                                            The most important feature of he touchbar was that it could run Doom. It’s still a mystery why touchbar equipped Macbooks didn’t fly of the shelf after this became known. :(

                                                                                                          4. 11

                                                                                                            I really wanted to like the touch bar, but my fingers rarely ended up using it, maybe because of the lack of tactile feedback. Also, I’ve long been accustomed to binding F1..F8 to switch between my most-used apps, so having other functions on the touchbar interfered with my muscle memory.

                                                                                                            You’re honestly the first person I’ve ever heard praise the butterfly keyboard, or even say it felt any better than the old type. I kept making typing mistakes on it, and even bought a little KeyChron mechanical BT keyboard to use when I wanted to do a lot of typing away from my desk.

                                                                                                            1. 2

                                                                                                              Well, add me to the likes for the feel. Besides that, it was an absolute disaster. I had a MacBook Pro with a butterfly keyboard from before they added the seals and keys would constantly get stuck or wouldn’t actuate correctly (I guess because a speck of dust got in).

                                                                                                              Though, the most reviews don’t mention this, the new M1 Pros have another scissor mechanism than the M1 Air and prior scissor MacBooks and I love it. It is much more ‘clicky’ than the earlier scissor keyboards and feels somewhat closer to mechanical keyboards.

                                                                                                            2. 5

                                                                                                              I am really disappointed that Apple removed both the touchbar and the butterfly keyboard.

                                                                                                              The butterfly keyboard seems to have had a lot of reliability issues, even after they made some changes to it.

                                                                                                              1. 1

                                                                                                                Why not bind the actions your wanted to the F keys? MacOS has a very good support for binding actions.

                                                                                                            1. 19

                                                                                                              While I agree with the reasoning in the article and think the approach suggested makes sense, I also think it misses the wider picture and is only likely to result in small gains. The real issue with modern tech is not technical it is political, and there is not technical solution to this problem.

                                                                                                              The solution proposed here may get adopted and result in marginal gains if and only if some corporate executives decide it could make their company more profitable.

                                                                                                              The real issue with tech as I see it is the participation of for profit corporations. The goals of for profit corporations are not aligned with those of the human race in general, or individual humans in particular, unless those humans are shareholders. They put non-technical people in charge of development projects because those people have the capital everyone needs to get the job done. They prefer opaque proprietary protocols and interfaces because it enables them to entrap their users and gives them a chance to build monopolies. The create broken by design systems like DRM to protect profits. They turn a blind eye to bad behaviour like spam, clickbaiting, trolling and scamming whenever these are sources of profit for them. They hide their source from scrutiny which might otherwise discourage bad behaviour and discover security issues. They work programmers too hard for too long hours, while browbeating them and breaking their spirit until they no longer take pride in their work. Their focus is always short term. Worst of all, they discourage the population at large from understanding how their devices work, preferring instead to dumb all human interfaces down and make people dependant on ‘tech support’. Their interest is not in building a good base of software for enabling human beings to live full and happy lives with everyday technology, their goal is to siphon resources out of society and use it to grow out of control and ultimately take over everything. Like a malignant tumour.

                                                                                                              I know a lot of programmers don’t like talking about this aspect of things but I think it is important. It may seem off topic but if your read the three introductory paragraphs of the article again I think you will see that what I am talking about is probably a major factor in the problems the author is trying to solve.

                                                                                                              1. 24

                                                                                                                We see the same problems in open source projects, free software, and government tech. I bet if you peeked into Soviet software companies you’d see the same problems, too. Blaming capitalism is the lazy way out.

                                                                                                                1. 17

                                                                                                                  This is too conflationary of a dismissal. Look again at the list of problems:

                                                                                                                  • Non-technical leaders giving top-down orders
                                                                                                                  • Building and publishing proprietary interfaces
                                                                                                                  • Designing DRM
                                                                                                                  • Giving reputation to bad actors as long as it is profitable
                                                                                                                  • Building private code repositories and refusing to share knowledge
                                                                                                                  • Forcing programmers to work long hours
                                                                                                                  • Blocking right-to-repair and right-of-first-sale

                                                                                                                  Your reply is that this also happens in the open-source world, which is a corporate bastardization of Free Software; and that it happened in the USSR, a time and place where a government pretended to be “communist” but still had shops, jobs, wages, and a wealthy upper class. Yes, I imagine that these capitalist and corporatist patterns are recurring in many contexts. No, it is wrong to lump them all together with Free Software.

                                                                                                                  1. 17

                                                                                                                    Looking at the list of problems:

                                                                                                                    • Not in the article.
                                                                                                                    • Not in the article.
                                                                                                                    • Not in the article.
                                                                                                                    • Not in the article.
                                                                                                                    • Not in the article.
                                                                                                                    • Arguable?
                                                                                                                    • Not in the article.

                                                                                                                    That’s why it’s the lazy way out. It doesn’t engage with the article at all. You just have to say “it’s capitalism’s fault” and watch the upvotes roll in.

                                                                                                                    1. 12

                                                                                                                      Just because anti-capitalist/corporate sentiment is popular doesn’t make it lazy or disingenuous. Putting the argument in a cultural/political context is a perfectly valid way of engaging with it. Pointing out that they come up with their own examples that are not in the article, as if that’s a bad thing, is a weird way to make a counterargument, given that the article is concerned with “ways we keep screwing up tech.” Giving corporations too much control over its direction seems like a pretty big way we’ve screwed up tech so far.

                                                                                                                      1. 6

                                                                                                                        Software development suffers during demand imbalance. In a market situation with fierce life or death competition, people work insane hours and abandon practice just to get things out the door. In markets where companies make money/survive no matter what they do, practice (and code) atrophy. No one cares. The latter case has effects that are remarkably similar among government projects, non-profits, and large institutions like banks and insurance companies with little competition.

                                                                                                                        You can blame Capitalism, but the truth is people and projects need purpose and incentive; just not too much. There’s a sweet spot. It is like having a good exercise routine. Without it you atrophy; with too much, you destroy yourself.

                                                                                                                        1. 2

                                                                                                                          I largely agree with that point. And I’d be naive to argue that capitalism alone is the cause of all problems in the tech industry, which is why I didn’t. At the same time, I think that capitalism, at least as it exists in the United States today, offers pretty bad incentives for teams and individuals most of the time. Professionals in the computing field have it better than most in that they have large monetary incentives. But above about $75K, as Kahneman and Deaton found, more income has little effect on one’s evaluation of own’s own life. Beyond that, you still have the problem that the interests of working people, including programmers, mostly don’t align with oligarchs’ interests. I’m not alone in the experience that even at a substantial salary, it’s pretty hard to feel incentivized to deliver value, ultimately, to those who own vastly more wealth. Not what I would call a sweet spot.

                                                                                                                          1. 5

                                                                                                                            It would probably be good for you to talk to programmers in Sweden (if you haven’t). Less capitalistic, much more socialist. A lot of big employers and relatively fewer startups. They have problems too. And that’s the thing. All systems have problems. It’s just a matter of tradeoffs. It’s nice that there’s enough diversity in the world to be able to see them.

                                                                                                                      2. 8

                                                                                                                        (You should know that I wrote and deleted about seven paragraphs while attempting to engage with the article seriously, including this one.)

                                                                                                                        Let’s take the article’s concluding suggestion seriously; let’s have a top-ten list of ways that “the technology industry” is “screwing up creating tech”. I would put at number one, at the very top: The technology industry’s primary mode of software creation is providing services for profit, and this damages the entire ecosystem. What ten behaviors would you put above this one? The only two contenders I can think of are closely related: Building patent pools and using work-for-hire provisions to take copyrights from employees.

                                                                                                                        It’s not capitalism’s fault that self-described “experts” are having trouble giving useful advice.

                                                                                                                        1. 3

                                                                                                                          Is there an “industry” that doesn’t exist for profit?

                                                                                                                          I think needless churn, overcomplication, harmful treatment of developers, harmful treatment of users, and wasteful use of energy are all ways the industry screws up tech…but then again, so too does libre software!

                                                                                                                          And unlike industry, there isn’t even an evolutionary pressure you can hijack to keep it honest.

                                                                                                                          1. 3

                                                                                                                            Beavers do not terraform for profit. The bulk of free culture is not profit-driven either.

                                                                                                                            Note carefully that you substituted the original list of seven problems which are all created by profit-seeking behavior with your own list of five issues which are not. Yours are also relatively vague to the point of equivocation. I’ll give a couple examples to illustrate what I mean.

                                                                                                                            For example, where you say “harmful treatment of users”, I said “giving reputation to bad actors as long as it is profitable” and the original comment said “spam, clickbaiting, trolling and scamming”; and I do not know of examples in the FLOSS world which are comparable to for-profit spamming or other basic fraud, to say nothing of electoral interference or genocide, although I’m open to learning about atrocities committed in the furtherance of Free Software.

                                                                                                                            For another example, where you say “harmful treatment of developers”, I said “forcing programmers to work long hours” and they said “[for-profit corporations] work programmers too hard for too long hours, while browbeating them and breaking their spirit until they no longer take pride in their work”; you have removed the employer-employee relationship which was the direct cause of the harmful treatment. After all, without such a relationship, there is no force in the Free Software world which compels labor from people. I’ll admit that it’s possible to be yelled at by Linus, but the only time that happened to me was when I was part of a team that was performing a corporation-led restructuring of a kernel subsystem in order to appease a still-unknown client.

                                                                                                                            1. 5

                                                                                                                              You asked for a top-ten list, I gave five; don’t bait-and-switch.

                                                                                                                              Each of those examples I gave can and does happen under both a for-profit model and under a libre-hippy-doing-it-for-free model.

                                                                                                                        2. 7

                                                                                                                          Not in the article.

                                                                                                                          “But once I started working with teams-of-teams, process, and changing large groups of people, things did not work the way I expected.” “I found myself repeating the same things over and over again and getting the same substandard results.” “ came to realize that these were honest efforts to get more traction.” “I got worse at learning new stuff” “tired of watching my friends repeating the same things over and over again, snatching at this or that new shiny in an effort to stay relevant”

                                                                                                                          It is fine that you disagree with my interpretation of how the article describes the problem. Maybe I completely misunderstood what the author was referring to. Perhaps you could enlighten me and provide the correct interpretation. I look forward to your response.

                                                                                                                      3. 9

                                                                                                                        Solely blaming capitalism certainly won’t address all problems with software development, but I do think there’s a case to be made that the profit motive is just as good a tool for producing pathological states as innovation. DRM is a prime example.

                                                                                                                        1. 12

                                                                                                                          The original post had nothing to with DRM, putting nontechnical people in charge, hiding source code, working long hours, or dumbed down human interfaces. Dunkhan didn’t engage at all with the actual article, he just said it was all because of “for profit corporations” and listed unrelated claims.

                                                                                                                          You could argue that profit motive is a good tool for producing pathological states; he didn’t.

                                                                                                                        2. 7

                                                                                                                          I mean, open source in the large is dominated by corporate interests, so this isn’t much of a gotcha. Just ignoring capitalism as a fundamental factor seems like the significantly lazier option.

                                                                                                                          1. 11

                                                                                                                            I never blamed capitalism. Adam Smith, and most respected capitalist economists that followed have all said that monopoly formation is to be avoided at all costs and if not correctly controlled will completely undermine any benefits of a capitalist system. If you go through the behaviour I called out, almost every example is either the result of, or an effort to achieve a monopoly. It would be more accurate to say I am defending capitalism against those corporations who are ruining it. If you want an -ism that I am blaming, I think the closest analogy to what they are doing is some kind of feudalism. Lets call it corporate neofeudalism.

                                                                                                                            The main tool we have for combating this behaviour also comes directly from the same canon of capitalist thinkers. Namely, antitrust laws. All we need to do is expand them, make them harsher, and then ruthlessly enforce them. There is no need for new and creative solutions to this problem, it is an old problem and has been solved already.

                                                                                                                            1. 4

                                                                                                                              IMO when somebody says “the problems with software are that it’s being done for profit” there’s no need to talk with them about software any more. They’re not interested in fixing software, and if that’s all you feel like talking about right here and right now there’s no useful outcome in engaging with them.

                                                                                                                              1. 1

                                                                                                                                No one said that.

                                                                                                                                If you want to put words in other people’s mouths and then dismiss their opinions based on those words go right ahead, but it does not reflect well on you. The fact that you see any attack on corporations as an attack on profit making of all kinds also concerns me a great deal. Did you take the Citizens United ruling so seriously that you really believe corporations are people, or are you just getting paid to defend their interests on the web?

                                                                                                                          1. 10

                                                                                                                            I find it funny to read “Haskell makes illegal states unrepresentable.” in that article when astrology is all just made up nonsense. All of your states are illegal in this universe because nothing you “calculate” has any real meaning at all. Any amount of functional programming can’t hide that astrology is a pseudo-science of made up nonsense.

                                                                                                                            1. 9

                                                                                                                              I think Haskell, a language that’s all about applying advanced maths concepts to software engineering, is great for an astrology company. After all, both maths and astrology are about making up a set of axioms and then deriving stuff from them - it’s just that in maths, that stuff is occasionally much more applicable to the real world, and the derivation much more rigorous.

                                                                                                                              1. 7

                                                                                                                                I don’t think the positions of celestial bodies at the time of my birth have anything to do with my personality or fortunes…and math is great and all…

                                                                                                                                BUT

                                                                                                                                IMO astrology is WAY more applicable to most peoples’ idea of “the real world” than the majority of what mathematicians study! :P

                                                                                                                                1. 3

                                                                                                                                  When your “axioms” and “derivations” are such hand-wavy, make-believe woo-woo as to make a mockery of the terms, I dunno if applicability to the real world even enters the picture, really…

                                                                                                                                  RIP James Randi.

                                                                                                                                  1. 8

                                                                                                                                    Absolutely. I’m not saying astrology is a good predictive system, just that I don’t think it’s inherently incompatible with maths.

                                                                                                                                    1. 5

                                                                                                                                      Astrology has a lot of shared history with mathematics. For example, Pythagoras is regarded as the father of Numerology, in addition to his contributions to real mathematics.

                                                                                                                                      More relevant here, the key thing that you learn about in formal verification (straight out of Goeddel’s Incompleteness Theorem) is that you can only prove self consistency, not truth or correctness, with mathematics. Any proof system starts with some axioms. Axioms are not things that are true, axioms are things that relate the mathematical model to something external: if the axioms hold in the external system then all of the proofs that you’ve made within that system will also hold. This is closely related to the Principle of explosion, often referred to by its Latin name ex falso quodlibet. This is useful in proof by contradiction but it demonstrates that if you start with an axiom that is false then you can prove any premise within the logical system derived from that. I think that applies pretty well to astrology, don’t you?

                                                                                                                                  2. 5

                                                                                                                                    This post has nothing to do with the object-level business of astrology, but makes some interesting points and observations about programming in Haskell. Do you have anything worthwhile to say about that or are you content to take cheap shots and pat yourself on the back about how smart you are for calling out astrology?

                                                                                                                                    1. 3

                                                                                                                                      how smart you are for calling out astrology?

                                                                                                                                      Honestly, calling out astrology doesn’t require much smarts ;-P

                                                                                                                                      1. 1

                                                                                                                                        lol That’s very true, which is kind of my point. It is well known, especially in nerd culture, that astrology is fake so derailing an otherwise interesting post to yell about it doesn’t actually do anything. It’s simply Applause Light.

                                                                                                                                      2. 3

                                                                                                                                        Keep your ad hominems for you.

                                                                                                                                        I am always going to openly speak out against nonsensical anti-science, pseudo magical concepts. If the pandemic taught us anything then that we need less garbage like horoscopes and more science education so people understand how things work in the real world. Astrology is not just some game, there are people that orient their life around this. It is a slippery slope into more esoteric things.

                                                                                                                                        No amount of Haskell changes that.

                                                                                                                                        1. 2

                                                                                                                                          No amount of Haskell changes that.

                                                                                                                                          I’m not a Haskeller myself, but I’d be surprised if a few weren’t cringing at this article.

                                                                                                                                          The last thing any minority needs is to be publicly associated with crazy, even if that minority is just a programming language community.

                                                                                                                                      3. 2

                                                                                                                                        There’s nothing fundamentally different from an app that presents astrology data according to different systems (“houses”?) than from a “real” system like an ERP.

                                                                                                                                        In both cases you have inputs that need to be calculated the same way despite your code changes.

                                                                                                                                        1. 2

                                                                                                                                          Yes, they are fundamentally different. If you think that esoteric practices like horoscopes and other pseudo-science are just some quirky thing, you must be closing your eyes to reality. We are in the middle of a pandemic and people from the esoteric spectrum are spreading false information about vaccines, the virus and how this is all a big conspiracy. People who believe in nonsense like horoscopes will tend to believe in other made up nonsense too. I will always speak up against this, because it is harmful to the rest of us.

                                                                                                                                          1. 1

                                                                                                                                            People who believe in nonsense like horoscopes will tend to believe in other made up nonsense too.

                                                                                                                                            What’s the solution to this? I don’t think it’s likely that education will work. It’s been tried. Elimination is certainly not an option. ISTM, the best bet is to give people harmless nonsense to believe in. Better horoscopes than lots of other things they could believe in. Just teach people to keep their hand on their wallets when they’re being taught the secrets of the universe…

                                                                                                                                      1. 3

                                                                                                                                        Nit-pick:

                                                                                                                                        Last updated Nov 11 2021

                                                                                                                                        If I’m not mistaken, that’s still 5 days away.

                                                                                                                                        1. 6

                                                                                                                                          Yeah, something’s wrong with my Hugo setup…

                                                                                                                                          1. 3

                                                                                                                                            No no, Rust is just that fast.

                                                                                                                                        1. 3

                                                                                                                                          After a year-and-a-half hiatus from Rust, I’m looking forward to releasing a Rust data structure library that uses const generics in its API!

                                                                                                                                          1. 3

                                                                                                                                            Very exciting, may I ask what the library is?

                                                                                                                                            1. 4

                                                                                                                                              A zero-copy dynamic array.