←back to thread

Be Aware of the Makefile Effect

(blog.yossarian.net)
431 points thunderbong | 10 comments | | HN request time: 0.741s | source | bottom
Show context
myhf ◴[] No.42668065[source]
"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system."

– John Gall (1975) Systemantics: How Systems Really Work and How They Fail

https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law

replies(3): >>42668139 #>>42669658 #>>42670998 #
jfengel ◴[] No.42668139[source]
It's why I'm always very skeptical of new languages and frameworks. They often look great on a PowerPoint slide, but it's not clear how they'll look on something complex and long-lasting.

They usually pick up warts added for some special case, and that's a sign that there will be infinitely many more.

There's a fine line between "applying experience" and "designing a whole new system around one pet peeve". But it's a crucial distinction.

replies(2): >>42669222 #>>42671765 #
1. wellbehaved ◴[] No.42669222[source]
With that attitude how would the presently accepted languages/frameworks have come about?
replies(1): >>42669306 #
2. oblio ◴[] No.42669306[source]
Probably slower and with more respect for existing tech.

But hey, now we have npm, so who cares anymore? :-)

replies(2): >>42669483 #>>42669889 #
3. mrcsd ◴[] No.42669483[source]
Disrespect is part of progress, respectful humans are liable to blindness of flaws. Just as part of youthful creativity is disregard for what has come before.
replies(2): >>42669878 #>>42728934 #
4. johnnyanmac ◴[] No.42669878{3}[source]
I can't agree with that take. Criticism is a part of progress. You can be a critic but still be respectful.

Disrespect is simply to belittle and look down upon. I don't see many situations where such an attitude leads to progress.

replies(1): >>42684833 #
5. johnnyanmac ◴[] No.42669889[source]
Most languages are much older than we think. But early adoption is a key to geting to that point of when to "trust it". D isn't that much younger than C and its variants, and older than C#. But it never quite got that adoption to really push development to the point of C#
replies(1): >>42673564 #
6. dfawcus ◴[] No.42673564{3}[source]

  C (K&R) : 1972 => 53 years ago
  C++     : 1985 => 40 years ago
  D       : 2001 => 23 years ago
Also, https://www.bell-labs.com/usr/dmr/www/chist.html

So D is 30 years younger than C, so I'd disagree with "isn't that much younger".

D was really a reaction to C++, not C, so it is with C++ that it should be compared. The C like subset of D (BetterC) is much more recent.

replies(1): >>42676388 #
7. johnnyanmac ◴[] No.42676388{4}[source]
I was thinking more about Ansi C. But fair enough. I hope the core point that these are all still Languages old enough to drink rings through.
replies(1): >>42683592 #
8. dfawcus ◴[] No.42683592{5}[source]
Except ANSI did very little in terms of changing/enhancing the language. It stayed largely as it had been since Nov '78:

Nov 78 Memo: https://www.bell-labs.com/usr/dmr/www/cchanges.pdf

About all that happened with ANSI C was that prototypes were created (the major addition), type promotion rules were altered, plus 'const' and 'volatile' were added. ANSI also added 'void *'.

I've a vague recall about 'void' existing in unix C compilers before that, having read a version of the above memo in a unix manual ('papers' section) and it mentioning 'void'.

9. mrcsd ◴[] No.42684833{4}[source]
If all disrespecting is to belittle and look down upon, then fair enough, I agree with you. What I meant, in perhaps an ill-phrased manner, was that overemphasised respect can often lead to stasis, where people might not want to change in case they are seen as disrespectful. Hence my use of disrespect, in that it is a relative judgement, and which can and has been used to discourage creative difference or just difference in general.
10. wellbehaved ◴[] No.42728934{3}[source]
It's a double-edged sword: ancestor-worship blocks progress, but throwing the baby out with the bathwater also blocks progress. Real fundamental progress comes from the tiny minority that avoids both.