'Here Be Dragons': The Seven Most Vexing Problems In Programming (infoworld.com)
InfoWorld has identified "seven of the gnarliest corners of the programming world," which Slashdot reader snydeq describes as "worthy of large markers reading, 'Here be dragons.'" Some examples:
- Multithreading. "It sounded like a good idea," according to the article, but it just leads to a myriad of thread-managing tools, and "When they don't work, it's pure chaos. The data doesn't make sense. The columns don't add up. Money disappears from accounts with a poof. It's all bits in memory. And good luck trying to pin down any of it..."
- NP-complete problems. "Everyone runs with fear from these problems because they're the perfect example of one of the biggest bogeymen in Silicon Valley: algorithms that won't scale."
The other dangerous corners include closures, security, encryption, and identity management, as well as that moment "when the machine runs out of RAM." What else needs to be on a definitive list of the most dangerous "gotchas" in professional programming?
the idea that functions must be bounded to data is ridiculous. data and operations are duals and each can be thought of acting on the other. polymorphism leads to code bloat and decreases readability (you always have to be mindful which class in the inheritance chain a particular method came from). Also, compile-time is way too early to make a decision on which particular way a particular piece of data will be treated. Especially if these pieces of data come in homogeneous containers. The binding of behavior to data should have been done through better syntax which would allow it to happen pretty far into the run time.
Any guest worker system is indistinguishable from indentured servitude.