Print

Print


"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
> > > > >
> > > >
> > >
> >
>