3 ms·
Looking at the dictionary for both words: https://www.merriam-webster.com/thesaurus/complicated https://www.merriam-webster.com/thesaurus/complicated https://
by raspasov 5y ago
Looking at the dictionary for both words:
https://www.merriam-webster.com/thesaurus/complicated https://www.merriam-webster.com/thesaurus/complicated
https://www.merriam-webster.com/thesaurus/complex https://www.merriam-webster.com/thesaurus/complex
... And they literally have the same first definition! Your point is not very clear to me. Can you please help me understand better what you meant here?
In Clojure-land, we always like to distinguish between "accidental" and "essential" complexity as per https://github.com/papers-we-love/papers-we-love/blob/master/design/out-of-the-tar-pit.pdf https://github.com/papers-we-love/papers-we-love/blob/master...
"Accidental" complexity is "your fault" because "you" introduced it into the problem. For example, you need to use some mutable variables and that is making it harder to reason about some code. It would be "simpler" to use immutable values which are closer to pure mathematics and simpler, but you need maximum performance and most hardware is better optimized for mutable state in the extreme case.
"Essential" complexity is part of the problem and can't be reduced away as per current knowledge. For example, you need to know a fair bit of mathematics to be able to understand general relativity.
- nomorewords 5y agoComplex is used in the sense that you have to consider multiple things (such as constraints, logic, etc) in order to come up with a working solution. You cannot really escape from a complex problem because you have to satisfy all of its needs. On the other hand, 'complicated' here is probably meant in the sense that you have a solution for your problem, but that might not be the simplest solution to the problem. In other words, you have satisfied all of the problem's needs but the solution itself is going to be hard to understand for anyone other than the person implementing it. You generally want to avoid such situations.
- Supermancho 5y agoThe webster definitions don't mean the same thing because the definitions are overly broad. If you took another look at that TERRIBLE resource, convoluted and byzantine (and probably more) have the exact same definition. Complicated and convoluted do not mean the same thing.
- raspasov 5y agoI agree it does not seem to be the best resource. Do you know of a dictionary that provides better definitions?
- jfk13 5y agoChecking the Oxford English Dictionary (https://www.oed.com https://www.oed.com), and taking the first non-obsolete definition for each adjective: Complex: Consisting of or comprehending various parts united or connected together; formed by combination of different elements; composite, compound. Said of things, ideas, etc. Complicated: Consisting of an intimate combination of parts or elements not easy to unravel or separate; involved, intricate, confused.
- raspasov 5y agoThank you for that recommendation! I was able to access it via my public library login. Very neat.
- vharuck 5y agoI guess a generous reading of "complex" versus "complicated": Complex - a plain adjective. It's just how the thing is. Complicated - past tense of the verb "to complicate," used as an adjective. Somebody made this complicated. But yeah, I still prefer thinking of inherent and accidental complexity. Expresses the actual idea directly.
- kaba0 5y agoIt's basically inherent complexity and accidental complexity. You have to live up to the first, while try to minimize the latter. At least that's how I read OP.
- boxfire 5y agoTo not invent new ambiguities I would phrase this succinctly as the solution having intrinsic complexity vs extrinsic complexity.
- tacitusarc 5y agoI think your example of accidental complexity is actually essential complexity. The requirement to use mutable variables and mess with memory is part of the complexity of problem space, not an accident.
- d0mine 5y agoLanguage is not what is written in some dictionary, it is what people use to communicate. I've seen complex vs. complicated distinction (meaning inherent complexity vs. accidental complexity) used in software-related discussions.