Re: You are a *pedantic* coder. So what am I?

From: Justin Coyne <justin_at_nyob>
Date: Thu, 21 Feb 2013 11:53:43 -0600
To: CODE4LIB_at_LISTSERV.ND.EDU
with regards to Class extending Object,  should this error be possible?

error: clone() has protected access in Object
    Class.clone();
             ^


Of course this sort of nit-picking is absolutely not constructive.  I'm
just saying that if you're teaching the "Object Oriented" programming
paradigm, there are better choices than Java.  Java is a really difficult
language for the beginner.  How many professional Java programmers can work
without an IDE?   Compare that to the same metric for any scripting
language.


-Justin.




P.S.

error: clone() has protected access in Object
    System.out.println(Class.clone().toString());
                            ^




On Thu, Feb 21, 2013 at 11:45 AM, Ethan Gruber <ewg4xuva_at_gmail.com> wrote:

> 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
> <justin_at_curationexperts.com>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 <eric_at_hellman.net> 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 <justin_at_CURATIONEXPERTS.COM>
> > > 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
> > > >
> > >
> >
>
Received on Thu Feb 21 2013 - 12:54:21 EST