Generalization, Patterns, and Abstraction

εν αρχη ην ο λογος — John 1:1

Our world behaves in consistent, predictable ways. If it were not so, biology, chemistry, physics, mathematics, philosophy, economics, engineering, medicine, and countless other disciplines would simply not work. Every discipline studies a range of specific phenomena and aims to distill the detailed observations into general principles or patterns of behavior. It is this ability to generalize that allows us really to know anything at all.

In software engineering, certain problems come up repeatedly. How to sort a collection of numbers, how to manage allocation of system memory, and how to maintain good application performance as the number of users increases are just a few examples. Some very smart people have been working on these problems for a long time, and their documented best practices for solving these problems are called Design Patterns (or sometimes just Patterns). Other disciplines have similar patterns—in mathematics, for example, someone might work out an elegant method for using matrix arithmetic to solve systems of differential equations. Similarly in medicine, physicians follow best practices for diagnosis and treatment.

We’ve seen how each discipline develops patterns to understand and solve problems within its own domain—and many of these, like General Relativity, are truly powerful in their own right. But what has been fascinating me lately is abstraction—taking an already powerful idea and stripping away the domain-specific parts, until you’ve liberated the core idea, the pattern-behind-the-pattern. Then you begin to see how that core pattern applies across wildly divergent disciplines. In the beginning was the Logos—the organizing principle on which everything else rests.

I’ll go into more detail in future posts, but just take redundancy as one quick example: we find redundancy at work correcting errors in computer hard drives and on networks, improving readability in the English language, correcting mutations in DNA, functionally replacing damaged neurons, stabilizing financial markets, and in many other places.

Up next Beware the Limits of Reductionism There are more things in Heaven and Earth, Horatio, than are dreamt of in your philosophies. — Shakespeare I said before that generalization, Powerful Ideas Ideas are the most basic of tools with which we understand and influence our world. And like tools, not all ideas are created equal—some ideas are
Latest posts Meta Work Some Thoughts on Report Usability Yachats Sunset BIML Banana ooo na na Super Love Scroll Lock Why We Encrypt UK government quietly rewrites hacking laws to give GCHQ immunity I’m Terrified Right Now You Do Not Need Permission The Reward For Good Work How a Microwave Should Work One in a Million is Next Tuesday What I Want From Tech Support Windows Batch Gotcha: Use REM Inside IF Blocks Great Advice From Larry Wall A Haiku Time Limits on Browser Plugins? Better Questions Lessons in Bug Hunting /time Shipped! Recipe: Tuna Salad Gun Control and Strong Encryption Day-of-Week Differences in MySQL and MS SQL Server Washingsoft UAnix Microsoft Orifice The Right Question Converting to Project Connection Across Multiple Packages in SSIS 2012 Generating a Range of Dates in MySQL