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.
So the JDC interviewed James Gosling. Surely he [has] contributed to the JDC and has a log in, thus making him a part of the JDC collective...
Next week on Slashdot: Taco interviews himself.
The difference is this interview is interesting, and James Gosling knows how to spell.
--
"And like that... he's gone."
Re:Decimal arithmetic
by
Steveftoth
·
· Score: 3, Informative
Use the BigDecimal class. It's standard and handles any size floating point numbers. Not quite as good as the Cobol version, but you can always write your own class if you are that picky.
Sorry, Java is more based on C then on Cobol.
Short, informative, and funny!
by
foobar104
·
· Score: 5, Funny
This interview is worth reading if only to get a laugh out of the way Sun's marketroids obviously sanitized it. In at attempt to make the text of the interview (which is just a transcript of a spoken exchange, after all) comply with Sun's trademark guidelines, they ended up with sentences like this:
So, personally, you could delete [the] JDBC [API] from [the] J2SE [platform] and it would not affect any code that I've ever written.
And this:
That would make [the] Java [programming language] much more flexible.
And this:
Is it possible to submit the Java [technology] bytecode specification to a standards body like ECMA [and the like]?
Sheesh. This interview was brought to you by the letters "[" and "]".
Re:Short, informative, and funny!
by
pnatural
·
· Score: 3, Funny
there are important technical differences between Java the language and Java the set of frameworks
which is why they're all called Java (TM).
Java as ECMA standard?
by
revscat
·
· Score: 5, Interesting
From the article:
JDC: Is it possible to submit the Java [technology] bytecode specification to a standards body like ECMA [and the like]?
JG: Well, we actually tried to do that; to submit it to ECMA. And that exploded and turned into a rather bizarre episode. And actually, after that exploded, ECMA did an internal investigation and published a report, which is very interesting reading.
Does anyone know what he's talking about? I saw this interview a while ago and have looked around in vain for the report he mentions. This would certainly be interesting, especially if, as I somehow suspect, Microsoft did something to prevent Java from becoming a standard.
Re:Java as ECMA standard?
by
Tony-A
·
· Score: 3, Insightful
Them as lives by the crystal ball shall learn to eat ground glass. Nevertheless, I'll hazard a guess. There is the old joke about a camel being a horse designed by a committe. Java is Sun's "baby" and if left to the vagaries of the standards body, somebody, sometime, somehow would manage to sabotage the integrity of the design. It's gotta be real easy to change Java to be more "programmer friendly", a la Virul Basic, and lose the integrity in the process.
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/
I think [that] the [person who acted in the capacity of the] editor [of this article] who keeps [repeatedly] butting in [to the questions and answers] for no [descernable] reason [or benefit] should just shut [the f*ck] up.
Re:Where will Java be in five years?
by
TWR
·
· Score: 5, Insightful
Um, you are aware of a little think called J2EE, right? Java on the server is pretty much where the action is: servlets, JSPs, EJBs, JDBC, JMS.
I can't say I found a lot of information in the article... Still, here are some questions about the design of the language:
1) Why are classes like Integer so weird? It is such a pain to, for example, increment them... Change of this would conflict with absence of operator overloading, true (I don't like that too much either, but at least can imagine why it's (not) there). However, why not make them magical like String's "+"?
2) 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)...
3) One (public) class per file. This especially bugs me with small interfaces. Such a waste of screen space and disk space (each file takes up 4k on the file system)... Why not allow to put a hierarchy of interfaces (and, preferably, classes) in one file?
This wasn't intended to be troll, even if it looks and feels like one.;)
--
I like '...' (and (nested) parens)...
Re:Java features
by
GuyZero
·
· Score: 3, Insightful
3) One (public) class per file. This especially bugs me with small interfaces. Such a waste of screen space and disk space (each file takes up 4k on the file
system)... Why not allow to put a hierarchy of interfaces (and, preferably, classes) in one file?
Well, this is really a classloader limitation... there's no restriction to loading classes from a databse, across the network, from your back pocket, etc, as long as you've got an appropriate classloader.
Besides, there are those things called JAR files... have you used Java much?
Re:Java features
by
ZeroConcept
·
· Score: 3, Informative
1) Integer and String classes are inmutable, their value cannot be changed.
2) I Agree with this, but some people argue that you should use the return value or create your own mutable wrapper of int.
3) Try using Inner classes. I like the idea of the filename matching the classname as it makes it easier to browse trough code and reduces source control conflicts.
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.
1) Why are classes like Integer so weird? It is such a pain to, for example, increment them... Change of this would conflict with absence of operator overloading, true (I don't like that too much either, but at least can imagine why it's (not) there). However, why not make them magical like String's "+"?
I'm pretty sure you can't change the value of an Integer, just like String. This is for efficiency. I'm sorta of two minds about not including operator overloading in the language, I love it in C++, but it can be good to have code that novices can read.
2) 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)...
Create your own container class. But passing int's by reference doesn't sound very object oriented, perhaps a change in style would be more appropriate. I have never run into the problem myself. I sometimes do it in C++, but I consider it a bad habit...
3) One (public) class per file. This especially bugs me with small interfaces. Such a waste of screen space and disk space (each file takes up 4k on the file system)... Why not allow to put a hierarchy of interfaces (and, preferably, classes) in one file? I couldn't disagree with you more. Having a file per public class makes browsing other people's code much easier. It's a habit I have adopted in C++. grep is a wonderful thing, but it can break the flow when you're reading code in an editor. Wasting 4k on the file system isn't much of a problem, even on embedded systems. If it really really bothers you use a compressed file system or make you're inodes smaller, remember class files are minute compared to compiled code so you end up using much less space overall.
Why Bill Joy still doesn't like templates puzzles me the most. I'm sure it could be done elegantly in Java.
Questions left unanswered...
by
Bonker
·
· Score: 5, Funny
1. Why is Java so damn slow?
2. Why do so many Java developers get so upset when you point out how damn slow Java really is?
3. Why is it so much fun to pick on Java developers when there really are slower languages out there?
4. If you could make Java fast, would you voluntarily leave it slow just so we could give Java developers apoplexy by mentioning how fast even PHP is for certain tasks?
-- The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
Java code generation
by
descubes
·
· Score: 3, Informative
JDC: I'd like to see more tools that enhance developer productivity, we have Unified Modeling Language (UML) modeling tools, and wizards to help us generate code. Can we tie these together better?
Another way to enhance productivity is to manipulate the Java source code itself (rather than generate code from the outside.) A good example of tool doing just that is Moka. In short, Moka is a Java-to-Java translator which allows you to extend Java in many interesting ways. For instance, there is a plug-in that allows you to remove any method or class whose name begins with 'debug'. There are other examples on the web page. I believe it's easy to use, and it makes up for various shortcomings of the language itself.
-- --
Did you try Tao3D? http://tao3d.sourceforge.net
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."
Preemptive "faster than C" counter-troll
by
Ars-Fartsica
·
· Score: 3, Insightful
For all of the posters who are going to respond with "Java can possibly be faster than C"...well, a color television could also possibly spontaneously appear at the event horizon of a black hole, but that doesn't mean that this actually ever happens.
1. Java is slow just to piss off people who worry that any scroll speed short of "the Flash on Steroids" is too slow. People who do real work and don't just run benchmarks all day don't notice.
2. They're not upset; that's the sound of Java developers rolling around in the large piles of money they make writing software that people actually use.
3. Because it's easier to nitpick the best product than it is to find all of the memory leaks and bad pointer refs in the C++ code written by l33t hax0rs.
4. Yes; if you can amuse your inferiors at no cost to yourself, why not bring some joy into their sad lives?
-jon
--
Remember Amalek.
My Favorite Java Quote...
by
pnatural
·
· Score: 3, Funny
I should post this anon because I'm sure I'll be marked down by the moderators/java coders with no sense of humor, but it's only karma. Here goes:
If code were music, Java would be country.
Anyone know where I could get that on a teeshirt?
Does anyone understand...
by
Glock27
·
· Score: 4, Insightful
the dynamic that has made Java grow exponentially in 'real' software development, and become the dominant teaching language versus the constant bashing it receives here on Slashdot and among OSS people?
Java is actually very good, and yes, very fast. I fail to understand why anyone would prefer Microsoft's poor imitation. Java is still growing very fast and getting better all the time.
Ignore it at your peril. Or better yet, just laugh at it...that is until you're in the unemployment line because you don't know it.
-- Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
Re:Does Java use Pointers?
by
Anonymous Coward
·
· Score: 3, Informative
The equivilent code in java would be: Integer a = NULL; int b = a.toInt();
Java uses references, not pointers. The difference is twofold: one, if you attempt to dereference a null pointer in java using the code above, you get a well-handled exception which either launches an error routine defined by the programmer or causes the program to terminate politely (as opposed to the messy crash you will get if you pull this in C++). Secondly you cannot do math with references-- with a reference, you can point it to something another reference already points to, or you can point it to a new object, or you can point it to NULL. With a pointer, you can just point it to any old thing anywhere in memory, or even just iterate over memory like the code at the top of this post does, and when you read the any-old-thing in question you'll just get garbage-- but your program will *think* it's reading a valid value, and operate on the garbage as if it was something important. Sometimes this results in catastrophe.
The downside to java's way of doing things is it's a bit simplistic-- you cannot have references to ints, floats, or other "base types" unless you put them inside a "wrapper object". This simplifies coding and reading but is a bit limiting at times.
Note, for the record, in C++, the term "null pointer" generally refers to any pointer that points to garbage-- in practice it doesn't always refer to NULL, which is memory address 0. Perhaps you should read some of the other documents on the "everything2" site i link above-- it has lots of good definitions of things. Hopefully that helps a little:)
super ugly ultraman
What Java Is and Isn't
by
Synn
·
· Score: 3, Interesting
The thing is, Java's strength is it's very weakness. Java is a platform neutral by design, so it's rather clunky when compared to a platform specific language. You won't ever see a game written in Java, not because Java is slow, but because you can't use Direct X with it(or whatever platform specific lib you want).
I think Java is going to own the embedded market. A cell phone company can create Java software and it can happily switch around the cell phone hardware as much as they want and still use the same single piece of software.
Palm Pilots are still popular for this same reason. There are tons of Palm apps that run on them and the new Pilots are software compatible with the older ones.
.NET appears to be different than Java in that it makes no attempt at being platform neutral, rather it tries to be language nuetral. Python.NET, VB.NET, C++.NET all compile down to the same CLR. And a VB.NET developer can use Python.NET libraries.
I think this will dominate the application market.
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?
Java, Microsoft and James
by
theolein
·
· Score: 4, Interesting
Every interview I read on James Gossling, I read "how people are doing all sorts of exiting things on the desktop with it" and some other stuff such as how it is getting into "the embedded space". (what is embedded space? Did an astronaut get some vacum in abottle and bring it back with him?).
At the same time I read how SUN marvelousy manages to fuck things up with respect to their favourite language on the client side. Granted, it is huge on the e-commerce side of things, but things like JSP are too complex for simple backend applications that are far more easily handled in PHP or ASP. The mobile market seems to like it and it might become big there too, given that ARM and others are making processor core that handle bytecode natively, but that's not yet a given. What stresses me is that, from the beginning, SUN mishandled Java and played into MS' hands for a number of reasons: 1.When it first came out it became very popular very quickly because of it's ability to provide pixelated aliased dancing Dukes and and sound to web pages. However Sun never bothered to push the point and try to improve performance and load times. People got very tired of seeing pixelated images floating across the screen that took minutes in some cases to load on early modems. They just sat there on their butts and ignored the fact that AWT was hideous, ungainly, and in no way worked very well across platforms (I mean on the Mac or Unix for example) and lacked important controls. 2.One of the things that played into MS' hands was the above and the fact that SUN made Java native interaction very difficult or at least non-trivial to implement, so that people who would have otherwise been able to make GUI controls and interface in C/C++ were put off having to slog through JNI. Along came MS with their JRI (or whatever it was called) which enabled all the hordes of MS developers to easily call MFC and other Win32 stuff directly from the classes. It was an easy picking and whose fault was it. It was or should have been obvious that MS would try to scupper anything that anyone else did (Custom ActiveX never became very popular but it did serve the purpose of making more FUD enter the arena) and the need for easy native access was defintely there. I know that it might have neccesitated changes in the security model but SUN didn't listen or was too confident or just too plain stupid when you look at the ugliness of their desktop for example. 3.Eventually they did listen and came up with Swing, which was so slow on machines of the time (ever run the Swing demo stuff on a 223MHz x86?) that it put off many companies and developers, who just carried on using VB because it was a no contest in terms of GUI response. And this although Swing looked very good.
Why did SUN ignore all the compaints? Why did they make native access so difficult? Why didn't they just improve AWT? Why didn't they try to look at it from a consumer point of view, which is what all those people watching the moronic applets of time were. Applets have all but dissapeared on the web and 99% of interactive shit is done with Flash today. Why didn't they try a trick from the MS book and try to implement things like the JVM starting up on boot or browser launch to make Applets start faster? Why did SUN make such a huge fuss of MS ignoring Java in XP when they couldn't even be bothered to make a marketing push for, IMO, some pretty neat stuff like WebStart?(who actually uses this?)
MS may be an abuse monopoly but SUN has it's head in the clouds up with the bosses of big banks etc and seems too dumb to try to see things from a consumer point of view.
(Sorry for the rant. I think they need it.)
Re:What the heck is autoboxing?
by
Steveftoth
·
· Score: 3, Insightful
Not really, because you have problems like what gosling said with identity, so you say int i = 1; Integer I = 1; does i == I?
casting a float to an int ( and back ) is completly different as when you cast a float to an int, the number will probably change. 3.999999 -> int -> 3 should it goto 4? probably, it should be rounded. but autoboxing is supposed to keep the value of the original type.
Regardless I'm not too sure how this will help performance much. The feature that I want to see added to java is that I want to be able for the java vm to create objects on the stack. Then if they get assigned to a member pointer, get promoted to the heap. This way you could keep objects on the stack where they could be easily collected when the function that created them ends scope.
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.
So the JDC interviewed James Gosling. Surely he [has] contributed to the JDC and has a log in, thus making him a part of the JDC collective...
Next week on Slashdot: Taco interviews himself.
-... ---
Use the BigDecimal class. It's standard and handles any size floating point numbers. Not quite as good as the Cobol version, but you can always write your own class if you are that picky.
Sorry, Java is more based on C then on Cobol.
This interview is worth reading if only to get a laugh out of the way Sun's marketroids obviously sanitized it. In at attempt to make the text of the interview (which is just a transcript of a spoken exchange, after all) comply with Sun's trademark guidelines, they ended up with sentences like this:
So, personally, you could delete [the] JDBC [API] from [the] J2SE [platform] and it would not affect any code that I've ever written.
And this:
That would make [the] Java [programming language] much more flexible.
And this:
Is it possible to submit the Java [technology] bytecode specification to a standards body like ECMA [and the like]?
Sheesh. This interview was brought to you by the letters "[" and "]".
From the article:
JDC: Is it possible to submit the Java [technology] bytecode specification to a standards body like ECMA [and the like]?
JG: Well, we actually tried to do that; to submit it to ECMA. And that exploded and turned into a rather bizarre episode. And actually, after that exploded, ECMA did an internal investigation and published a report, which is very interesting reading.
Does anyone know what he's talking about? I saw this interview a while ago and have looked around in vain for the report he mentions. This would certainly be interesting, especially if, as I somehow suspect, Microsoft did something to prevent Java from becoming a standard.
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
I think [that] the [person who acted in the capacity of the] editor [of this article] who keeps [repeatedly] butting in [to the questions and answers] for no [descernable] reason [or benefit] should just shut [the f*ck] up.
What are you using for web development?
-jon
Remember Amalek.
I can't say I found a lot of information in the article... Still, here are some questions about the design of the language:
;)
1) Why are classes like Integer so weird? It is such a pain to, for example, increment them... Change of this would conflict with absence of operator overloading, true (I don't like that too much either, but at least can imagine why it's (not) there). However, why not make them magical like String's "+"?
2) 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)...
3) One (public) class per file. This especially bugs me with small interfaces. Such a waste of screen space and disk space (each file takes up 4k on the file system)... Why not allow to put a hierarchy of interfaces (and, preferably, classes) in one file?
This wasn't intended to be troll, even if it looks and feels like one.
--
I like '...' (and (nested) parens)...
1. Why is Java so damn slow?
2. Why do so many Java developers get so upset when you point out how damn slow Java really is?
3. Why is it so much fun to pick on Java developers when there really are slower languages out there?
4. If you could make Java fast, would you voluntarily leave it slow just so we could give Java developers apoplexy by mentioning how fast even PHP is for certain tasks?
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
JDC: I'd like to see more tools that enhance developer productivity, we have Unified Modeling Language (UML) modeling tools, and wizards to help us generate code. Can we tie these together better?
Another way to enhance productivity is to manipulate the Java source code itself (rather than generate code from the outside.) A good example of tool doing just that is Moka. In short, Moka is a Java-to-Java translator which allows you to extend Java in many interesting ways. For instance, there is a plug-in that allows you to remove any method or class whose name begins with 'debug'. There are other examples on the web page. I believe it's easy to use, and it makes up for various shortcomings of the language itself.
-- Did you try Tao3D? http://tao3d.sourceforge.net
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."
For all of the posters who are going to respond with "Java can possibly be faster than C"...well, a color television could also possibly spontaneously appear at the event horizon of a black hole, but that doesn't mean that this actually ever happens.
2. They're not upset; that's the sound of Java developers rolling around in the large piles of money they make writing software that people actually use.
3. Because it's easier to nitpick the best product than it is to find all of the memory leaks and bad pointer refs in the C++ code written by l33t hax0rs.
4. Yes; if you can amuse your inferiors at no cost to yourself, why not bring some joy into their sad lives?
-jon
Remember Amalek.
Java is actually very good, and yes, very fast. I fail to understand why anyone would prefer Microsoft's poor imitation. Java is still growing very fast and getting better all the time.
Ignore it at your peril. Or better yet, just laugh at it...that is until you're in the unemployment line because you don't know it.
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
for(int *p=0;;*(p++)=0);
:)
The equivilent code in java would be:
Integer a = NULL;
int b = a.toInt();
Java uses references, not pointers. The difference is twofold: one, if you attempt to dereference a null pointer in java using the code above, you get a well-handled exception which either launches an error routine defined by the programmer or causes the program to terminate politely (as opposed to the messy crash you will get if you pull this in C++). Secondly you cannot do math with references-- with a reference, you can point it to something another reference already points to, or you can point it to a new object, or you can point it to NULL. With a pointer, you can just point it to any old thing anywhere in memory, or even just iterate over memory like the code at the top of this post does, and when you read the any-old-thing in question you'll just get garbage-- but your program will *think* it's reading a valid value, and operate on the garbage as if it was something important. Sometimes this results in catastrophe.
The downside to java's way of doing things is it's a bit simplistic-- you cannot have references to ints, floats, or other "base types" unless you put them inside a "wrapper object". This simplifies coding and reading but is a bit limiting at times.
Note, for the record, in C++, the term "null pointer" generally refers to any pointer that points to garbage-- in practice it doesn't always refer to NULL, which is memory address 0. Perhaps you should read some of the other documents on the "everything2" site i link above-- it has lots of good definitions of things. Hopefully that helps a little
super ugly ultraman
The thing is, Java's strength is it's very weakness. Java is a platform neutral by design, so it's rather clunky when compared to a platform specific language. You won't ever see a game written in Java, not because Java is slow, but because you can't use Direct X with it(or whatever platform specific lib you want).
I think Java is going to own the embedded market. A cell phone company can create Java software and it can happily switch around the cell phone hardware as much as they want and still use the same single piece of software.
Palm Pilots are still popular for this same reason. There are tons of Palm apps that run on them and the new Pilots are software compatible with the older ones.
.NET appears to be different than Java in that it makes no attempt at being platform neutral, rather it tries to be language nuetral. Python.NET, VB.NET, C++.NET all compile down to the same CLR. And a VB.NET developer can use Python.NET libraries.
I think this will dominate the application market.
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?
Every interview I read on James Gossling, I read "how people are doing all sorts of exiting things on the desktop with it" and some other stuff such as how it is getting into "the embedded space". (what is embedded space? Did an astronaut get some vacum in abottle and bring it back with him?).
At the same time I read how SUN marvelousy manages to fuck things up with respect to their favourite language on the client side. Granted, it is huge on the e-commerce side of things, but things like JSP are too complex for simple backend applications that are far more easily handled in PHP or ASP. The mobile market seems to like it and it might become big there too, given that ARM and others are making processor core that handle bytecode natively, but that's not yet a given.
What stresses me is that, from the beginning, SUN mishandled Java and played into MS' hands for a number of reasons:
1.When it first came out it became very popular very quickly because of it's ability to provide pixelated aliased dancing Dukes and and sound to web pages. However Sun never bothered to push the point and try to improve performance and load times. People got very tired of seeing pixelated images floating across the screen that took minutes in some cases to load on early modems. They just sat there on their butts and ignored the fact that AWT was hideous, ungainly, and in no way worked very well across platforms (I mean on the Mac or Unix for example) and lacked important controls.
2.One of the things that played into MS' hands was the above and the fact that SUN made Java native interaction very difficult or at least non-trivial to implement, so that people who would have otherwise been able to make GUI controls and interface in C/C++ were put off having to slog through JNI. Along came MS with their JRI (or whatever it was called) which enabled all the hordes of MS developers to easily call MFC and other Win32 stuff directly from the classes. It was an easy picking and whose fault was it. It was or should have been obvious that MS would try to scupper anything that anyone else did (Custom ActiveX never became very popular but it did serve the purpose of making more FUD enter the arena) and the need for easy native access was defintely there. I know that it might have neccesitated changes in the security model but SUN didn't listen or was too confident or just too plain stupid when you look at the ugliness of their desktop for example.
3.Eventually they did listen and came up with Swing, which was so slow on machines of the time (ever run the Swing demo stuff on a 223MHz x86?) that it put off many companies and developers, who just carried on using VB because it was a no contest in terms of GUI response. And this although Swing looked very good.
Why did SUN ignore all the compaints? Why did they make native access so difficult? Why didn't they just improve AWT? Why didn't they try to look at it from a consumer point of view, which is what all those people watching the moronic applets of time were. Applets have all but dissapeared on the web and 99% of interactive shit is done with Flash today. Why didn't they try a trick from the MS book and try to implement things like the JVM starting up on boot or browser launch to make Applets start faster? Why did SUN make such a huge fuss of MS ignoring Java in XP when they couldn't even be bothered to make a marketing push for, IMO, some pretty neat stuff like WebStart?(who actually uses this?)
MS may be an abuse monopoly but SUN has it's head in the clouds up with the bosses of big banks etc and seems too dumb to try to see things from a consumer point of view.
(Sorry for the rant. I think they need it.)
Not really, because you have problems like what gosling said with identity, so you say
int i = 1;
Integer I = 1;
does i == I?
casting a float to an int ( and back ) is completly different as when you cast a float to an int, the number will probably change.
3.999999 -> int -> 3
should it goto 4? probably, it should be rounded.
but autoboxing is supposed to keep the value of the original type.
Regardless I'm not too sure how this will help performance much.
The feature that I want to see added to java is that I want to be able for the java vm to create objects on the stack. Then if they get assigned to a member pointer, get promoted to the heap. This way you could keep objects on the stack where they could be easily collected when the function that created them ends scope.