"When I use a word," Humpty Dumpty said, in a rather scornful tone, "It means just what I choose it to mean — neither more nor less."
(Lewis Carroll, Through the Looking Glass)
Names are probably the most important abstraction device when writing code. A good name can hide a multitude of sins (who cares how vomit inducing a method implementation is, if the name is right?), but a bad one invokes feelings of rage (I've found a fileExists
method that returns false if the file exists...).
Parts of Java have a very rigid naming standard (for example JavaBean conventions). This is a good thing for some reasons (see the number of packages that use reflection to take advantage of this), but a bad thing for others when you end up making up terrible names just to satisfy some naming convention.
In order to explore the sort of names that Java uses I wrote a quick script that trawled the JavaDoc from the standard library (JDK6.0), reflectively looked up all the methods and split them up into words (assuming camel casing and ignoring anything with $
or _
in the name). And then a bit of manual munging...
The most popular starting word for a Java method is (unsuprisingly) get.
The longest method is (deep breath), supportsDataDefinitionAndDataManpulationTransactions. The most number of words that an individual method has is eight, and there's quite a few of these as shown below.
- get Continue Existing Periodic Tasks After Shutdown Policy
- get Cross Platform Look And Feel Class Name
- get Editor Kit Class Name For Content Type
- is Known To Not Have Class Path Attribute (not a public method!)
- set Continue Existing Periodic Tasks After Shutdown Policy
- set Current Event And Most Recent Time Impl (not a public method!)
- set Execute Existing Delayed Tasks After Shutdown Policy
- set Model To View From View To Model
get
, set
and is
. maybe bind this or target or args from pointcut expression? That's the method with the largest number of words in the Spring framework (or a strange Haiku?). The largest number of words in a public method is the monster set apply web request interceptors to render phrase only. The distribution of lengths of method names again shows a normal distribition With that as inspiration I decided to finally get around to creating methodnamer.com, the new one-stop shop for adding the method names for classes that you've named using classnamer.com. You can generate methods based on either Spring or the JDK. Are there any method names in the JDK that are Haiku? A Haiku should contain 17 syllables in the pattern 5-7-5. I used the Perl module, Lingua::EN::Syllable and a bit of hackery and didn't find anything that was an exact match. The best I could come up with was: create selection model property change listener