Live data from Hacker News

What is “good taste” in software engineering?

seangoedecke.com

111–120 of 245 posts

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

#112

I have bad taste. So I will say suckless.org - software should do one thing and do it well - code should be understandable, easy to build, easy to port - dependencies should not be a problem - the chosen language must not be a burden - resources are scarce: if you say "unused memory is wasted memory" you are part of the problem (I know, I'm a horrible person)

It's not wrong per-se, but they practice it to a level of extreme that it seems more like a principled art piece than usable software. Software engineering is all about knowing your project-specific constraints, it should not be wasteful - and that goes for runtime performance / memory usage as much as the time invested. Usability is another factor - suckless software is very inaccessible to people who don't know how to use a compiler by default.

> (I know, I'm a horrible person)

You made a throwaway just for that? I'd hope most people are capable of differentiating the engineering ideology from the (ironic?) nazi reference and tiki torch march ideology bit.

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

#113
"Taste" is developed. If you have to stop and ask, you are not there yet. In the arts, artist that drive taste quietly observe and hone that in over many years, releasing works that drive people in that direction.

In addition to that, all of the real people with great taste I meet, are not out there talking about it. They confidently spread it.

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

#114
post #34
post #13

Earlier quoted context omitted.

That's exactly how it works in most fields that are not purely engineering but where the space of design solutions to do X is huge. Architecture, software development, ...

If I correctly catch the drift of your argument, you're saying “engineering is objective”, so there is such a thing as a right and wrong choice in any given situation. ...well, to the extent that that's true, the word “taste” is a poor choice of words then. Actually, I think that's the case for this article. I think the article is fine, but the title and “taste” as a choice of word is not great. The article is more a…

The problem with software is that while it is in some sense objective, one of the most important properties of good software is that it can adapt to future requirements, and that's something that can only be evaluated in hindsight.

Lacking an objective way to predict that, we turn to taste.

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

#115
post #76

Earlier quoted context omitted.

Obligatory simple made easy. Just because something is simple doesn't mean anyone has the wherewithal to understand it. [1]: https://www.youtube.com/watch?v=SxdOUGdseq4

I loved working in a team that wasn't allowed to use local variables (Rich Hickey decided that Clojure shouldn't have them). The menu of the website was basically implemented as a state machine and it just worked because every possible user interaction was taken into account.

Do you mean local variables per se, or mutable local variables? Clojure, like most Lisps has let.

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

#116
Having architected some large projects, then coded, then refactored because original designs didnt work out, eventually getting a working project that does things.

Also now having done the same thing 95% ai coding.

Good taste is good architecting. Knowing what to use; how to use it and when. How to maximize KISS. Simplicity is key.

When is it right to keep it very simple and load it to a dict? When to upgrade to a panda/numpy dataframe? When to go sqlite3? When to go full on DB(postgresql?). Do you need to go that extra step in order to stay with your current design; will the code become complicated and ugly to do that? What are the upsides and downsides?

good taste is the comfort to try a new library that looks like it'll do a better job than what you know how to use now.

Does your script run in memory for long? Is that ok?

Recently I learnt about Python Slots and use them now. You look at: https://www.w3schools.com/python/python_datatypes.asp

And for some reason they dont even mention slots. but omg so much better!

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

#118
post #20

> Is the software easy to take in at a glance and to onboard new engineers to? This is not as easy as it sounds. Who are those "new engineers", juniors? 10 years of experience? 30 years? What's your requirement? "Readability" is such a wildcard, with a whole range of acceptable levels from zero to infinity. Readability is a non-concept really. Maxwell's famous equations are readable to some and absolutely impenetrabl…

It is hardly worth bothering how readable is "local code".

Following the same patterns across large parts of the codebase is what makes the codebase as a whole readable. Those patterns may even be complex, as long as they are used over and over without too much deviation and flag-explosion the codebase will be readable.

In short local isolated code can be as bad to read as it wants, as long as it doesn't infect the codebase as a whole (like through the use of shared mutable state or through a bad API).

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

#119
post #8

Tabs instead of spaces.

One user is able to fit more code into LLM context window since tabs take one token and spaces take 4. https://old.reddit.com/r/ChatGPTCoding/comments/15s62yl/save...

For one tokenizer, a couple years ago.
Post reply on HN