Posted by
Hemos
on from the learning-more-about-hjava dept.
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"
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.
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
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."
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.
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?
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.
The interview was very short and I did not find much information. Here are some related links:
4 7_ STO69691,00.html -- on .NET and J2EE
v iews/james_ gosling.html
d efault.asp
g os ling/
http://www.computerworld.com/storyba/0,4125,NAV
Gosling on netbeans -- (03/2002)
http://www.netbeans.org/articles/inter
An old interview from 2000 -- more on java http://www.devx.com/judgingjava/articles/gosling/
Another from 1999 --
http://www-106.ibm.com/developerworks/features/
S
The March 2000 JavaWorld has an interview with ECMA officials that, as Gosling says, makes for interesting reading:
"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."
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.
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?