Ask HN: Why Are Programmer Design Tastes So Utilitarian?

37 points by CM30 ↗ HN
As seen with things like open source software, many developer tools, Hacker News as a website and people's opinions on CSS and modern web design on places like Reddit?

Cause it feels like many people's tastes come from the 80s/early 90s, with the idea that any sort of visual flourish or attempt at readability is completely irrelevant.

And it makes me wonder why this is. Why do so many... hacker type individuals seem to prefer very brutalist, utilitarian designs over anything more fancy? Where did this preference for plain text at the expense of all else come from anyway?

Because I don't think this happens quite as much in other fields, like architecture, cooking or construction.

83 comments

[ 3.0 ms ] story [ 173 ms ] thread
Hackers like flexibility and maintainability. Because we put so much of ourselves into what we use, frequently tinkering and modifying to remove frictions and inefficiencies, we want this to be easy and we want things to keep working for a long time.
You want design? We have design at home.

Oh wait, nevermind

I'd turn the question around and ask: why is there so much white space in pages made by liberal arts majors? Why do many people prefer 140 character tweets to reasoned articles? Could it be that programmers know how to read whereas people who didn't know how to read in college and had to study English to learn how to read still don't really know how to read or write?
> people who didn't know how to read in college and had to study English to learn how to read

You seem to be suggesting that liberal arts majors didn't know how to read in college. At the very least, English majors. I'm confused why you think extensive study of language would be attractive to someone who didn't know how to read.

There is communication and there is anti-communication.

The study of language is frequently a dead end, witness how structuralism and post-structuralism became irrelevant. Linguistics is a “science” in the Kuhnian sense that the community can pose and solve problems but it has nothing to say about how machines can understand language or how people can communicate better.

If you get PhD in physics you learn how to do quantum mechanics which lets you explain why matter is solid or why sodium has a yellow spectral doublet. If you get a PhD in English you learn to read Finnegan’s Wake and pretend that you understood it. Both are hurdles that divide one group from another but one of those is a useful skill and the other one isn’t.

In Japan there are popular books about postwar French philosophy that make a lot of sense when translated to English. A major enterprise of the humanities in the anglophone world is the obscurification of French philosophy which starts with the (usually) bad translations but continues in the way people talk about the subject. (E.g. outsiders to the humanities often think there is something morally wrong about Derrida but don’t understand at all what his game is or that there are other authors like Badiou who play the same game at a much more evolved level.)

> it has nothing to say about how machines can understand language or how people can communicate better.

There's an entire subfield of computational linguistics that would disagree with you.

> pretend that you understood it

This seems to suggest that no one who claims to have understanding does, which seems like a large claim.

> one of those is a useful skill and the other one isn’t.

I strongly disagree that understanding language is any more useless than understanding quantum mechanics, but based on your stance as I understand it, I can't imagine either of us will have any success in convincing the other.

Language in the abstract is one thing, James Joyce is another.

So far as computational linguistics is concerned there is a long term fight which is something like large language models 99 - Noam Chomsky 1. That is, the productive half of computational linguistics solidly rejects the dominant paradigm of the rest of the field.

Maybe some relevant models or perspectives to consider:

- "Dopamine Sucks" Model: The typical view on design, or even the typical a e s t h e t i c is overwhelming in this way or that, perhaps even at a biological level

- Preferring-informational-over-visual-design Model: We leverage information far more effectively than visual/sensory cues

- Fluff PTSD Model: In the past we learned to interpret social signaling cues and design cues (often the two are mixed in design processes) as Jedi mind tricks to cover up a lack of circumspect treatment of other cues that also matter. Show me the raw data plz (also seen on Wall Street)

- "Pro-emotional? More like Con-emotional" Model: Programmers sometimes prioritize information so much that they neglect emotions too long, and are left to recover their emotional bearings starting from a very dark place. Brutalism is, among other things, a symbol of a stark inner environment

- "Magnificent, My Nose" Model: We got used to having plain text dissed by really shallow people who refused to give our world more than a cursory glance. So we work to present it as a strength until others are forced to give us deference [1]

1. https://www.youtube.com/watch?v=nFiLIsMieiQ

When they try to tear down brutalist buildings the community usually turns up to save them. They are honest, they show their bones, they often fit in with their environment.

Those glass and steel international style buildings have no real support from the community because they were designed for somebody else's eyes to begin with.

> attempt at readability

I find HN and other "brutalist" designs much more readable than most "pretty" layouts. I've had extended arguments with old school print people (as in, we were laying out columns on boards with tack wax) over the subject of column width and why did we even have columns at all?

My conclusion has been that most of those "design principles" about readability and so forth are religious tenets with no relation to the real world.

I don't know what is but it seems a lot of people would rather die than use Ctrl + and Ctrl - to adjust web pages so they look good for them.
This is a feature. It means the design is compatible with basic adaptive technology that lets us tailor it to our individual physical needs. The more beautiful the design, the more rigid it becomes.
Yes, the OP is conflating several things here. For example, with HN, maybe you could say it's brutalist, but readability is much better than comments in Facebook, Disqus, etc. It's difficult to directly address OP's comment with this conflation, I'm not sure what's being referred to.
(comment deleted)
It's part of the hacker culture and values. "Hacker" in this case refers to the original definition of the term originating at the MIT Tech Model Railroad club:

http://www.catb.org/esr/writings/taoup/html/hackers.html

https://en.wikipedia.org/wiki/Tech_Model_Railroad_Club

http://www.paulgraham.com/gh.html

http://www.paulgraham.com/college.html

>> Where did this preference for plain text at the expense of all else come from anyway?

It stems from the clarity of text in communication and the use of textual formats and protocols in Unix and the early Internet.

http://www.catb.org/esr/writings/taoup/html/ch01s06.html

http://www.catb.org/esr/writings/taoup/html/ch05s01.html

It happens everywhere. It's all information, and it's all communication if it's moving from one body to another (whether that is their stated intent or not). The medium is the message [https://en.wikipedia.org/wiki/The_medium_is_the_message] —if you pay attention you can understand what is being communicated above the "raw data".

You're not required to follow suit.

That said, a bit of attention paid to colour contrast in the text content makes me believe you want me to read the words, at least. :)

It might be worth asking the question: what exactly are they trying to communicate with such a forceful utilitarianism and then plan your own actions accordingly.

Same reason hammer manufacturers don't put weird stuff on hammers. It's designed to do a task. Every animation, every extra menu level, every loading spinner, is a loss in productivity. Readability, discoverability, and other first-day concerns are completely gone after the first day of use, then it's 100% waste.
"Every animation, ... is a loss in productivity"

No it is not. A animation done right (that usually means very short duration), can give the information that some transition between states has happened. Animations are only a problem if they are there for the sake of animation. So when you notice the animation, it is already too long and the designer screwed up.

Because programmers usually don't know good UI/UX design, it's an entirely separate skillset. If they did, well, they'd be designers instead.
I'd consider readability to be paramount in any design described as utilitarian. HN is one of the most readable sites I visit.

UI/UX in software is a field which, to me, hasn't found it's feet yet. In physical architecture(buildings), there are common patterns recognized to be aesthetically pleasing and useful. Industrial design like the cockpit of a car has done the same. Most people recognize a door or a steering wheel instantly and can make use of them. I don't think these things have materialized yet in software. So if your goal is to create software for a specific purpose and you don't have the interest, time, or budget to solve this general design problem, you're just going to punt on it and make the UI basic and functional.

HN doesn’t even restrict content width to readable limits, and uses color combinations that fail basic accessibility tests (eg OP text posts). Odd example of good design when it doesn’t even meet basic accessibility certification requirements. I do find HN design endearing in a minimalist 90s tech way, but that’s just social signaling.
Mostly it's #000000 on #828282 (light gray).

When things get downvoted (like your post was, for some reason), they become gradually more gray on gray, which is hardly accessible for everyone.

I think hn's display of downvoted posts intentionally degrades accessibility in an effort to discourage further interaction.
Yes but it also violates accessibility for OP text posts for other reasons
Yes, the intent makes perfect sense.

Less popular => less viewable is good UX.

But gray on gray does not degrade equally for all.

Some won't be able to see any of it, and others will have text readers that don't censor based on grayscale.

> HN is one of the most readable sites I visit.

Funny, I find it quite hard to read, since it just blows posts out to nearly full screen width. Humans read much better with wraps at 60-80 characters. The first line of your comment, on my screen, is 196.

HN gives you the power to decide your own preferred width for reading, instead of imposing a given value upon you. By not mandating a predefined width, you have full power to view it in any width you choose, simply by either adjusting the width of the browser window within which you read HN, or by setting up a local custom user stylesheet for HN to configure HN to your personal preference.
Yeah my browser sits at about 55% of my screen width in my tiling WM, and it makes HN perfectly readable.
I have a 27" 4k monitor. I love that hackernews fills my screen. I detest the modern web design of capping the line width at giving me the middle 10% of the screen and making the rest white space. We moved on from 12" CRT screens, let us use our screen space.
Yeah, I struggle to keep track of where I am reading when HN stretches from sea to shining sea on my ultrawide.
You could just have your browser only take up half of your ultrawide monitor if you don't like it. That's what I do. You could have a second browser window in the other half as well.
Except that at the 690px? breakpoint, HN starts requiring horizontal scroll: https://ibb.co/FqWf3t1
Huh, I can't get it to do that even when shrinking the browser window to the minimum width.
That's what I do. I'm just kind of nitpickin

  > Funny, I find it quite hard to read, since it just blows posts out to nearly
  > full screen width.
Which reduces scrolling. I love it. If you don't, just resize your user agent. That's why it is referred to as a user agent, incidentally.

  > Humans read much better with wraps at 60-80 characters. The
  > first line of your comment, on my screen, is 196.
Then tell the humans to resize their user agent. The current site is now accessible to both us and to the humans, no need to change it.
Hot tip is to add custom CSS with something like the below, made it a so much better experience for me

      html {
        margin-left: 20vw; 
        margin-right: 20vw;
      }
Programmer Tastes fluctuate around while society recalls older tastes from movies/sitcoms/books; the net result is a passive positive-reinforcement feedback loop from prior art. Psychology has an entire branch studying these sorts of reality -> views -> reality -> views effect chains.

I'm convinced the brutalist, utilitarian designs originate with those of us who spend the most time close to their machines and originate from the needs of the _system_ before the needs of the _users_. As you move closer to end users there'll be more visual flair and ergonomic attention will move from favoring system ergonomics to favoring human ergonomics.

I can't help but feel like it's just sour grapes. Visuals are hard and if you can't hack them yourself they must not be worth it.
I think because much like a mechanics tool, when programmers make programs for themselves it's just that. A tool. You see the same thing happening with other disciplines. Commercial trucks aren't very pretty compared to cars. It's function over form.

The difference is very stark with computers because often times you'll see consumer grade software and software catered towards programmers that lean more towards tools existing in the same domain. Hackernews also isn't ugly, it's just simple. It works great on mobile and it's actually well done.

I prefer readability above all else and often perceive "design" as a gimmick to misdirect visitors/users.

Some seem to think minimalism contradicts UX, but they aren't mutually exclusive concepts.

> I don't think [a preference for very brutalist, utilitarian designs] happens quite as much in other fields, like architecture, cooking or construction.

One example in another field is automotive interface design. Specifically, how one selects a gear for the transmission, controls the temperature and entertainment systems, etc. Automakers have tried different things ranging from touchscreen control, to dials and other innovative ways to select a particular transmission gear. But there are people who prefer the classic interface choices like dials and levers to handle these functions because people have muscle memory and don't have to look at the control to determine what they need to do in order to use the controls effectively.

It looks better. Less clutter and mess. Utilitarian is a good term because a user interface ultimately is a utility. The type of interfaces you mention require no explanation to use, you don't have to think about how you do something, it is just obvious and typically being lightweight means less resource usage whether I am on cheap android-go or a fancy laptop that already has 500 tabs open.

Look at Linux desktop interface themes and design vs windows and macos. I want software that empowers meand gets out of my way, so my UX preferences follow suit.

Why play chess with ornate pieces, over simple wooden ones? Why don't professional chess players use those large sculpted sets?

Because chess isnt the pieces. The interface isnt the game. If you're attending to the interface, you're being distracted.

When you use computers as tools you don't want interfaces to appear as objects in the world, you want them to dissolve into the tool that they are.

The more I am "impressed" by a menu, button layout, interface, etc. the worse it is at being an interface.

The question is, rather, why do others want to be distracted by the interface? Why do they choose the oranate chess set?

Well, because they're consumers of computers, not users. They barely use them as tools, and so their default relationship to them is one of ornament.

An interface is, almost literally, ornamental to most people. Like a chess set on a mantlepiece.

Great writeup. This is true for many if not all things humans consume.

People who make food to meet their needs vs ornate recipes and styles.

People who have a Toyota corolla from 1993 that gets them to work and back vs a Maserati.

Knife owners

Gun owners

Home owners

...

> why do others want to be distracted by the interface?

UI design need not be distracting.

There is a wide spectrum ranging from "fancy" flourishes of art to brutalist simplicity. Somewhere in the middle, careful use of font, color, and layout can drastically improve readability and usability.

Compare, say, the default appearance of an unstyled HTML page, to that same page in your browser's reader mode. Both are very plain, but the latter is much more pleasant to absorb.

I believe this is what OP is referring to.

At the extreme ends of the spectrum, design can be distracting as you say, but lack of it can be equally prickly and unpleasant. Neither is good.

Consider that few people play chess with rocks and sticks standing in for pieces.

My motivation is to interact with the content of the website. Form is good only while it improves function. For example, simple css improves my ability to read a website over the default rendering of .txt (often seen in websites about K). However, the new reddit design isn't worth it for me because the improved form decreases the function. With lazy loading, controls that are more difficult to interact with, higher footprint, higher idle cost, etc., it's a less pleasant reading experience.

Beyond the experience of a loaded site, its ability to emphasize the text and to not interfere with the current visual field / search (badly implemented lazy loading for example), size alone impacts experience on bad internet connections. I use HN as a test website to see if the internet works over something like msn because it is so lightweight. I measured around 8KB transferred after caching on the home page. (>3000KB from MSN with an idle transfer of 7KB every couple of seconds.)

Because "fancy" often gets in my way. It's like putting feathers on a rifle, and every time I pull the trigger the feathers mechanically flap in my face before the rifle fires.

When I'm using software I want to USE it, not look at it. Sure some basic aesthetics are fine, I have animated wallpaper on my desktop that I think looks nice and I have white/orange themed LEDs and custom-sleeved cables in my PC case. The difference is past initial setup those stay out of the way. My interfaces are stark, bare, and I can do more with 5 hotkeys than most regular users could do with a solid minute of mouse clicks.

> Because I don't think this happens quite as much in other fields, like architecture, cooking or construction.

Each of these is much more constrained than software - software you can draw anything on the screen. You can't turn up and say in a UX-calm voice, "we should try an A/B test on cars that are tall instead of long".

A website like HN isn't brutalist - you can't see the database or the wires or the inside of the computers working. You're just seeing the tiny, microns-thick veneer on the hidden host of complexity that goes into looking at a website. It has a decent font and decent but simple colours. I agree it doesn't have any pictures or video, but I that doesn't make it brutalist.

Because I add my own design. None of websites I see have original design, I use my own colors, fonts, hide some elements etc... Use Firefox in reader mode to get an idea.

Modern web design usually has horrible usability. Try to read modern web in brail terminal to get an idea. Or on GPRS connection (2G phone, 10kbps internet speed).

And I ensure you such trend is also in architecture, cooking etc.. Modern architecture often does not have basics like windows or daylight. Architect wants smooth facade, so people inside suffer... Modern cooking is preprocessed garbage, so even basic potato diet is better and so on...

I'll give you a different take. For most of my web applications, I am designing and building every single thing including all of the front end and backend and any database. It doesn't make sense for me to spend a bunch of time on the user interface before the software actually works.

Then once it's working, there is a fair amount of CSS tweaking just to get basic spacing and other things to look okay.

At that point, there are usually functional bugs to fix, one more feature I need, and two other projects I want to work on. Satisfying the latest design trends is usually a very low priority.

For my recent project aidev.codes, I actually used Bootstrap, which is not something I normally do. But AI helped me with class names and stuff.

> before the software actually works

How is the UI not part of the software?

This is what people get wrong. UI work is not mapping a DB to a screen and aligning things with CSS.

Thats literally what it is. The "I" in "UI" is "Interface". What is the User Interfacing with if not the DB (with perhaps a brief layer of business logic smeared on top)?
I think it can be a vice (laziness) disguised as a virtue (efficiency).

Computers and software (like anything) can be beautiful, charming, fun, funny, tragic - anything we want them to be.

It’s not just software though - look at modern architecture, look at furniture, look at cars. Any sort of ornamentation or detail is verboten now. I think it’s the bean-counters’ fault, personally. Any effort/cost to deliver a little something extra would take money out of the wrong people’s pockets, so we do the bare minimum.

> Because I don't think this happens quite as much in other fields, like architecture, cooking or construction.

It may not be as obvious in architecture because of the time scales involved, but it has been trending in the same direction for decades and centuries.

First, I'd say this is changing massively. More and more of software is about good design and beautiful interfaces. Compare even a CLI app, something very much in the utilitarian vein, from the 2000's (git) and from the last few years (ripgrep). Git does not have any sort of usability concerns. The commands are named in confusing ways (git blame? git cherry-pick?), the default editor is vim which is its own usability nightmare, and the outputs are very plain with minimal color. Ripgrep uses color, has a pretty simple setup (type in the pattern to search it!), and really nice help docs. Same with fd vs find and other tools.

And if you look at websites, well Hacker News is the last of a dying breed of websites. There aren't many sites that look like this anymore. Indeed a lot of the "modern web dev suckssss" crowd are not the people who actually build websites. Or if they do, it's only personal ones where they can have full control. If you asked any front-end developer to design you a Hacker News clone, at the very least they would limit the line length and increase the font size. It's just the vocal minority who insist that sites like Hacker News are the pinnacle of web design.