Why Themes?
From time to time people ask that question. Why did I want to add themes to the Diamond text editor? There are many reasons. Some of the reasons I identified in an answer I gave on Quora. Since most of you don’t read Quora I will regurgitate a bit of it here.
For eons I simply used whatever color scheme was default. I came up via terminals and you could have any color you wanted as long as it was the color of the phosphor in the DEC terminal.
Even then we were moving to different colors. The early white on black wasn’t really white and wasn’t really black. Then ghosting green became popular. At some point amber made an appearance.
IBM actually managed to have three colors in some of their terminals. Green red and something else.
As life went on I found out I needed to change the colors on PC editors. Then I found out I needed glasses. Later I found out I was diabetic.
1 in 10 Americans have diabetes
National Diabetes Statistics Report, 2020
COBALT is probably one of the oldest “themes” around and now I understand why. Usually I can start out with a white or white-ish background in the morning but sometime after lunch I’m cranky, irritable, and should have changed to a darker background hours before.
Years ago I spoke with my doctor about this. He told me the fluid in the eye is “mostly sugar.” As your glucose level rises and falls throughout the day so does the level of sugar in this fluid. The eye components got used to being bathed in lots of sugar. When the sugar content changes, they change their shape. It takes quite a bit of time with a consistent sugar level for the eyes to “adjust to a new normal.” That’s why diabetics are supposed to see an eye doctor so often.
There are actual studies being used by vending machine and medical device manufacturers showing which color schemes work well for which situations. If you are going to be working with visually impaired individuals you need black text on a gray background. It is a certain gray, not just any gray. I just don’t remember the RGB code for it off the top of my head. For some reason people who are legally blind yet not totally blind can see that scheme the best. They generally either cannot function or have extreme difficulty with black on white.
In 1990 America passed the Americans With Disabilities Act. Basically a company of a certain size must provide “reasonable accommodations” to people with a disability. That “certain size” is rather small too. According to the link it is a business with 15 or more employees. While it may not be obvious to you, providing an editor with color themes is one of the easier accommodations. Having that editor start with a white background is generally not good due to vision problems so someone probably needs to initially switch it to gray.
When it comes to syntax highlighting editors one must also consider that some really famous people are color blind. Keanu Reeves and Mark Zuckerberg are among them. That link also provides a lot of information about how to use a tool to come up with color blind friendly palette. While they are talking about for charts and presentations, the same applies for syntax highlighting editors.
No, I haven’t used the tool. At some point, as development moves forward and others discover the editor, someone will either use the tool or they will simply know what palettes to use because they do this color thing every day. There are a great many really smart people out there who couldn’t code “Hello World!” but are amazing at graphics design and use “proper workplace color palettes” every day. They also tend to need a text editor from time to time to take notes and keep track of to-do lists.
Most of you didn’t pay attention or at least didn’t consider the possibilities of the Import/Export buttons I added to the colors dialog. This is for them and by extension, all of us. When non-coding people who know a lot about proper color palettes required by this specific community they can contribute to the project by creating a theme and exporting it. What we currently don’t have is a central repository of themes with screenshots where people could pick and choose the theme they want. I’m not thinking of a “git pit.” I’m thinking something along the lines of the Emacs themes site.
I have had the distinct honor of working with some phenomenal UX and design professionals over the decades. Did I learn how to do this from them? No. I learned that it must be done. I learned that it must be done by a true professional, not just someone getting paid to do the job.
Believe it or not, I learned that last part at a vending machine company. That dude immersed himself in all of the nooks and crannies of this topic. He even told me why. “Because one of the jobs visually impaired people tend to get is restocking vending machines.” This is particularly true when it comes to the crews that drive rest stop to rest stop on the Interstate cleaning them and filling the vending machines. In some states they are all state employees. Only one person in the vehicle needs to see well enough to drive. The rest only need to see well enough to do their jobs. This company put great effort into making sure their machines were accessible by all.
The next time you walk past one of those vending machines with a fancy touch screen display streaming advertisements while nobody is using it ask yourself one thing: “How does a blind person use it?” The rush to full touch-screen interface on many products has excluded a market segment. There is a reason you see touchscreen displays with one of these:
What gets forgotten in the OpenSource world, despite all of the platitudes, is that it isn’t “just us” or “just me.” People like to talk about all of the “freedom and creativity” of OpenSource projects. What they have to realize is that you have to abide by “gubmint rulz” when it comes to design. Far too many projects don’t which is why they whither and die.
I will close this topic with a link to this short blog post about color blind friendly palettes. Thankfully it also has this link to the actual RGB scan codes. Creating these things is something I don’t have time to do right now, but anyone can use the Colors dialog and enter the RGB codes, save, test, and export a theme.
Having worked at an advertising agency before let me ask you a question:
Do you know why Betty Crocker cake mix crushed the competition despite there being dozens of other brands on the shelf?
This was the days when women actually called themselves a “House Wife” and were proud of it. All of those other cake mixes were “instant.” You just added water and put them in the oven. With Betty Crocker you added an egg. Adding an egg crossed the psychological barrier and the conscientious house wife could honestly say “Yes, I baked it myself.” Adding an egg made it not instant and therefore okay. Instant is what the bad wives did and you would never find them featured in Good Housekeeping.
Putting in place the groundwork for community themes is the text editor equivalent of “adding an egg.” Allowing users to create plug-ins is the text editor equivalent of allowing too many cooks into the kitchen. That’s a condition Emacs suffers quite badly from now. Most of the plug-ins conflict horribly or cause random oddities in unrelated plug-ins. With every plug-in you install it is like tap dancing in a mine field.