Live data from Hacker News

What is “good taste” in software engineering?

seangoedecke.com

151–160 of 245 posts

Re: What is “good taste” in software engineering?

#151
I wish people tried to formalize what a "good taste" is in programming.

Here's a simple programming language - combinatory logic with S and K combinators, and you can create a new combinator by naming any expression of combinators, and use it.

What constitutes a "tasteful" or "readable" program in this language?

Re: What is “good taste” in software engineering?

#152
post #44

When used in the domain of fashion "good taste" describes someone who has a unique way of selecting clothes that just mesh well together - clothes that by themselves independently are meaningless, no matter their make or quality, but when combined together create a powerful effect - much greater than the sum of their parts. I was hoping the article would go in that direction - what subjective combination is a softwar…

Most engineers and technical persons don’t have good fashion taste, so they have a hard time understanding good taste in general. The great majority of technical things are not cool to normal humans, they’re geeky. Programming languages are not cool. In programming one has to therefore start from “not cool” and move down the scale: Uncool: Rust, C++, most languages Painfully uncool: anything functional and weird. Bas…

This comment annoyed me so much I had to get an actual keyboard to respond.

First off, the concept of "good taste" is much, much broader than only applying to clothing based fashion. You can have good taste in practically any field that involves any amount of creativity/choice: cooking, painting, writing, music, programming, video game design, etc, the list is practically infinite.

As such, the idea that most "engineers and technical persons" don't "understand good taste" is incredibly silly. It's entirely possible, perhaps even probable that the average programmer lacks good taste in terms of fashion, but that says nothing at all about good taste in other areas.

Secondly, having good taste and being able to apply it is also wildly different. I can recognize what looks good in fashion or paintings without being myself able to achieve that.

Thirdly, there's really no such thing as a "normal human". The longer you live, assuming you're willing to actually examine your experiences, the more you'll learn that the trite expression "everyone is unique" really is accurate.

Just as a semi-random example, it might be tempting to think of watching football (nfl) as "normal". According to a quick google, the average nfl game gets like 17-20million viewers, and even assuming that's accurate/all unique people/etc, it's a very large number in absolute terms but its less than 10% of the population of america.

So if you took a random group of 100 americans, something like 6-7 would have watched a football game last week[1]. Now that's still many times larger than the number of people who wrote code last week, but it's not some kind of overwhelming majority that "everyone" does.

[1] Yes these numbers are extremely imprecise, it's rhetorical

Re: What is “good taste” in software engineering?

#154
post #86

> In other words, immature engineers are too inflexible about their taste. They know what they like, but they mistake that liking for a principled engineering position. I have come across this although I think quite experienced engineers can suffer from this kind of immaturity. Aeons ago I used to help friends with their Computer Science assignments. I remember the temptation to rewrite their code because I didn't li…

I don't ever tall a junior that they are doing something in a less-than-optimal way. I always ask them why they're doing it that way. At the end of each conversation, one of us has learned something. Sometimes I learn an alternate approach, and sometimes they learn why their alternate approach won't work in the long run. Either way, it's never a confrontational conversation.

Re: What is “good taste” in software engineering?

#157
post #110

Earlier quoted context omitted.

Readability without a clarification is a non-concept. You can't say "X should be readable" without giving some context and without clarifying who you are targeting. "Code should be readable" is a non-statement, yes.

Add "to most developers" for context and you'll probably get exactly what original claim meant. It's not a non-statement. Rich Hickey explains it well, readability is not about the subjective factors, it's mostly about the objective ones (how many things are intertwined? the code that you can read & consider in isolation is readable. The code that behaves differently depending on global state, makes implicit assumpti…

It can be further refined to

"to most developers who are most likely to interact with this code over its useful lifetime."

This means accounting for the audience. Something unfamiliar to the average random coder might be very familiar to anyone likely to touch a particular piece of code in a particular organization.

Re: What is “good taste” in software engineering?

#159
post #41

Good taste is writing code that looks so simple, everyone else says "pshaw, anyone could have written that!"

> everyone else says "pshaw, anyone could have written that!" it really depends on the problem domain tho, doesnt it? Would you call the fast inverse square root[0] code good taste? [0] https://en.wikipedia.org/wiki/Fast_inverse_square_root#Overv...

Really the post you're replying to should have been written the other way around

Writing code that looks so simple, everyone else says "pshaw, anyone could have written that!" is good taste.

Not all dogs are golden retrievers, etc

Re: What is “good taste” in software engineering?

#160
post #17

Good code is invisible - either there's no code at all (because the requirements and architecture are well adapted so that code isn't necessary for a particular feature), or the code is so simple and boring that you skip over it without pausing. Not all code can be like that, sometimes you need to write clever code, but it is an ideal to strive for. BTW this is why egoless programming is so hard. Not only you have to…

I like this idea. Good code does what it needs to and no more. Adding cognitive load that isn't absolutely necessary is the opposite of readability.
Post reply on HN