Live data from Hacker News

People who disagree aren't trying to make things complex

m50d.github.io

151–160 of 162 posts

Re: People who disagree aren't trying to make things complex

#151
post #137

Earlier quoted context omitted.

> True the post it's disagreeing with picked weak examples. But other than that pretty much all of its overall points were actually very accurate. That's what I initially thought. But how can the overall points possibly be right if they lead to exactly the wrong conclusions in most or all of the specific examples? At best the part you quote is vacuous and unhelpful for actually making technical decisions.

Just logically, a point can never be disproven with bad examples. Bad examples may be unpersuasive, may bore the reader, but they don't make a true point false. As best I can tell when you call his point "vacuous" you mean you think it's too abstract to be practical. I disagree. What I take a away from his article is: - Before you build something, ask yourself "Is this REALLY a technical problem? Or is it better solv…

> Seems concrete and useful to me.

It sounds useful. But Westheide followed this methodology, presumably put time and effort into it, and yet made completely wrong technical decisions. So I don't believe the method can possibly be useful; he'd've got better results by saving his time and flipping a coin. (Put another way, this methodology doesn't outperform a placebo)

Re: People who disagree aren't trying to make things complex

#152
post #151

Earlier quoted context omitted.

Just logically, a point can never be disproven with bad examples. Bad examples may be unpersuasive, may bore the reader, but they don't make a true point false. As best I can tell when you call his point "vacuous" you mean you think it's too abstract to be practical. I disagree. What I take a away from his article is: - Before you build something, ask yourself "Is this REALLY a technical problem? Or is it better solv…

> Seems concrete and useful to me. It sounds useful. But Westheide followed this methodology, presumably put time and effort into it, and yet made completely wrong technical decisions. So I don't believe the method can possibly be useful; he'd've got better results by saving his time and flipping a coin. (Put another way, this methodology doesn't outperform a placebo)

You know that's a bad argument. You can't definitively say "one person tried to follow a piece of advice and it didn't help one person therefore the advice is false/wrong/worthless."

I'm sure if you thought about this though that would be pretty clear to you.

Re: People who disagree aren't trying to make things complex

#153

Earlier quoted context omitted.

Well you can implement the same program in endless different ways. Particular styles develop. Each piece of software is unique. You're engineering with an artform that's why you see so much variation among the patterns. Every portrait might be recognizable as a portrait, but every portrait is unique in its details.

Different ways to do things is not art. Patterns emerging from those different ways is not art. Art is for emotional purposes: "the expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture, producing works to be appreciated primarily for their beauty or emotional power." Software developers have a tendency to try to claim artist status because what th…

I assumed OP was using a different definition of art (https://en.wiktionary.org/wiki/art#Noun):

> 2. (countable) Skillful creative activity, usually with an aesthetic focus.

> She's mastered the art of programming.

..

> 7. (countable) Skill that is attained by study, practice, or observation.

If that doesn't convince you, compare with such phrases as "The Art of War", "artisan bread", or "liberal arts" (which includes topics like philosophy).

Re: People who disagree aren't trying to make things complex

#154
post #151

Earlier quoted context omitted.

> Seems concrete and useful to me. It sounds useful. But Westheide followed this methodology, presumably put time and effort into it, and yet made completely wrong technical decisions. So I don't believe the method can possibly be useful; he'd've got better results by saving his time and flipping a coin. (Put another way, this methodology doesn't outperform a placebo)

You know that's a bad argument. You can't definitively say "one person tried to follow a piece of advice and it didn't help one person therefore the advice is false/wrong/worthless." I'm sure if you thought about this though that would be pretty clear to you.

> You know that's a bad argument. You can't definitively say "one person tried to follow a piece of advice and it didn't help one person therefore the advice is false/wrong/worthless."

But this isn't just one person trying - this is the example given by the person giving the advice, so it's presumably the strongest case they can make in favour of their advice.

Re: People who disagree aren't trying to make things complex

#155
post #63
post #8

> What if there is no "complexity trap", just disagreements about how best to design programs? While I think this post asks reasonable questions, and has some healthy skepticism, the complexity trap is very real, in my experience. After 20 years of professional software development, I can safely say I've watched literally tens of millions of dollars wasted over-engineering solutions to problems that were anywhere fro…

Well, I feel like the environment of the job coupled with the developer causes over-engineering, rather than true technical concerns. I'm fairly young for my new role and architecting (from the ground up) some fairly big systems. I'm really struggling not to over complicate problems and I think it's really easy to do for a couple reasons. The selfish architect I'm working very hard not to be would rather have his wor…

What really burns people is making irreversible changes and finding out you chose wrong.

Some people avoid this by trying not to make any decisions at all, and that’s more than enough fuel for long a journey into overengineering. Someone (possibly Michael Feathers or Uncle Bob) called these people cowards and I tend to agree.

These days I’m very aware that smart and fool aren’t at opposite ends of the same ruler. I’m much more concerned with being wise instead of clever. Clever requires too much busywork for everybody, and it’s not conducive to teamwork.

Re: People who disagree aren't trying to make things complex

#156
post #43
post #36

Earlier quoted context omitted.

Good software solving an interesting problem can be art.

Got any examples? I'd love to see them. Something that's beautiful in its problem set (doesn't, for instance, act as glue between other, poorly designed systems and thereby reflect their flaws), beautiful in its solutions (doesn't solve too much, nor too little, doesn't make too many assumptions), beautiful in its use (user experience, performance, etc.), and beautiful in its implementation (quality under the hood, n…

One off the top of my head is Abrash's perspective correct rasterizer for the original Quake. Come to think of it, the BSP+PVS system for visible surface determination that they used was also pretty amazing.

Re: People who disagree aren't trying to make things complex

#157
post #3

A big part of this is that programmers have different programming worldviews. Many people seem to be unaware that worldviews are not perfect rational easily modifiable constructions but are instead foundational structures that thinking builds upon automatically. Programmers are about as unlikely to easily change their programming worldviews as they are to change their political beliefs. Which is not to say that progr…

I feel like most of the strife caused at work is different value judgements on things. So I've been trying to tease out truths vs value judgements. 1 + 1 will always equal 2, no one debates that. AWS offers both Postgres and MySQL, no one debates that. But which one is better, that will be informed by possibly irrational value judgements ("Postgres bit me once, never again!") I think people are irrational in terms of…

Opinions from those who have used one aren't useful. "Best [or worst] I've ever used." Bit or saved by each differently on multiple projects and a good choice can be made.

If you collect the pros/cons from everyone and try to agree on which ones matter more in the current context then you're not tied to a previous commitment.

Re: People who disagree aren't trying to make things complex

#158
post #14
post #3

A big part of this is that programmers have different programming worldviews. Many people seem to be unaware that worldviews are not perfect rational easily modifiable constructions but are instead foundational structures that thinking builds upon automatically. Programmers are about as unlikely to easily change their programming worldviews as they are to change their political beliefs. Which is not to say that progr…

This is a great comment, and very succinctly put. Somewhat incidentally, but I believe this is a large part of why, to me, software development is not an engineering discipline. At the end of the day, engineers (I think; not actually being one myself) have to answer to physics. The 'possible model space' is relatively constrained, and everyone is working under, roughly, the same set of assumptions, rules, and standar…

> "...just alter the density of air so that we don't need to worry about lift for these airplanes we're building; they'll just be buoyant!". By and large, you can do that kind of thing in code...

A wonderful metaphor. Thanks.

Re: People who disagree aren't trying to make things complex

#159
post #34

Earlier quoted context omitted.

I think this is a special case of the 'simpler is better as absurdum' approach, where you only ever write 1-3 line functions, each in their own file, because they're 'simple'. Of course, this really just moves the complexity to the composition of these functions and destroys locality of reference for anyone trying to read it.

I've found that this is true particularly when working in OO styled languages --- there seems to be an innate desire to minimise microcomplexity at the expense of greatly increasing macrocomplexity. It's like writing a book where each page contains one word. Each individual piece is "simple", but taken as a whole it's much more difficult to understand.

I like this analogy: it's like writing about a difficult or nuanced subject using only "simple English"; each sentence is superficially simple, but the work as a whole is much more difficult to make sense of.

Re: People who disagree aren't trying to make things complex

#160
post #144

Judging by the initial half-second of chaos on page load there's certainly something complex about the javascript this person is using to communicate these words.

I used to have the content hidden before the javascript styled it, but people on this very site complained that they couldn't read my pages without javascript enabled.

Cool, that sounds annoying :) I didn't mean to be issuing criticism on a trivial side-issue. I kind of thought no-javascript pedants stopped being listened to in 2014.
Post reply on HN