Paper | Title | Page |
---|---|---|
WEAAUKP04 |
The Power of Hybridization | |
|
||
Botanical hybridization combines the best characteristics of plants. Differential equations are often solved by transforming into a space where the solutions become trivial. Programming languages always do some things well but not others: Python punts when it comes to user interfaces, Java's artificial complexity prevents rapid development and produces tangles, and it will be a while before we see benefits from C++ concurrency work. The "weight" of languages increases the cost of experimentation, impeding your ability to fail fast and iterate. If you must use a single language to solve your problem, you are binding yourself to the worldview limitations and the mistakes made by the creator of that language. Consider increasing your wiggle room, complementing a language that is powerful in one area with a different language powerful in another. This is not easy. You'll probably prefer pounding out a solution in your one chosen language – only discovering the impenetrable roadblock after you've built a mass of code, long after passing from a brief experiment into "the critical path on which all depends". Language hybridization can speed the experiment forward to quickly discover your real problems, giving you more time to fix them. After making a case for hybridizing your thinking in general, I will present a number of simple examples showing the hooks that are already built into languages (such as Python's ctypes) and tools created to aid hybridization (like XML-RPC). Along the way, I'll point out pitfalls, the most devious of which is "assumptions about performance". | ||
Slides WEAAUKP04 [19.325 MB] | ||