Live data from Hacker News

What is “good taste” in software engineering?

seangoedecke.com

161–170 of 245 posts

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

#161
post #31
post #23

Earlier quoted context omitted.

Theere are two quite a widespread classes of not readable code: Some code is not readable by _anyone_. That's not readable code. Some code is readable by its author only (be it AI or a human). That's also not readable one. Saying readability is not a concept is really strange.

I have a formal proof for you that it is a non-concept. If code can be read and interpreted by a computer, it means it can in principle be read by a human. There are of course some edge cases like obfuscated JavaScript or binary executable that some people are able to read and understand. The question comes down to being reasonably readable and we are back to square one: "reasonable" is very relative. In my early day…

[deleted]

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

#162
The “values” in this article maps to Roy Fielding’s PhD dissertation on software architecture. Fielding’s dissertation is better known for REST, but his dissertation is much broader and more versatile. He actually organized a way to think about and reason about any software architecture and then presented REST as an example.

The “values” mentioned in this article maps to the architectural properties (versatility, scalability, observability, readability, maintainability, etc.), but I have found that understanding architectural constraints is even more important because that tells you where anti-patterns are, and how an architecture can evolve (or not evolve).

https://ics.uci.edu/~fielding/pubs/dissertation/top.htm

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

#164
I believe technical taste is a form of curiosity; it grows as you explore different paradigms and seek out good-quality software for your craft.

While many people program only for the salary, this lacks the obsession that good taste requires.

We can often recognize a person's taste by the content they share over their feeds.

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

#165
post #83
post #52

Earlier quoted context omitted.

I may be misunderstanding what you're trying to say, but I feel like this still suffers from one of the mentioned issues - situationality. Even the best actionable principles can be incorrect given a certain set of circumstances. If in those cases you choose to uphold your priciples, rather than choosing what is "right" for the project you would fall into the camp of "bad taste". That is at least how I interpreted th…

> Even the best actionable principles can be incorrect given a certain set of circumstances. If they are principles, the discussion around whether to apply them can at least be fruitful. "Taste" is bound to devolve into "I like this" vs "I like that". I don't buy into the "everything has its upsides and its downsides" advice given in the article for the same reason. It's a useless truism. It's a taste:- I have 1 new…

> for loop

The language matters a lot here too:

> For instance, map and filter typically involve pure functions, which are easier to reason about, and they avoid an entire class of off-by-one iterator bugs.

That's not how "for loops" work in many programming languages! Python being the most obvious, and by some measures the largest programming language of all.

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

#166
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…

Maturity is not exactly correlated to time in experience, just as emotional and social maturity doesn’t exactly correlate with biological age.

I was 12 years into my career before the ideas in this article started filtering into my mind.

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

#167

The portable definition of good taste in software development is likely something like fitness to purpose, i.e. how well does the taste lend itself to producing good software, where good software in turn is software that does what it is indented to do. If you want to go more concrete than that, you need additional parameters, otherwise you risk ending up with a broken compass that only points north in organizations s…

Fitness for a purpose has a very deep meaning. In "The Timeless Way of Building" Christopher Alexander used this term as the last attempt to describe "the quality without a name".

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

#169

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…

I think the line of thinking you want to explore has more to do with how we perceive beauty and elegance. That has been the subject of philosophers all over in our recorded history, and I doubt a single article will be able to cover this.

Christopher Alexander studied this deeply for building architecture, and his ideas had influenced many thinkers of software architecture; Alexander asserts that there is a thing to objective beauty. Alexander’s keynote to the OOPSLA conference is worth reading, as is Roy Fielding’s dissertation. The “values” mentioned in this article is organized as “architectural properties” in Fielding’s dissertation.

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

#170
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…

"Good taste" I have found comes from experiencing "good" API's and other "good" code. You know good code (and API) when you see it — and in time you should be able to write it as well. In short though, it's hard to have good coding taste when you are new to the field. (But, as you point out, it's not true that experience guarantees you will acquire taste — you have to both be looking out for it, recognize it, and be…

I think this is only half of it.

Years ago, I worked at a company where my time was split between working on a bespoke platform for an older client and a generic platform that would be used for all clients going forward. The bespoke platform was essentially being used to fund the development of the generic platform.

The contrast between the two was stark: the bespoke platform was legacy in all its weird glory, and the generic platform was considerably higher quality. Seeing that contrast up close, and flipping between working on each one, was immensely useful to me. It made it clearer why I favour certain approaches over others, and it made concepts easier to explain to others.

Since then, I'm of the opinion you should aim to work with both the good and the bad to clarify the "why" of things.

Post reply on HN