1. 21
  1.  

  2. 10

    Russ Cox wrote:

    At Bell Labs, Rob switched acme and sam from black and white to color in the development version of Plan 9, called Brazil, in the late fall of 1997. I used Brazil on my laptop as my day-to-day work environment, but I was not a developer. I remember writing Rob an email saying how much I enjoyed having color but that it would be nice to have options to set the color scheme. He wrote a polite but firm response back explaining his position. He had worked with a graphic designer to choose a visually pleasing color palette. He said he believed strongly that it was important for the author of a system to get details like this right instead of defaulting on that responsibility by making every user make the choice instead. He said that if the users revolted he’d find a new set of colors, but that options wouldn’t happen.

    It was really a marvelous email, polite yet firm and a crystal clear explanation of his philosophy. Over the years I have from time to time spent hours trying to find a copy of that email. It is lost.

    1. 16

      This is a good example of having a fundamentalist position to the point of absurdity. The idea that there will be a correct colour scheme for a text editor is an amazing mix of arrogance and over-simplification.

      1. 12

        And ignores the fact that not everyone has “correct” vision and color perception.

        1. 2

          And not every display is created equal, either. Nor every physical environment. (I switch themes when I use my laptop outdoors, because my usual low-contrast theme is illegible there.)

          1. 1

            That seems silly.

            I go outside sometimes too, but I adjust the contrast and colour temperature of the entire system, since I do more than edit text.

            1. 2

              Oh, that makes sense. When I take my old ThinkPad outside, I don’t have internet access, so, it’s highly unlikely that I will be doing anything other than editing text. :) In recent history, this has only happened when I’m a passenger on a long drive. There are a couple of toy C programs I putz around with to pass the time.

        2. 2

          The idea that there will be a correct colour scheme for a text editor is an amazing mix of arrogance

          Why?

          I have my own opinions on the matter, but it seems to me that optimising a colour scheme for a set of requirements (contrast, colour blindness, long exposure time, etc) is probably possible.

          I think most people have a brand preference for a set of colours that is something else though.

          and over-simplification.

          The depth of the response may be lost to us, but surely it is irresponsible to assume it was done without thought given here is an accomplished programmers report that the response was in fact, quite thoughtful?

          1. 2

            I have my own opinions on the matter, but it seems to me that optimising a colour scheme for a set of requirements (contrast, colour blindness, long exposure time, etc) is probably possible.

            There are many considerations that go into people’s selections of color schemes that intrinsically vary, including physical environments (e.g., home vs. office), time of day (e.g., daylight vs. evening light), and simple personal preference. To insist that there be no option to change the colors – on principle – is to tell everybody who might care about these considerations that they’re flat out wrong and that the author knows that before having talked with them. As if that’s not arrogant enough, it’s even more arrogant (and illogical) to further claim that even if one were wrong about the specific colors chosen, they’re still right about the broader point that there’s only one appropriate color scheme for an editor.

            The bit about author’s responsibility is a red herring. I, too, believe that it’s important for authors to choose an appropriate set of configuration parameters. I also believe there’s nothing wrong with users wanting different values.

            1. 1

              I think it supporting multiple physical environments (gamma/contrast) and time of day (temperature) doesn’t beg for multiple colour schemes: That’s just lazy engineering. This is obviously a job for the display manager or monitor setup.

              Being left with “simple personal preference” isn’t satisfying; People can have a “simple personal preference” about nearly everything, Flat earth, Metric system, Fish on Friday, and so on. Some editors support more preferences than others.

              In terms of something wrong with “users wanting different values”, one thing I particularly dislike about preferences is sitting down at another persons workstation and being unable to help them quickly (i.e. with minimal mental load on myself) because they have configured damn near everything that can be configured.

              1. 3

                I think it supporting multiple physical environments (gamma/contrast) and time of day (temperature) doesn’t beg for multiple colour schemes: That’s just lazy engineering. This is obviously a job for the display manager or monitor setup.

                I don’t think that’s obvious at all.

                Being left with “simple personal preference” isn’t satisfying; People can have a “simple personal preference” about nearly everything, Flat earth, Metric system, Fish on Friday, and so on.

                “Flat earth” is a scientific model, the purpose of which is to make predictions, and that model makes no useful predictions that aren’t made more accurately by other models. If you were building software that depended on a model of the earth, I think it would be fair to leave out a “flat earth” model because it’s objectively less useful. Meal choices are indeed a personal preference – and if you were building software for people to record their meals, I’d recommend against supporting only one possible food. Few people would find it reasonable to tell somebody what single food they must eat for all meals. Choice of unit system has properties of both; there are tradeoffs with different systems, and most software provides an option to switch between them.

                My main point is that to provide an option is to allow for the possibility that you might be wrong and enable users to adjust as they need to. To refuse the option (on principle) is to assert that anybody who wants it to work differently is wrong by construction.

                It seems like you’re taking the conjecture (that there is only one optimal color scheme) as an axiom and, faced with a data point like a person claiming to prefer a different color scheme, conclude that the person is irrational (akin to a flat earth believer). That seems backwards to me.

                In terms of something wrong with “users wanting different values”, one thing I particularly dislike about preferences is sitting down at another persons workstation and being unable to help them quickly (i.e. with minimal mental load on myself) because they have configured damn near everything that can be configured.

                I agree with how annoying this is, but I would not even consider to insist that people use no customizations for the tiny fraction of time I spend in their environments.

                1. 1

                  It seems like you’re taking the conjecture (that there is only one optimal color scheme) as an axiom

                  I’m humouring it, sure.

                  Here’s a smart guy who has convinced another smart guy – the exact conversation lost, but the impression remained. I’m giving it the benefit of the doubt because that’s how we ourselves begin to be convinced of strange and unusual ideas.

                  I’m still making my own opinion here:

                  It seems possible to have a colour scheme optimised for certain things.

                  It might not be possible to optimise for every thing, and it’s certainly not possible to optimise for everything once you’ve permitted “personal preference” to be one of those things; as an extreme example, people had personal preference not to sit next to black people on the bus – so I think it’s absolutely foolish to admit “personal preference” so quickly.

                  most software provides an option to switch between them.

                  Feature parity is often a useful goal, but I don’t see how it’s relevant. The feature either generally useful or specifically popular, and the argument is clearly about the former.

                  That seems backwards to me.

                  That’s why thinking about it is useful.

                  I think you can start from either position: That choice is good or choice is bad. It’s almost certainly not that simplistic, but I see no good reason to start at the end you are starting from, and several easy reasons not to.

                2. 2

                  Being left with “simple personal preference” isn’t satisfying;

                  Their personal preference might be based on something like “I’m colorblind” or “I have a sensory integration disorder” or “I need a high-contrast theme because I have extremely poor vision.” Sometimes preferences are out of necessity.

                  1. 1

                    I don’t agree that those things are “simple personal preference”.

                    I touched briefly on why, but reading back it might not be clear:

                    Accessibility is actually probably something that can be optimised for – that is to say, a colour scheme can be optimised for colourblindness, contrast needs, integration disorders, and so on.

                    However even if personal needs remain unaccommodated, I’m still not sure every application being written needs to reinvent the wheel to add this kind of configuration. Notwithstanding the risk/reward questions (e.g. how many people have these kinds of problems, really), it still seems like it would be smarter engineering to get your display manager/windowing environment to do it, not to mention more convenient for users.

                    So: Still not convinced.

        3. 3

          There is a middle ground. The mechanism to change something can be convenient for the user, which usually means it is more work for the developer as it needs UI and documentation. Or it can be difficult for the user to use up to the point that it is hidden but still can be changed. Mechanisms for this would include environment variables, the X Window resource mechanism, or setting variables in a built-in language.