Slashdot Mirror


Interview With James Gosling

Def Mango Raygun writes "There is an interview with James Gosling of Sun. He talks about some language features and why they happened. It's short, but informative"

5 of 216 comments (clear)

  1. more information by flynt · · Score: 5, Informative

    James has a homepage here, for your perusal. There are some really interesting things on it, like the fact he is Canadian and likes pies in Bill Gate's face to name a few.

  2. Related information by sisukapalli1 · · Score: 4, Informative

    The interview was very short and I did not find much information. Here are some related links:

    http://www.computerworld.com/storyba/0,4125,NAV4 7_ STO69691,00.html -- on .NET and J2EE

    Gosling on netbeans -- (03/2002)
    http://www.netbeans.org/articles/interv iews/james_ gosling.html

    An old interview from 2000 -- more on java http://www.devx.com/judgingjava/articles/gosling/d efault.asp

    Another from 1999 --
    http://www-106.ibm.com/developerworks/features/g os ling/

    S

  3. JavaWorld story by lseltzer · · Score: 5, Informative
    Sun's announcement that they were withdrawing from the ECMA process was in December '99.

    The March 2000 JavaWorld has an interview with ECMA officials that, as Gosling says, makes for interesting reading:

    • ECMA responded by chastising Sun for causing an "enormous waste of experts' time and companies' money." In an interview today, a top ECMA official said Sun's criticisms of the group are merely a smokescreen for its real motives for ending the relationship.
    • "They just don't want to give up control" of Java, said Jan van den Beld, secretary-general of ECMA. "It is 100 percent my opinion that Sun is publicly saying they want to make Java a standard, but privately not making it happen."

  4. Re:Java features by SimonK · · Score: 4, Informative

    Why are classes like Integer so weird?

    Because they're an afterthought. Java was originally designed without the primitive equivalent reference types and they were tacked on later to solve some problems which emerged. Basically, the problem was that there was no type that included both Object and the primitive types, which made reflection and collections hard to deal with.

    The original decision not to make the primitives objects is one of the Great Mysteries of All Time. Sun say its for "efficiency reasons", but Java's antecedent languages (Smalltalk, Lisp, etc) solved the same problem using type tags, so primtives look like objects even though they are implemented differently, and indeed the best VMs actually do this internally for other reasons.

    Essentially, its a mistake, IMHO.

    Several times I got caught on the fact that there is no way to pass an int by reference. And I don't like Integer (see aboive)...

    Java's basically an OO language. You can use it in non-OO ways, but you tend to run into problems like this. Basically, if you want to return more than one value from a method, you should probably group them together in their own class. If you want to use the return value to return an error code, you should learn about exception.

    I program in Java every day, and the inability to return multiple values is not a problem for me in practice.

    One (public) class per file.

    .class files act as header files as well as binaries. In order to preserve the sanity of programmers, the compiler builds any unbuilt sources. To do that it has to find them. Hence the "file must have the name of the public class" rule.

  5. Re:What the heck is autoboxing? by Steveftoth · · Score: 4, Informative

    Autoboxing is a process where primitives are automagically converted to Objects (and back). It's a language change so that you would have to write new code to use it. Basically you could say....
    int i = 2,j=1;
    Integer result = Math.max( i,j);
    and it would magically convert the result of the Math.max to an integer. Or if the Math.max took Integers instead of ints, it would create Integers for you.
    The details need to be worked out because as of right now, an Integer is unmodifiable and things like
    i == result
    would be problematic. Since == tests equality, but it only works with objects if they are actually the same reference. You can't do
    i.equals( result )
    Also, what if you do
    int i= 2;
    Integer j=i, k=j;
    ++j;
    If you are using object semantics, then k should probably be changed to reflect the new value of j, since j and k both point to the same object. It comes down to, should the value of j change? or the value of the object that it represents?