3 ms·
"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
by myhf 2y ago
"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 https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law
- jfengel 2y agoIt'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.
- wellbehaved 2y agoWith that attitude how would the presently accepted languages/frameworks have come about?
- oblio 2y agoProbably slower and with more respect for existing tech. But hey, now we have npm, so who cares anymore? :-)
- mrcsd 2y agoDisrespect 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.
- johnnyanmac 2y agoI 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.
- mrcsd 2y agoIf 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.
- wellbehaved 2y agoIt'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.
- johnnyanmac 2y agoMost 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#
- dfawcus 2y agoC (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 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.
- johnnyanmac 2y agoI 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.
- dfawcus 2y agoExcept 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 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'.
- notjoemama 2y ago> "designing a whole new system around one pet peeve" BAHHAHAH! So…you mean React. If I hear the word hook as if it alone can solve complexity in web dev one more time I’ll…eh, I’ll do nothing actually. But my point still stands. React solves asynchronous event driven behavior well, but that’s all. Everything else in React projects is, well, everything else.
- DrNosferatu 2y agoWhat about the divine watchmak - sorry - developer?
- xeonmc 2y agoThe 10x watchmaker, perhaps?
- compumetrika 2y agoGreat quote, commenting just to 'bookmark' it.
- tantalor 2y agoYou can "favorite" comments
- sunnybeetroot 2y agoGreat comment, replying to improve “reach”
- sulandor 2y agowell done, replying to continue a great thread