"pendantic" and "ruby" go together about as well as "brevity" and this mailing list.... class Foo private def bar "Calling a private method is foobar" end end $ irb 1.9.3p286 :009 > Foo.new.bar NoMethodError: private method `bar' called for #<Foo:0x007f9e9184b8b8> 1.9.3p286 :010 > Foo.new.send(:bar) => "Calling a private method is foobar" They've been saying they're going to remove this in the next version for about 5 years now... On Thu, Feb 21, 2013 at 9:37 PM, Ian Walls <[log in to unmask]> wrote: > Justin, > > > I certainly agree that to become a better coder, it's good to experiment > with many languages and applications. I'm not advocating that any given > shop should always rule out a project in a new (to them) language. What > I'm > saying is that the context of what you already know and what your > environment supports is an equally important part of the conversation when > choosing a language to develop in. > > -Ian > > -----Original Message----- > From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of > Justin Coyne > Sent: Thursday, February 21, 2013 12:59 PM > To: [log in to unmask] > Subject: Re: [CODE4LIB] You are a *pedantic* coder. So what am I? > > Ian, I have to caution against taking the attitude "we only code in what we > already know". Of course you are going to be able to hit the ground > running > faster in what you are expert in. Putting on the blinders is a great way > to > become irrelevant in the technology sphere. If you want to be a better > coder, there is no better way than to learn a new language, and actually do > a project in it. The insights you find in doing this will make you a better > coder when your go back to doing whatever it was you were doing before. > > -Justin > > > On Thu, Feb 21, 2013 at 11:53 AM, Ian Walls <[log in to unmask] > >wrote: > > > Agreed. Each language has its own strengths and weaknesses. Pick the > > one that works best for your situation, factoring in not only what the > > application needs to do, but your and your team's level of experience, > > and the overall community context in which the project will live. The > > peculiarities of a given languages truth tables, for example, can > > easily get washed out of the calculation when you consider what > > languages you know and what platforms your institution supports. > > > > > > -Ian > > > > -----Original Message----- > > From: Code for Libraries [mailto:[log in to unmask]] On Behalf > > Of Ethan Gruber > > Sent: Thursday, February 21, 2013 12:45 PM > > To: [log in to unmask] > > Subject: Re: [CODE4LIB] You are a *pedantic* coder. So what am I? > > > > Look, I'm sure we can list the many ways different languages fail to > > meet our expectations, but is this really a constructive line of > conversation? > > > > -1 > > > > > > On Thu, Feb 21, 2013 at 12:40 PM, Justin Coyne > > <[log in to unmask]>wrote: > > > > > I did misspeak a bit. You can override static methods in Java. My > > > major issue is that there is no "getClass()" within a static method, > > > so when the static method is being run in the context of the > > > inheriting class it is unaware of its own run context. > > > > > > For example: I want the output to be "Hi from bar", but it's "Hi > > > from > > foo": > > > > > > class Foo { > > > public static void sayHello() { > > > hi(); > > > } > > > public static void hi() { > > > System.out.println("Hi from foo"); > > > } > > > } > > > > > > class Bar extends Foo { > > > > > > public static void hi() { > > > System.out.println("Hi from bar"); > > > } > > > } > > > > > > class Test { > > > public static void main(String [ ] args) { > > > Bar.sayHello(); > > > } > > > } > > > > > > > > > -Justin > > > > > > > > > > > > On Thu, Feb 21, 2013 at 11:18 AM, Eric Hellman <[log in to unmask]> > wrote: > > > > > > > OK, pedant, tell us why you think methods that can be over-ridden > > > > are static. > > > > Also, tell us why you think classes in Java are not instances of > > > > java.lang.Class > > > > > > > > > > > > On Feb 18, 2013, at 1:39 PM, Justin Coyne > > > > <[log in to unmask]> > > > > wrote: > > > > > > > > > To be pedantic, Ruby and JavaScript are more Object Oriented > > > > > than Java because they don't have primitives and (in Ruby's > > > > > case) because classes > > > > are > > > > > themselves objects. Unlike Java, both Python and Ruby can > properly > > > > > override of static methods on sub-classes. The Java language > > > > > made many compromises as it was designed as a bridge to Object > > > > > Oriented > > > programming > > > > > for programmers who were used to writing C and C++. > > > > > > > > > > -Justin > > > > > > > > > > > > > > >