5 ms·
"Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they’ll b
by bch 8y ago
"Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they’ll be obvious." -- Fred Brooks, The Mythical Man Month (1975)
- andai 8y agoI looked up the full text of the book, but couldn't figure out what tables mean in this context.
- mpweiher 8y agoYep. And this is why our industry's decision to focus on essentially procedural abstractions for our interfaces is...problematic.
- jstimpfle 8y agoLet me offer a different interpretation: That's why it doesn't matter so much if you're doing code in a procedural or functional way. If your data structures are wrong, the code will be bad, period.
- hiker 8y agoExcept that functional programming completely eliminates (yet still allows) concern no. 1 in the mentioned order -- state > coupling > complexity > code. Not to mention the better expressive power for describing data structures with algebraic data types (just + and * for types really).
- jstimpfle 8y agoThat's just not true. Functional programming does not eliminate state. You can't do computation without state. What fp does differently is it pushes state around like a hot potato. In my eyes that is about as problematic as OO (where you cut state in a thousand pieces and cram it in dark corners and hope nobody will see it). If you make global arrays instead you will always have a wonderful idea of what your program's state is, and you can easily use and transform it with simple table iteration.
- hiker 8y ago> That's just not true. Functional programming does not eliminate state. And yet it says so in the first sentence in the Wikipedia page for functional programming https://en.wikipedia.org/wiki/Functional_programming https://en.wikipedia.org/wiki/Functional_programming >a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. But I'll take it that you don't have much functional programming experience. Of course one can still go with a big global array and keep updating it in-place. A good programmer can write Fortran (or C in that case) in any language.
- jstimpfle 8y agoAgain, you can't do computation without state. The only question is how honest you want to be about it. And whether you put things in global tables or not is completely orthogonal to whether you mutate data or make new data. And please, no beaten up buzz words and selling pitches needed.
- 8y ago
- amelius 8y agoYes, and sometimes I feel this also holds in a way for user manuals.