Jeff Atwood over at Coding Horror posted a very uncommon take on the process of software engineering. For anyone who has ever felt “buried under umpteen zillion backlogged emails, feeds, books, articles, journals, magazines, and printouts”, it is a delight to read.
Among interesting things mentioned, the Java API has swelled from 200 classes in in it’s 1.0 version, to about 3500 classes (and that’s the Standard Edition). Kathy Sierra says “You could wallpaper an entire room with the class library.”
When developing applications these days, classes have become the norm; everything is abstracted into classes with increasingly fanciful names, such as ComponentListNexus, MultiReadExclusiveWriteSynchronizer or CoffeeMakerAutoSwitchButtonTimeoutCommandOff. And let’s not delve into all the possible helper classes, interfaces, abstract virtual delegates and how the “Factory”, “Strategy” and “Command” design patterns interact with it all.
Sometimes I feel like I’m standing in front of a large class map searching for that little helpful “You Are Here” dot. I think we need more of that; little helpful signs in the massive chart that point with a large, friendly arrow to a specific box, along with the text “probably a good class to start with”.