←back to thread

Be Aware of the Makefile Effect

(blog.yossarian.net)
431 points thunderbong | 1 comments | | HN request time: 0.205s | source
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 #
wellbehaved ◴[] No.42669222[source]
With that attitude how would the presently accepted languages/frameworks have come about?
replies(1): >>42669306 #
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 #
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 #
dfawcus ◴[] No.42673564[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 #
johnnyanmac ◴[] No.42676388[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 #
1. dfawcus ◴[] No.42683592[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'.