3 ms·
What, exactly, do mean by "complex" here?
by Dudeman112 4y ago
What, exactly, do mean by "complex" here?
- jxf 4y agoWhat most people usually mean by "complex" software is that its Kolmogorov complexity [0] is high (even if they don't know what Kolmogorov complexity is). You can think of this like saying "it takes a lot of software to correctly describe the shape of the problem and its resulting solution". This is different from "it's hard to figure out how to represent this problem and its solution in software". For a crude analogy, E = mc^2 is a very simple equation, but it was very hard for humans to figure out. In other words, it was extremely difficult — but it wasn't necessarily complex. [0] https://en.wikipedia.org/wiki/Kolmogorov_complexity https://en.wikipedia.org/wiki/Kolmogorov_complexity
- Dudeman112 4y ago>What most people usually mean by "complex" software is that its Kolmogorov complexity I disagree. What most people usually mean by "complex" in any context is some fuzzy not-really-defined thing they aren't really sure about. You're bonkers if you think most people's minds refer to a soft intuition for descriptive complexity when they say the expression "complex", even if the context is software Having said that, I do agree with your original reply since you were thinking of that specific type of complexity
- jxf 4y ago> I disagree. What most people usually mean by "complex" in any context is some fuzzy not-really-defined thing they aren't really sure about. I didn't say that this is what people mean in "any context" but rather _specifically_ in software (see the quoted text in your post). I do agree that people are fuzzy about it; that's also why I also said that there is frequently a confusion between _complexity_ and _difficulty_.
- Dudeman112 4y agoYou vastly overestimate your peers Software is a subset of any context, which is why I figured it would have been fine to replace it with the more general idea
- trashtester 4y agoTake all the source code. Compress it using your best compression algorithm. The larger the size of the resulting file, the higher the complexity. Basically entropy. Now, if you can write another program that does the same, but can be compressed to a much smaller file, it is likely to have a more elegant approach. (Especially if both use the same language and style guide). Another factor to consider, though, is the compression factor of a program. The more a program is compressed, the more repetitive it's likely to be. Such code tends to have less real complexity, even if it may look complex at first glance.