tag:blogger.com,1999:blog-6104420435021904082.post8844173370760397325..comments2024-03-13T12:21:27.016-05:00Comments on The Programmer's Paradox: The Nature of SimplePaul W. Homerhttp://www.blogger.com/profile/02349253120538728302noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-6104420435021904082.post-16098707914662932662008-10-15T09:20:00.000-05:002008-10-15T09:20:00.000-05:00Hi Astrobe,Thanks for the comment. Yes, you can ea...Hi Astrobe,<BR/><BR/>Thanks for the comment. Yes, you can easily see simplification as an optimization to remove unwanted complexity. Normalization too, is another well-known set of re-ordering rules. They are all significant, yet stable transformations to (mostly) similar representations. <BR/><BR/>Paul.Paul W. Homerhttps://www.blogger.com/profile/02349253120538728302noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-14010153256618566852008-10-15T06:59:00.000-05:002008-10-15T06:59:00.000-05:00Same goes for Optimization. Simpllification is a k...Same goes for Optimization. Simpllification is a kind of optimization, by the way.Astrobehttps://www.blogger.com/profile/15960746039722376758noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-28988056977747495572008-10-15T06:58:00.000-05:002008-10-15T06:58:00.000-05:00This comment has been removed by the author.Astrobehttps://www.blogger.com/profile/15960746039722376758noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-36717236864486504552007-12-31T12:59:00.000-06:002007-12-31T12:59:00.000-06:00Hi Thomas,It is amazing how often we run into simp...Hi Thomas,<BR/><BR/>It is amazing how often we run into simplification problems without ever realizing it. It took me a long time to even try and put words to my understandings. <BR/><BR/>While people have their own lessor definition of simple, I'm pretty sure that even dogs for example have their own twisted version of logic. Dog-logic makes perfect sense if your a canine, but for the rest of us the dog is just acting strangely :-)<BR/><BR/>Paul.Paul W. Homerhttps://www.blogger.com/profile/02349253120538728302noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-82294224781751033912007-12-31T08:51:00.000-06:002007-12-31T08:51:00.000-06:00Your comment about the program meaning something d...Your comment about the program meaning something different by simplifying reminds me of eta-reduction in Haskell using (the magnificent) lambdabot (on #haskell on freenode).<BR/><BR/>On several occasions I have passed lambdabot a haskell function to eta-reduce and instead of removing one argument from the end and making it implicit as I expect it removes <I>every</I> argument and hands me back something I find incomprehensible. Simplified indeed!Thomas David Bakerhttps://www.blogger.com/profile/02695359291235608929noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-6801540002104364002007-12-26T17:28:00.000-06:002007-12-26T17:28:00.000-06:00Hi Shawn,Thanks for your comment. Various branches...Hi Shawn,<BR/><BR/>Thanks for your comment. Various branches of mathematics use the term projection, the most memorable to me comes from an appendix to a textbook on linear programming. An alternative approach to using the simplex method -- if memory serves me correctly -- was to essentially tack on another dimension to the existing ones, jump out of the problem, and use a projection from the higher space to find the optimal points in the original one. Whether or not I remember the math correctly, that idea of stepping out of your current plane to a higher one to navigate stuck with me as a cool concept. I 'borrowed' my use of the term projection from my (hazy) memory of that approach.<BR/><BR/>I love your idea that speaking is a projection of though onto language. It elegantly explains why we can often 'see' something in our heads but fail to bring it down to something that we can say or write. <BR/><BR/>For teams, to me if everyone is running around with their own idea of simple, what I really want to do is 'encapsulate' them into their own space, in a way that preserves some type of overall consistency, but allows them some freedom to create what they want. Some of my older posts dig into encapsulation. Slicing up the work to preserve that is a big unconquered problem in software development.<BR/><BR/>I've certainly seen your fractal structure problem enough times in the big code bases. Everything is similar, but different and the inconsistencies themselves are to blame for a large number of problems. But nobody ever wants to go back and fix them (the obvious, but entirely unloved solution). <BR/><BR/><BR/>Paul.Paul W. Homerhttps://www.blogger.com/profile/02349253120538728302noreply@blogger.comtag:blogger.com,1999:blog-6104420435021904082.post-45864111307401159232007-12-26T11:45:00.000-06:002007-12-26T11:45:00.000-06:00I think you've hit on something truly profound abo...I think you've hit on something truly profound about "projection" I think that all cognition involves some form of "projection" from some other level of thought into another one. In short the act of speaking is the projection of thought into language and so is the act of programming... and so is the act of comparison... or computation. So rather like Homer's cave wall watchers we don't see real thought but the shadows of thought stuff.<BR/><BR/>So our challenge in teams of developers is to find the cut points where we can slice away sets of "simple" and only stitch them together when absolutely necessary. A way to find and separate out the "simple" of one perspective from the "simple" of another. I have called this a "crystalline" structure or a "fractal" structure where complexity in the whole is hidden in the simplicity of the local.<BR/><BR/>Your ideas of "projection" and "simplicity" have given form to some of these other ideas. Thanks.Anonymoushttps://www.blogger.com/profile/07041739178513685832noreply@blogger.com