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"

15 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. 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.

  3. 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

  4. If you want good realtime with java... by MiddleHitter · · Score: 2, Informative
    jdk's realtime isn't all that great, and is easily run awry. For great realtime java, check out NewMonics.
    It runs on linux too!

    I may be a little biased though...

    --
    I don't fear computers, I fear the lack of them. -I. Asimov
  5. 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
  6. 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."

  7. Re:Decimal arithmetic by Anonymous Coward · · Score: 1, Informative

    BigDecimal IS fixed point artihmetic.

    Java does not have a built-in arbitrary precision rational type. You could make one in 2-3 minutes though. No, it doesn't matter that it's not built-in because there's no helpful static optimizations you can do to make it faster. That's also why I chuckled at your "native data type in Common Lisp" since that's meaningless as a feature unless you've got hardware support for rational storage.

  8. 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.

  9. 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.

  10. Answers... by TWR · · Score: 3, Informative
    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.

  11. Re:Does Java use Pointers? by Anonymous Coward · · Score: 3, Informative

    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

  12. 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?

  13. ARM and others do this already by theolein · · Score: 2, Informative

    ARM's jazelle core and others (do a google search or go to SUN's website) do this and supposedly it is already being implemented by mobile phone makers.

  14. Re:Java features by Anonymous Coward · · Score: 1, Informative

    How the hell did this get modded insightful? This is in no way a classloader problem and would not be helped by using a jar. The complaint was about multiple public class definitions in a _source_ file which is more a design decision to promote good programming style than anything else.

  15. Java and good design by theolein · · Score: 2, Informative

    minatrix.com

    Go there and take a look at least. It's a java gamin g site on the basis of applets. Register (horror!) and take a look at the games. There are two 3D games last time I looked and a host of single and multiplayer tetris, galaxis and backgammon knockoffs etc.

    This site is very interesting for a number of reasons:

    1.It is immensely popular. When you play a game a window of all the other users online at the time pops up, and it blew me over to be honest.
    2.The games look extremely good visually, are based on simple premises that make them adictive and are playable even on slower hardware.
    3.It works best in Explorer's MS JVM of all things. JDK1.2 Browsers are not supported well and don't even work in some cases. This raises the question as to where they will go now that MS has dropped having it's own JVM in XP?

    sumea

    Go here and see what you can do with a well written ava 3D engine that needs no hardware acceleration. Take note of the site design. It makes an impression on consumers.