James Roberston has a good post summaring a debate between competing philosophies of language design. The subject is Java’s java.util.List versus Ruby’s Array class. Refactoring guru Martin Fowler argues that Ruby’s version is better because it includes bunches of convenience methods, and Elliotte Rusty Harold argues the converse, that fewer methods is better.
My contribution to this debate is to say that I was hacking on some Java code last night and found myself wishing that Java’s List class had methods for grabbing the first and last elements in the list. To me, the convenience methods make your code much more readable. In the Java world in particular, everybody uses editors that auto-complete method names anyway, so it’s not as though we need to memorize all of the public methods of every class we use in the first place.