3 ms·
>Removing nodes by adding a concept of implicit branches via "unless" clauses within a node doesn't necessarily make the system any easier to understand at a gl
by coldtea 2y ago
>Removing nodes by adding a concept of implicit branches via "unless" clauses within a node doesn't necessarily make the system any easier to understand at a glance.
It kind of does though, because it's easier to understand what the system does in general without necessarily wanting/needing all the lower level detail.
That's also one of the reasons we use functions, instead of unrolling everything into a big ball of code, no?
- MichaelZuo 2y agoThat’s not reducing complexity at all though, just hiding it… Which is fine for someone working a job that doesn’t need to understand all the stuff behind the curtain, but not fine for anyone who actually wants to understand the overall system.
- coldtea 2y ago>That’s not reducing complexity at all though, just hiding it… It's a representation. The actual thing will still have the whole complexity. What is reduced is how much complexity we take in when looking at what the thing does. When someone wants to get an idea of what the thing does, as opposed to getting into the minutiae of every subcase, such a high level view is a better fit.
- MichaelZuo 2y agoRegardless, it's not suitable for those who do need to grasp the entirety...
- coldtea 2y agoAbove some point they can just check the code. People looking at flowcharts usually don't need the entirety. Especially as the flowchart could even be out of date, or miss some of the code-level subleties.
- MichaelZuo 2y agoWhy would those seeking to grasp the entirety use a less efficient and more cumbersome method, than just looking at the full flowchart in the first place? (assuming it exists) And I don’t see why it matters if it’s only a handful of people, information products can still be created for their needs, if so decided.
- dvqc 2y agoBecause the code is the entirety of the process. Any graph can be wrong, but the code cannot, because it is the implementation. The purpose of a graph is to allow the visualization of the process in an understandable manner. If it doesn't abstract away much from the code, you might as well look at the code directly
- MichaelZuo 2y agoNo? Code is not always the same as the process or what the machine actually does... There are hundreds of posible factors from bitflips to a cable getting loose in a socket that could change either. e.g. There clearly can be a computer configured with enough memory and dense enough memory that at least one bitflip is practically guaranteed in a certain unit time, so the actual process has to include that. So the code is an abstraction just like the flowchart.
- dvqc 2y agoYou have processes more formal and thorough than their code implementation? Really? At the end of the day, is it the cover-every-possible-bitflip-and-gamma-ray-bursts process that produces results out of thin air, or is it the machine running the code? I don't believe this is arguing in good faith.
- MichaelZuo 2y agoI never said I had such processes? You seem to be making a logical fallacy to impute that it somehow must exist. e.g. “ The absence of evidence is not evidence of absence.” Also why would any other reader, including me, care about beliefs about certain words more than the actual words?