On 2/7/07, dblack / wobblini.net <dblack / wobblini.net> wrote:
> Hi --
>
> On Wed, 7 Feb 2007, Nikolai Weibull wrote:
>
> > On 2/6/07, dblack / wobblini.net <dblack / wobblini.net> wrote:
> >> Hi --
> >>
> >> On Tue, 6 Feb 2007, Nikolai Weibull wrote:
> >>
> >> > On 2/6/07, Yukihiro Matsumoto <matz / ruby-lang.org> wrote:
> >> >
> >> >> Both having ordAt(index) or making String#ord to return codepoint of
> >> >> the first character are trivial.  We have to evaluate pros and cons
> >> >> first.
> >> >
> >> > Like the fact that #ordAt isn't a very Rubyish name.  I really
> >> > appreciate the fact that the core and standard libraries use very
> >> > consistent naming schemes, where most methods have only one word in
> >> > them, thus avoiding the whole
> >> >
> >> came-case-versus-internal-upcasing-versus-lowline-separating-naming-scheme
> >> > holy-war.
> >>
> >> There are quite a few multi-word methods (respond_to?, values_at,
> >> to_i, instance_methods, etc.), all with the underscore style.  I agree
> >> there's no "war" aspect to it, but there's definitely a traditional
> >> style.
> >
> > What I meant was that it seems that people have been clever enough to
> > avoid multi-word methods as far as possible, so that there really
> > never has to be a discussion about it.  I know that the naming
> > conventions are camel-case for constants and lowlines for everything
> > else, but I realized early while reading through the early
> > documentation that every method seemed to have a very good single-word
> > name.
>
> irb(main):006:0> Object.new.methods.size
> => 40
> irb(main):007:0> Object.new.methods.grep(/_/).size
> => 17
>
> I guess __send__ and __id__ shouldn't count :-)  It's still a large
> percentage, though.  I don't think anyone's ever tried to avoid
> multi_word methods, except maybe when they get too big (though that
> can be handy too, in cases like instance_variable_get where the
> bigness draws attention to the possible inelegance of using the
> method).

Well, here's a another way of calculating the percentage (and gives a
percentage one fourth of your 43%):

String.new.public_methods(false).size /
String.new.public_methods(false).grep(/_/).size [1]

which gives us 11%.  Anyway, my feeling has always been that Ruby has
managed to use far simpler names for methods than many other
languages, which I appreciate.

  nikolai

[1] Using #public_methods instead of #methods should defeat my
argument, but I don't care.  Perhaps in 1.9/2.0 we'll have something
like #methods(:ancestors, :scope)?