This blog has moved. Please update your bookmarks.

Keeping Up with the Classes

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".


2 Comments:

At 5:18 PM, Anonymous Markus said...

I would like a notation for default implementations.Take for example the Java Collections API. It has a lot of implementations of the List and Map Interfaces. Some I use every day (ArrayList and HashMap) while others are for very special problems, and seldom used (CopyOnWriteArrayList).

I'd like a way to dump the Javadocs for all these "common classes". Or when I browse a list of implementations in my IDE, I would like some graphical symbol for the ones I most probably want to use.

 
At 1:12 PM, Blogger Mats Gefvert said...

Or maybe the class list should include which design pattern they're encapsulated with. That would make it much easier - as long as you understand patterns - to see how all of the java.io classes really relate to each other.

 

Post a Comment

<< Home

 

Blog contents copyright © 2005 Mats Gefvert. All rights reserved.