There is a new Programming Warts Wiki. I think this is a great idea, since it encourages discussion about the various advantages and disadvantages of different programming languages and may help to remove some kinks in those languages.
I don’t like Java’s File API. It’s main problem is that is mixes several responsibilities into one class. One responsibility is handling of “abstract” file and path names, i.e. operating system independent file names. The other responsibilities are all file system related: Querying file meta information (access rights, access times, file type), creating files, and listing directory contents. In my opinion these should be clearly separated.
I am also missing a constructor or construction method that creates a File instance from a list of path components like this:
File f = new File("/", "path", "to", "file");
Maybe I should start a Java warts page, similar to my Python warts page …
I started my own page of Python warts, similar to A. M. Kuchling’s popular page. At the moment it just features one wart (the
len() function vs. a
length property on container classes). But I plan to add more warts in the future. I will probably concentrate on warts in the standard library. (And there are tons of them.) Two warts that come to mind are the unpythonic (but very SAXy) SAX library, and several warts in the unittest module.