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"

216 comments

  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. Interview....Just incase..... by gumbsa · · Score: 0, Redundant

    ABOUT JAVATM TECHNOLOGY An Interview with James Gosling March 28, 2002 -- It happens a few times in life -- the chance to ask a question of an exceptional person who has contributed to the evolution of technology, and as a result, has significantly influenced many people. Members of the Java Developer ConnectionSM [(JDC) program] recently took this opportunity when the JDC posted a poll, "Ask James Gosling." James Gosling, vice president and fellow at Sun Microsystems, also known as the "father" of the JavaTM programming language, created the original design of the language and implemented its original compiler and virtual machine. He is a recent contributor to the Real-time Specification for the Java platform, and is currently a researcher at Sun labs, where his primary interest is software development tools. Gosling sat down with the JDC and answered some of the many questions received as a result of the poll. Read Gosling's insight into the future of Java technology and more. JAVA DEVELOPER CONNECTION PROGRAM (JDC): If you could start again, would you make everything an object rather than the current int, boolean, byte, etc, viz-a-viz object disconnect? JAMES GOSLING: No, actually I tend to go the other way, which is to say, a way to make classes behave more like primitives, so that they can be optimized and become extremely efficient, and maybe have a way to do autoboxing so that they sort of go back and forth between being objects. There are a lot of subtle problems around autoboxing that always make me nervous, and the big one being questions around identity. JDC: The Java language adds features with every release, and this is generally good, but the whole thing is getting pretty large. If you could take a few things out, what would they be? JG: The Java language actually doesn't add very many features. The Java language itself has been very, very stable, and relatively few things have actually been added in any release. What has really gone nuts is all the different APIs that are part of [the Java 2 Platform, Standard Edition,] J2SETM. And this question, in some sense, is unanswerable. It says, if you could take a few things out of [the] J2SE [platform], what would they be? One of the tragedies we have is that we've got so many customers and everything that is in the platform is critical to a pretty large group of customers. So, for any particular person, any particular developer, not all of [the] J2SE [platform] is going to matter. But for every developer, the slice of the platform that they care about is different. It's always a constant struggle to try to avoid putting things in. And actually, if I had to pick some API that I've never used - honest I've never used the [Java DataBase ConnectivityTM] JDBCTM APIs. I've never written a piece of code that used the database stuff. So, personally, you could delete [the] JDBC [API] from [the] J2SE [platform] and it would not affect any code that I've ever written. But lots of other people would be really upset. JDC: Where do you see Java technology in the next five years? JG: I think the most interesting trend that's going on right now is the sort of really pervasive use of Java technology in all kinds of interesting places that are on the edges of the network. A lot of the infrastructure stuff that is in the enterprise has gotten really well established, but there is a lot of upcoming stuff in the way that people use Java technology in sort of embedded systems; things like cell phones, automobiles, realtime systems that are getting pretty interesting and giving people this ability to build systems in an end-to-end way that I think is getting very compelling. JDC: About realtime: This developer is building some kind of ship simulation...I am writing a ship maneuvering simulator. It should simulate the trajectory of a ship and present its view to the user in approximately real time. Do I need to use the reference implementation of the realtime spec? JG: I would say not. If you are doing simulation at all, that's not what the realtime spec is about. The realtime spec is about doing things predictably with very exact timing. And so, the hard part of this question is not the actual simulation part -- because that's not really relative to realtime -- but the display of the trajectory of the ship on the screen. And boy, every ship I've ever seen moves pretty slowly. The stuff that's in the Java [platform] realtime specification is really only important if your timing constraints are very tight: if you are down in the sort of regime where you can't tolerate delays of more than a millisecond or so. With most things that people do in the Java programming language, you can just do regular Java [technology] code on a regular Java VM, and you'll be pretty close to realtime. Certainly within seconds and almost always within tenths to hundredths of seconds, you will be accurate. Things around garbage collection can become difficult, but with the incremental garbage collector in a hot spot it's rarely an actual issue. 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? JG: In some sense that kind of thing has been the goal of the NetBeansTM [software] Project from the beginning. The really interesting thing about NetBeans [software] is that it has an API for things like UML modeling tools and cogeneration wizards to fit together in the same platform. People have done a fair amount of this in the past and been quite successful. JDC: What do you think is the most important area for students to study in order to be successful in the computer industry? Not just the Java technologies, but what other disciplines? JG: Certainly there are a lot of various things that are generally called software engineering that you can find in all kinds of books, like the refactoring books, and some of the pattern books are very good. Personally, I think one of the areas that's really important to understand is algorithms and the analysis of algorithms. There's a lot that [subject] gives you in terms of insight about how things behave. JDC: Why is Throwable not an interface? The name kind of suggests it should have been. Being able to catch for types, that is, something like try{}catch (), instead of only classes. That would make [the] Java [programming language] much more flexible. JG: The reason that the Throwable and the rest of those guys are not interfaces is because we decided, or I decided fairly early on. I decided that I wanted to have some state associated with every exception that gets thrown. And you can't do that with interfaces; you can only do that with classes. The state that's there is basically standard. There's a message, there's a snapshot, stuff like that -- that's always there. and also, if you make Throwable an interface the temptation is to assign, to make any old object be a Throwable thing. It feels stylistically that throwing general objects is probably a bad idea, that the things you want to throw really ought to be things that are intended to be exceptions that really capture the nature of the exception and what went on. They're not just general data structures. 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. end.

    1. Re:Interview....Just incase..... by Anonymous Coward · · Score: 0

      Just in case what, exactly? A natural disaster destroy the entire US, wiping out the Sun server farms, and your poorly formatted post is the only surviving copy of the interview? Do you really think Sun is going to have bandwidth problems?

    2. Re:Interview....Just incase..... by Anonymous Coward · · Score: 0

      Probably not when you wrote this, but an hour later they are /.ed. Of course sun will have bandwitch problems. Anyone would. No one puts a site up with the horsepower to sustain a /.ting every second of every day when the chances of it happening are slim to none. Did you pay to have an OC3 installed in your house just in case you post some clever little anti-windows haiku that /. decides to link to?

      /. has brought down plenty of sites from companies as large as sun. It's been talked about endlessly. (Though nothing is ever done)

      Your right about that fucked up formatting though. Shit!

  3. length by billnapier · · Score: 5, Funny
    It's short, but informative.
    Unlike the text of this submission, which is only one of those.
    1. Re:length by 56ker · · Score: 1, Offtopic

      len(text)=short
      info(text)=negigible
      He's right you know!

    2. Re:length by Anonymous Coward · · Score: 0

      Right on. Where's the snide comment from /.? Where's the biased, misinformed, and spoiler-ending comments from chrisd?

    3. Re:length by Anonymous Coward · · Score: 0

      And where's the "Interesting to see how it turns out" from Taco?

    4. Re:length by knulleke · · Score: 0

      And where's the "what do you think" from cliff?

      --
      no sig error.
  4. Decimal arithmetic by sphealey · · Score: 1, Redundant

    Correct me if I am wrong, but Java does not specify native support for decimal arithmetic. Had this been included, Java would have been in a very good position to replace all that Cobol out there. As it is...

    sPh

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

    2. Re:Decimal arithmetic by Anonymous Coward · · Score: 0

      the C# CLR does support BCD. hmmm... MS Visual Cobol anyone?

    3. Re:Decimal arithmetic by Anonymous Coward · · Score: 0
      Use the BigDecimal class. It's standard and handles any size floating point numbers.

      Sorry, floating point just doesn't cut it when you absolutely cannot allow roundoff errors. Rational numbers (which are a native data type in Common Lisp) would work out just fine, and you might be able to get by with fixed point (i.e., integer with a convention about where the decimal point goes) for some uses. But you can't use floating point if you cannot accept roundoff.

      Does Java have a rational number type?

    4. Re:Decimal arithmetic by Anonymous Coward · · Score: 0

      Well you forgot something. Just design a base class which is compatible with decimal arithmetic and inherit from it, and make a decimal artithmetic object. That is what Object Oriented programming is all about. Java, right?

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

    6. Re:Decimal arithmetic by EugeneK · · Score: 1

      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.

      Sorry, I don't get it. What does hardware support have to do with it? What about it renders rational numbers in Lisp meaningless?

    7. Re:Decimal arithmetic by Steveftoth · · Score: 1

      Sorry, I misquoted the java language, I've never used the BigDecimal class before, so that's why I don't know as much as I should before making claims about it.

      From the Java API...
      Immutable, arbitrary-precision signed decimal numbers. A BigDecimal consists of an arbitrary precision integer unscaled value and a non-negative 32-bit integer scale, which represents the number of digits to the right of the decimal point. The number represented by the BigDecimal is (unscaledValue/10scale).
      End API...
      The rounding modes, you have to select one of them, are:
      ROUND_CEILING, ROUND_DOWN,ROUND_FLOOR ,ROUND_HALF_DOWN ,ROUND_HAL F_EVEN ,ROUND_HALF_UP ,ROUND_UNNECESSARY ,ROUND_UP
      Thus, it is a fixed point math type. That can have as much as 2^16 digits to the right of your decimal point.

    8. Re:Decimal arithmetic by alext · · Score: 2

      Java does not have a built-in arbitrary precision rational type

      Nor does COBOL. Perhaps you're thinking of Scheme?

      Anyway, COBOL users that have a clue (e.g. the UK Revenue Service) use 128 bit integers for monetary amounts - decimals are, er, pointless.

    9. Re:Decimal arithmetic by Anonymous Coward · · Score: 0

      Yeah but since Java doesn't support operator overloading you'd be typing: ratSub(ratMult(ratAdd(x,y),z),j) instead of (j-(x+y)*z))

      Java really is a big bag of shit, isn't it?

  5. But what about the braces? by gughunter · · Score: 0, Offtopic

    He neither confirms nor denies that there is a secret preprocessor for Java that can take cleanly indented code, a la Python, and add braces. But I know there must be one.

    1. Re:But what about the braces? by Anonymous Coward · · Score: 0, Offtopic

      wouldn't it be trivial to code such a thing in perl?

      not that it would be a good idea...

      defining program structure with formatting rather than braces makes me gag.

      (python makes my gag.)

  6. Huh? by swagr · · Score: 5, Funny

    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.

    --

    -... --- .-. . -.. ..--..
    1. Re:Huh? by Anonymous Coward · · Score: 0

      Next week on Slashdot: Taco interviews himself


      "interviews" isn't the verb I would have used in the above sentence.

    2. Re:Huh? by tswinzig · · Score: 5, Funny

      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."
  7. Where will Java be in five years? by totallygeek · · Score: 2, Interesting
    Java has a long way to go in my opinion. I am in banking and see development wheels turn slowly. We have been begging for code to become more web-based or at least more centralized, and instead, our host systems more and more push data to the desktop, which is running some PC application.


    I myself code just about everything in a server-sided web application. I can extend this to the desktop using Java, but to date have not seen a need. I know it takes more time this way than to fire up Visual Basic and create an application that way, but I don't run Windows, and my programs work on just about any system.


    As for the imbedded market, Java has the capabilities, but I don't know if developers are going to embrace it much with licensing issues, code changes between releases, and the increasing number of non-Java tools that effectively get the job done.


    Five years? Java will be with us, and there will be more of it out there. That might really be its peak usage before it falls like RPG, COBOL and other great languages that revolutionized computer program development.

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

      What are you using for web development?

      -jon

      --

      Remember Amalek.

    2. Re:Where will Java be in five years? by Anonymous Coward · · Score: 0

      where?... sucking diick for a quick hit behind the Quickeeeeemart.

      It'll have picked up the habit after 5 years of sucking .Net's cock.

    3. Re:Where will Java be in five years? by jsse · · Score: 1

      Java applet+JDBC I'm sure. Though JDBC can be used in server side programming, applet+JDBC is entirely client side stuff, which is very slow and non-persistence. I think that's why he's whinning all the time. Poor guy, if only he'd listen to people like you who has more clue. :)

      and he's even modded to 'insightful'....gee..

  8. site slashdotted, here's the cache by Anonymous Coward · · Score: 0

    ABOUT JAVATM TECHNOLOGY
    An Interview with James Gosling

    March 28, 2002 -- It happens a few times in life -- the chance to ask a question of an exceptional person who has contributed to the evolution of technology, and as a result, has significantly influenced many people. Members of the Java Developer ConnectionSM [(JDC) program] recently took this opportunity when the JDC posted a poll, "Ask James Gosling."

    James Gosling, vice president and fellow at Sun Microsystems, also known as the "father" of the JavaTM programming language, created the original design of the language and implemented its original compiler and virtual machine. He is a recent contributor to the Real-time Specification for the Java platform, and is currently a researcher at Sun labs, where his primary interest is software development tools.

    Gosling sat down with the JDC and answered some of the many questions received as a result of the poll. Read Gosling's insight into the future of Java technology and more.

    JAVA DEVELOPER CONNECTION PROGRAM (JDC): If you could start again, would you make everything an object rather than the current int, boolean, byte, etc, viz-a-viz object disconnect?

    JAMES GOSLING: No, actually I tend to go the other way, which is to say, a way to make classes behave more like primitives, so that they can be optimized and become extremely efficient, and maybe have a way to do autoboxing so that they sort of go back and forth between being objects. There are a lot of subtle problems around autoboxing that always make me nervous, and the big one being questions around identity.

    JDC: The Java language adds features with every release, and this is generally good, but the whole thing is getting pretty large. If you could take a few things out, what would they be?

    JG: The Java language actually doesn't add very many features. The Java language itself has been very, very stable, and relatively few things have actually been added in any release. What has really gone nuts is all the different APIs that are part of [the Java 2 Platform, Standard Edition,] J2SETM. And this question, in some sense, is unanswerable. It says, if you could take a few things out of [the] J2SE [platform], what would they be? One of the tragedies we have is that we've got so many customers and everything that is in the platform is critical to a pretty large group of customers. So, for any particular person, any particular developer, not all of [the] J2SE [platform] is going to matter. But for every developer, the slice of the platform that they care about is different. It's always a constant struggle to try to avoid putting things in. And actually, if I had to pick some API that I've never used - honest I've never used the [Java DataBase ConnectivityTM] JDBCTM APIs. I've never written a piece of code that used the database stuff. So, personally, you could delete [the] JDBC [API] from [the] J2SE [platform] and it would not affect any code that I've ever written. But lots of other people would be really upset.

    JDC: Where do you see Java technology in the next five years?

    JG: I think the most interesting trend that's going on right now is the sort of really pervasive use of Java technology in all kinds of interesting places that are on the edges of the network. A lot of the infrastructure stuff that is in the enterprise has gotten really well established, but there is a lot of upcoming stuff in the way that people use Java technology in sort of embedded systems; things like cell phones, automobiles, realtime systems that are getting pretty interesting and giving people this ability to build systems in an end-to-end way that I think is getting very compelling.

    JDC: About realtime: This developer is building some kind of ship simulation...I am writing a ship maneuvering simulator. It should simulate the trajectory of a ship and present its view to the user in approximately real time. Do I need to use the reference implementation of the realtime spec?

    JG: I would say not. If you are doing simulation at all, that's not what the realtime spec is about. The realtime spec is about doing things predictably with very exact timing. And so, the hard part of this question is not the actual simulation part -- because that's not really relative to realtime -- but the display of the trajectory of the ship on the screen. And boy, every ship I've ever seen moves pretty slowly.

    The stuff that's in the Java [platform] realtime specification is really only important if your timing constraints are very tight: if you are down in the sort of regime where you can't tolerate delays of more than a millisecond or so. With most things that people do in the Java programming language, you can just do regular Java [technology] code on a regular Java VM, and you'll be pretty close to realtime. Certainly within seconds and almost always within tenths to hundredths of seconds, you will be accurate. Things around garbage collection can become difficult, but with the incremental garbage collector in a hot spot it's rarely an actual issue.

    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?

    JG: In some sense that kind of thing has been the goal of the NetBeansTM [software] Project from the beginning. The really interesting thing about NetBeans [software] is that it has an API for things like UML modeling tools and cogeneration wizards to fit together in the same platform. People have done a fair amount of this in the past and been quite successful.

    JDC: What do you think is the most important area for students to study in order to be successful in the computer industry? Not just the Java technologies, but what other disciplines?

    JG: Certainly there are a lot of various things that are generally called software engineering that you can find in all kinds of books, like the refactoring books, and some of the pattern books are very good. Personally, I think one of the areas that's really important to understand is algorithms and the analysis of algorithms. There's a lot that [subject] gives you in terms of insight about how things behave.

    JDC: Why is Throwable not an interface? The name kind of suggests it should have been. Being able to catch for types, that is, something like try{}catch (), instead of only classes. That would make [the] Java [programming language] much more flexible.

    JG: The reason that the Throwable and the rest of those guys are not interfaces is because we decided, or I decided fairly early on. I decided that I wanted to have some state associated with every exception that gets thrown. And you can't do that with interfaces; you can only do that with classes. The state that's there is basically standard. There's a message, there's a snapshot, stuff like that -- that's always there. and also, if you make Throwable an interface the temptation is to assign, to make any old object be a Throwable thing. It feels stylistically that throwing general objects is probably a bad idea, that the things you want to throw really ought to be things that are intended to be exceptions that really capture the nature of the exception and what went on. They're not just general data structures.

    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.

    JDC: You mean, Sun wants Java on a short leash, and standardization doesn't allow that? Microsoft will wipe your [deleted] with the [C#] CLR.

    JG: [delete] you!

  9. Re:*cough*karmawhore*cough* [nt] by Anonymous Coward · · Score: 0

    already capped, just providing my fellow readers with some info.

  10. How about some _real_ enums in Java? by Anonymous Coward · · Score: 0

    Not that static object cheap imitation crap that you can't put in switch statements. Or the int crap that we live with in existing Java classes.

    1. Re:How about some _real_ enums in Java? by jnana · · Score: 1

      on comp.lang.java.programmer somebody said that 1.5 will have _real_ enums, so soon enough.

  11. 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 "]".

    1. Re:Short, informative, and funny! by md17 · · Score: 2, Interesting

      Your post is funny but this is a real issue. The company I work for wantJAVA had to change all their content to be In accordance with Sun's Trademark Policy. So now our site is covered with "[TM]". We also can't even use the name wantJAVA anymore.

      From our Espresso Pricing page:

      J2EE[TM] 1.3.1

      JMS[TM], CMP[TM], JNDI[TM]

      JMX[TM] Based

      JCA[TM], JTA[TM]/JTS[TM]

      I guess they need to protect their trademarks.

    2. Re:Short, informative, and funny! by gwernol · · Score: 2

      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:

      That would make [the] Java [programming language] much more flexible.


      Actually I didn't read this as marketing speak at all. I thought they were making real technical distinctions. As Gosling pointed out in the interview, there are important technical differences between Java the language and Java the set of frameworks.

      In the quote above, for example, the speaker was talking about only the language, not the frameworks. The added words disambiguated the question so that its technical meaning was clear for those who don't yet understand the different things that the term "Java" alone can mean.

      --
      Sailing over the event horizon
    3. 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).

    4. Re:Short, informative, and funny! by Anonymous Coward · · Score: 1, Funny

      I was working at JavaSoft shortly after 1.0 came out. The trademark police had just sent a long message around about how to properly use the Java trademarks, including adding [TM] in the right places and refering to everything as "Java Technology".

      In response one of the developers sent out a spoofed message about name changes to popular parts of the platform:

      java -> java[tm]technologybytecodeinterpreter
      javacc -> java[tm]programminglanguagecompiler

      and so on.

      The powers in change where not amused.

    5. Re:Short, informative, and funny! by foobar104 · · Score: 2

      IANAL, but I have done a lot of datasheets and other marketing materials for my company. I believe the use of "TM" or the registered trademark symbol ("circle-R") is optional. You can also acknowledge trademark ownership with small print: "J2EE, JMS, CMP, JNDI, ETC, ASAP are trademarks of Sun Microsystems" or something like that.

      That's how we do it, anyway.

  12. ECMA repot? by astrashe · · Score: 1, Redundant

    Anyone got a link to the ECMA report Gosling mentioned?

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

    1. Re:Java as ECMA standard? by sheldon · · Score: 2

      I was curious about the same thing. I've done a number of searches on google and can't find anything. Found references on Sun's website to them announcing and then pulling out of the process, but no report.

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

    3. Re:Java as ECMA standard? by JamesOfTheDesert · · Score: 2
      ... somehow would manage to sabotage the integrity of the design.

      That's has to be the funniest thing I've heard all week.

      Java has some very nice featues, but design integrity is not one of them. It's supposedly an OO langanguage, but not everything is an object. Nor can you extend many basic types (such as String or Integer). You are often forced into a declarative programming style where an OO-style would be more natural (e.g., try getting the absolute value of an Integer). You can't iterate over collections without explicitly creating a superfluous, temporary Iterator object. There are numerous inconsistencies among class methods named 'add' and 'put'.

      Anyway, the bloated Java class collection couldn't do much worse under ECMA than the JCP.

      --

      Java is the blue pill
      Choose the red pill
    4. Re:Java as ECMA standard? by The+Mayor · · Score: 2

      You've got some good examples of inconsistencies. It would be nice if basic data types were objects. It would be nice if Integer and String weren't final. The iterator thing is nice, although it sounds to me like you've just read a C# book (really, a privately allocated local object isn't that awful, at least with modern garbage collectors). And the inconsistent naming of class methods is due to sloppy programming, although it would be nice if they enforced the get/set naming convention as a rule.

      However, you can't get an absolute value of an Integer? Ever try Math.abs(Integer)? It takes the absolute value of an integer. Perhaps you wanted it back as an object? Well, since int is not an object, you can always wrap it inside another Integer. Like "new Integer(Math.abs(Integer))". In both clases, replace "Integer" with your Integer object. This may not have the syntactic sugar as some languages, but its exactly what goes on under the covers if ints are not objects. Seems pretty straightforward to me.

      Of course, if Java had real generics, you could add these methods to the generic number class. Then the math functions wouldn't have to be in a separate class. But that's a different story. (yes, generics likely will be flawed when released, too, due to some design details concerning the JVM).

      --
      --Be human.
    5. Re:Java as ECMA standard? by jag164 · · Score: 1

      Pssst. Java is the language, the syntax, the specification. The classes you mentioned are part of the core library Sun provides. If they decided in the core to make String immutable, so be it. If you know anything about the VM you'll se why this is a good thing.

      As for the OO claim. Purist will say it isn't OO b/c of a handful of primatives but what real production language OO language doesn't take advantage of some primatives.

    6. Re:Java as ECMA standard? by Anonymous Coward · · Score: 0

      Smalltalk.

    7. Re:Java as ECMA standard? by mors · · Score: 1

      It would be nice if Integer and String weren't final.

      No it wouldn't. There is a very very good reason for those classes continuing to be final. If they were not final, it would be possible to create a mutable subclass of String, causing everyone to need to do defensive copies of all Strings which is given to constructors, or otherwise kept in an object.

    8. Re:Java as ECMA standard? by Anonymous Coward · · Score: 0
      Ok, so let me get this straight...

      In the same sentence you criticize Java for not allowing more natural OO-style for numerics and then you complaing about having to create an Iterator object to enumerate values in collections?

      You, sir, are a fucking idiot.

    9. Re:Java as ECMA standard? by micje · · Score: 1
      He meant you couldn't say:
      int a = -1;
      int b = a.abs();
      or even:
      Integer a = new Integer(-1);
      Integer b = a.abs();
      --

      The nice thing about standards is that there are so many to choose from. - ast

    10. Re:Java as ECMA standard? by Stu+Charlton · · Score: 2

      I would suggest there's a big difference between design integrity and purity. Java has a certain philosophy of what languages should be, where certain tradeoffs should be made, and it sticks to it. There's a significant amount of cognitive predictability in the language, it doesn't include "trap doors" to change the meaning or intent of well-known constructs such as operators, primitive (naturally "value") types, and reference/object types. One may complain that primitive types should be transparently viewed as reference types (the "autoboxing" argument), and that's a valid concern, probably to be addressed by Java 1.5.

      --
      -Stu
    11. Re:Java as ECMA standard? by JamesOfTheDesert · · Score: 2
      An Anonymous Coward bleats, "You, sir, are a fucking idiot."

      That made my day. Now I *know* I'm on the right track.

      --

      Java is the blue pill
      Choose the red pill
  14. 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

    1. Re:Related information by Anonymous Coward · · Score: 0

      those aren't links you lazy bum. that's just a bunch of urls from a guy who is too lazy to type in href...

  15. [The] editing [job] by Anonymous Coward · · Score: 5, Funny

    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.

    1. Re:[The] editing [job] by Pfhreakaz0id · · Score: 0, Redundant

      I have no [f*cking] mod points. [but] I think that it [the parent post] is really [damn] hilarious!

    2. Re:[The] editing [job] by Software · · Score: 1
      The funniest part of the brackets was that they actually got the marketroid part wrong in at least one place:
      [Java DataBase ConnectivityTM] JDBCTM APIs
      JDBC is not an acronym for Java DataBase Connectivity! I wish I could find a link to Sun's site to prove the point. But note that nowhere in their JDBC site do they say it's Java DataBase Connectivity.
  16. What Java really needs... by pyrrho · · Score: 2, Interesting

    Well, I like java, but it's still special purpose to me. It excels in ecommerce and dynamic web stuff. It may someday excel at distributed systems since it will be easy to move code around various devices on a network.

    It's not a general purpose platform or language, imho, however. But there is one thing that would make it that way... hardware VMs... which would be JavaMs, of course, since they wouldn't be virtual.

    Where are the processors that run the java code on the chip directly?

    --

    -pyrrho

    1. Re:What Java really needs... by Moonshadow · · Score: 2
      Well, I like java, but it's still special purpose to me. It excels in ecommerce and dynamic web stuff. It may someday excel at distributed systems since it will be easy to move code around various devices on a network.

      I dunno. I can do the same without having to recompile every time I make a change.

      And it's open source :)

    2. Re:What Java really needs... by bentini · · Score: 2
      Why could that possibly matter?
      Do you care if you have a Transmeta or Intel chip to run x86 ops, aside from sheer performance?
      Or put this way, so what if it's dynamically translated?

      Secondly, picojava (?) chips do this. You can buy the core from Sun, and put them on your own chips. So, they actually do exist, but because they're all stack-based and in other ways fairly odd, you could probably do better with a dynamic translator than a silicon implementation, especially once you factor in volume.
      -Dan

  17. 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
    1. Re:If you want good realtime with java... by Anonymous Coward · · Score: 0
      I may be a little biased though...

      Your disclaimer is worthless if you don't tell us exactly how you may be biased... there are different levels of bias. Do you own the company? Work there? Are an investor? Friend of someone inside? Sucking the CEO's dick?

  18. OT: Visual COBOL Lives! by FaithAndReason · · Score: 0, Offtopic

    I just couldn't let this one pass: Visual Cobol for .NET does in fact already exist, except it's made by Fujitsu, not Microsoft, and it's called NetCOBOL.

    COBOL was the first high-level programming language I learned, over 15 years ago, and promptly forgot. Ah, the memories: punch cards, batch processing, ... look at me, an Old Fart(tm) at 35...

    1. Re:OT: Visual COBOL Lives! by fanatic · · Score: 2

      You used punch cards only 15 years ago? (I'm assuming you didn't mean way "over 15 years ago".) I was in the last CS class I know of that used them at UIUC (doing FORTRAN on an IBM 360, I think) before they went TSO 27+ years ago, and I just assumed that was the last place anywhere to use that (at least in the first or second world). Bad assumption?

      --
      "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
    2. Re:OT: Visual COBOL Lives! by Anonymous Coward · · Score: 0

      Yup, bad assumption. ;-)

      In my first computer science classes (COBOL and FORTRAN) at the community college in '86, I had to create a punch card to request a compile of a program (that I had thankfully already typed in at a console.) The community college was just beginning to install PCs.

      My, how things have changed in 15 years...

      FaithAndReason

  19. Java features by ilyag · · Score: 4, Insightful

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

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

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

    4. Re:Java features by battjt · · Score: 1

      /** what are you talking about? **/
      public class NAMESPACE1 {
      static public class NAMESPACE2 {
      static public class MyClass {
      public String toString(){ return "hah!"; }
      }
      }
      static public void main(String [] a) {
      System.err.println(new NAMESPACE1.NAMESPACE2.MyClass().toString())
      }
      }

      I frequently code small standalone apps this way. Everything in a single wrapper class, just one big file.

      Joe

      --
      Joe Batt Solid Design
    5. Re:Java features by zenyu · · Score: 3

      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.

    6. Re:Java features by Jonboy+X · · Score: 1

      Why are classes like Integer so weird? It is such a pain to, for example, increment them...

      It's because they're immutable wrappers, just like String is.

      [T]here is no way to pass an int by reference.

      There's a kinda lame way: int[] intReference=new int[1];

      One (public) class per file.

      It's so you can swap implementations of individual classes in and out without disturbing the rest of a project. Given, of course, that the class signature doesn't change...

      When in doubt, quit your job.

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    7. Re:Java features by acroyear · · Score: 2
      > 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...

      Agreed, its a bad habit. Its a case of a function/method doing two or more things at once, improperly designed. If you need a return value to determine success, switch to a function that returns the changed/new value and fire an exception when failure happens. And just get used to catching exceptions.

      try {
      i = nextIntFromDatabase(i);
      } catch (SomeDatabaseException e) {
      ...
      }

      --
      "But remember, most lynch mobs aren't this nice." (H.Simpson)
      -- Joe
    8. Re:Java features by Wraithlyn · · Score: 2

      I just hate when I have to fill, say, a JTable with a million numbers... and I have to use a million OBJECTS instead of primitives because that's how TableModel works.

      Suppose I could write my own primitive model/view framework... but that kinda kills the point of using a feature rich language in the first place :)

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    9. Re:Java features by Anonymous Coward · · Score: 0

      You shouldn't have to "fill a JTable" just implement your own TableModel. That's why swing is designed how it is, the default models are only there for covenience.

    10. Re:Java features by gss · · Score: 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 "+"?

      Lots of people have told you that it's because they are imutable but nobody has mentioned why. Mainly to be thread-safe, if they were mutable and the object was referenced from 2 other objects one could change it without the other knowing, thus likely having an undesited effect. Of course in a single threaded application you wouldn't have any problems.

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

      If you are following an OO design you likely wont miss pass by reference very much

      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?

      blah, trust me having one class per file is way easier to maintain :)

    11. Re:Java features by Wraithlyn · · Score: 2

      Of course I write my own TableModels (or more specifically, AbstractTableModel). DefaultTableModel is crap. You still have to use Objects though, which was my point. If your TableModel has a million unique ints, you need a million Integer objects... no way around it.

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    12. Re:Java features by PhotoGuy · · Score: 2
      One (public) class per file. This especially bugs me with small interfaces.
      But requiring the one public class to match up with the filename makes tracking down the source for a class *so* much easier. You know it has to be in that file. If you could throw a bunch of public classes in one source file, you'd lose this advantage.
      Such a waste of screen space and disk space (each file takes up 4k on the file system)...
      Ummmm, what decade are you living in? A 120G drive, which would hold about 31 million of those 4K source files. Each million source files costs you about 15c. You must be one hell of a prolific programmer! :-)

      Ohhhh, wait a minute, you're probably buying your disk drives from Sun, where it's $1400 for a 36G drive. I guess at 18x the price, that would make a difference :-)
      --
      Love many, trust a few, do harm to none.
    13. 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.

    14. Re:Java features by dunham · · Score: 1

      2) Several times I got caught on the fact that there is no way to pass an int by reference.

      To pass an integer by reference, pass an int[1]. (This array hack is also how you get anonymous inner classes to close over locals.)

    15. Re:Java features by IceFreak2000 · · Score: 1

      I agree with your position on Integer vs. int, which is one of the things that Microsoft has got right with C#, in other words, the ability to box and unbox primitives on demand.

      // C#
      int i = 5;
      Console.WriteLine(i.ToString());

      --
      Life is like a sewer; what you get out of it depends on what you put into it...
    16. Re:Java features by GuyZero · · Score: 1

      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.

      Because they didn't read the original question any better than I did and mis-read source files as compiled bytecode files.

      Anyway, yes, it's to promote general code cleanliness and to avoid the need to have to grep through code to find the class definition you're looking for. It also makes the compiler's life easier in doing dependency checking when searching for interface definitions at compile time.

      You could design a compiler that didn't have this restriction, but why? It's not that big a deal.

    17. Re:Java features by cnock · · Score: 1
      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 think I heard them say at JavaOne this year that they are considering some type of automatic casting mechanism between ints and Integers (and analogously for other types) for a future J2SE release.

  20. hjava? by sarcast · · Score: 1, Funny

    I looked at the topic of this article and saw the usually witty one liner below that says:

    from the learning-more-about-hjava dept.

    And I thought to myself, what is this new fangled hjava that I have heard nothing about and what is there to learn?

    Then in my excitement, I realized it was just a typo...

    1. Re:hjava? by Anonymous Coward · · Score: 0

      a typo on the slashdot front page? Good Lord! What is this world coming to? Next thing you know, the ``editors'' will forget to close their html tags!

  21. Does Java use Pointers? by Anonymous Coward · · Score: 0, Funny



    I have read that one good thing about Java is that it does not rely on pointers for memory management. Is that true?

    Also, I recently have begun a C++ class and on the subject of pointers, the textbook says this:

    Never dereference the "NULL" pointer.

    Well, after reading that, I decided that -- being a total programming geek after all :) -- the VERY FIRST THING I wanted to try to do was to "dereference" this NULL pointer.

    Unfortunately, the textbook did not go into detail about how this could be accomplished -- no surprise there.

    So can someone tell me what the probably outcomes of dereferncing &NULL would be? Is it really as dangerous as the book's author suggests?

    (It occurred to me that it might have a similar effect to something that I read about a while, back -- "Tao of Windows Buffer Overflow" -- this article. )

    So does anyone here know how to "dereference the NULL pointer"?

    I would appreciate some detailed sample code.

    If I am going to dereference *NULL, I want to make sure that I am doing it the correct way.

    1. Re:Does Java use Pointers? by TheShadow · · Score: 1

      int *foo = NULL;
      *foo = 5;

      That will most likely cause your program to crash... unless you are running windows and you might get away with it... but then your computer will crash for seemingly no reason about a half hour after running the program.

      --

      --
      "What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
    2. Re:Does Java use Pointers? by Anonymous Coward · · Score: 0



      Is there a way that I could use this kind of technique to dynamically modify the way Windows operates -- to improve performance, for example?

    3. Re:Does Java use Pointers? by Tiny+Elvis · · Score: 1

      wow, you have stumbled onto the secret of fast computing:

      char *null_ptr = NULL;
      strcpy(null_ptr,"Set_System_Speed=TURBO");

      on some systems you might need to use the word LIGHTNING instead of TURBO.

    4. Re:Does Java use Pointers? by Anonymous Coward · · Score: 0

      This would in NO WAY affect "Windows". Your program would be halted and an error message about accessing invalid memory would be given. Unless your writing ring 0 driver code in which case you would get a kernel panic on Linux just as fast.

      As for random lockups you might have had something with:
      int *foo;
      *foo = 5;

      But setting the pointer to NULL gurantees that you will be halted for accessing a null pointer.

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

    6. Re:Does Java use Pointers? by Anonymous Coward · · Score: 0

      Thanks!

      I'll give that a try!

    7. Re:Does Java use Pointers? by Anonymous Coward · · Score: 0

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

      A lot of (bad) programmers call dangling pointers "null pointers", but they're all dead wrong. There's a big difference on most platforms (null pointer is guaranteed to crash a program, dangling pointer may crash or may appear to work, leading to subtle bugs).

      Getting this confused shows that somebody really doesn't understand the C memory model.

    8. Re:Does Java use Pointers? by thomas.galvin · · Score: 1

      Please, dear Lord please, let that be a joke...

  22. 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!
    1. Re:Questions left unanswered... by Anonymous Coward · · Score: 0

      "3. Why is it so much fun to pick on Java developers when there really are slower languages out there?"

      Name two.

    2. Re:Questions left unanswered... by Anonymous Coward · · Score: 0
      give Java developers apoplexy by mentioning how fast even PHP is for certain tasks?

      There's nothing slow about PHP.

    3. Re:Questions left unanswered... by Anonymous Coward · · Score: 0
      Name two.

      Python and VBA


    4. Re:Questions left unanswered... by TheAwfulTruth · · Score: 2

      VBA? Did you mean VBS? And besides, compairing scripting languages to (at least partially) compiled languages isn't really fair. Even VB is much much faster than Java. It really is the slowest compiled languages I've ever seen or used.

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
    5. Re:Questions left unanswered... by Anonymous Coward · · Score: 0

      Take a look at .NET... same principles... but faster.

    6. Re:Questions left unanswered... by Mark+Imbriaco · · Score: 1

      Back that statement up. I've seen (and run) benchmarks where Java performed significantly better than C# for an equivalent program. If you're talking about GUI response I'll let you get away with it, but if you're measuring performance in any other way I'd really like to see you back up your statement.

    7. Re:Questions left unanswered... by sethdelackner · · Score: 1

      compairing scripting languages to (at least partially) compiled languages isn't really fair.

      Which language is the scripting language here? Python? Python compiles to a byte code which is sent to a virtual machine. Everyone likes to call Python a "scripting" language but what the hell does that mean? Python has a large library, a standard gui toolkit, compiles to an intermediate code for a multi-platform virtual machine.

      So what makes Java NOT a scripting language then? Just that you can't run it interpreted? Lame distinction when the interpreter just...byte compiles!

    8. Re:Questions left unanswered... by The+Mayor · · Score: 2

      1) Java isn't slow. v1.3 and earlier of the JDK didn't implement video copies to utilize hardware acceleration (their line was "correct running first, optimization second). v1.4 fixes this. Scrolling is fine under JDK1.4. In fact, performance is pretty zippy under v1.4.

      2) Because Java is still the fastest OO language for server-side programming. Perl & PHP are faster but not object oriented. Servlets and JSPs are fast in large part due to extensive object pooling (although they've got some architectural flaws. tag libraries are my answer--all the performance of JSPs & Servlets with true separation of Model & View). And, besides, for loops that get executed frequently, HotSpot doesn't do a bad job with runtime optimization (and it's a *lot* easier than writing apache modules, the only way you'll get superior performance under Apache with C++).

      3) FUD? See #1, 2?

      4) See #1, 2.

      Look, people don't choose Java because it's the tightest language available. They do it because it's the best tool for the job. I don't know about you, but I get paid for proper design, not for optimization. I can get orders of magnitude performance improvements through proper design. This more than makes up for the loss in performance of a JIT interpreter.

      I write code faster in Java than in other languages (no, haven't tried C#...it does look like a nice language, though). They have fewer bugs. I get products to market quicker. It's slow? Then buy a new computer. Today, $500 will buy a computer nice enough to run Java comfortably.

      Java isn't the right answer for every job. However, for rapid application development and server side coding, it's a pretty damn good choice. It's slow? Yes, v1.0-v1.3 were slow with client code. Yes, v1.4 is slower with client code than C++, although it's close enough that I don't care. Java is a good language for getting things done, though. It's not pure OO. It's not perfect. But is is good at what it does. Choose the right tool for the right job.

      --
      --Be human.
    9. Re:Questions left unanswered... by Anonymous Coward · · Score: 0

      Answer to question 2:

      Java developers often lacks experience with computers in general and different languages. Instead of seeing a language as a tool and admit that each domain has room for different tools they'll go for Java no matter what. You just have to get used to narrow-minded people.

    10. Re:Questions left unanswered... by Anonymous Coward · · Score: 0

      Ohh, that's easy.

      There are only so many good developers out there. 95% of all developers are just doing grunt job anyway. Leave them with decent pay and try to keep them motivated. Pay the people with real computer experience that can do real development and make design decisions. Don't ask the Java grunts (which only used one language and done development in their very field) technical questions and expect a sane answer.

  23. I think... by MisterBlister · · Score: 0, Troll

    I think the most informative thing about this interview is that Sun is Trademark-happy! That's one of the most annoying transcripts I've ever read -- unless the guy says TM after every fucking word, leave them out of the main text and acknowledge their trademark status at the end in fine print!

    1. Re:I think... by MisterBlister · · Score: 1

      Whoever modded me down in the parent post is a beeeyotch! If I find out who you are I'm gonna bust my foot up your ass.

  24. 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
    1. Re:Java code generation by Anonymous Coward · · Score: 0

      What bugs me is a lack of tools to speed up generation of encapulated classes (and other tedious crap). C# is supposed to allow for this implicitly but that implementation has its own issues. Most Java programmers I know spend half their time writing accessors and mutators. The best free tool I could find for the job is buggy as hell.

    2. Re:Java code generation by bcaulf · · Score: 1

      The reason it's hard is that Java has syntax. You have to parse Java before you can manipulate it. Parsing Algol-like languages is not that easy to do well. This is why the Lisp family has no syntax. You write the parse tree directly. Manipulating this tree via macros is a cinch.

      Another possibility is the Smalltalk approach where everything is an object, including the class definitions and runtime behavior. Again you can get access to that parse tree and mess with it. In either language, no one would ever manually write boilerplate code for variable access.

      Did I mention that life sucks?

  25. Gosling has never used JDBC by Anonymous Coward · · Score: 0

    that's a good one!
    Less funny is this:
    how long it will take the Microsoft PR department to issue a press release using this statement out of context to bash Java?

    1. Re:Gosling has never used JDBC by Anonymous Coward · · Score: 0

      A lot longer than it takes /. to take the words of Bill G out of context and bash him!

  26. 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."

  27. Anal mice is in the house!!!!!!! by Anonymous Coward · · Score: 0

    Wassap boy-ees! Anal Mice! Woohoo!


    A to the izzo! H0t Gr17s! Yeah buddy!

  28. Sun come back please! You are in DANGER! by RadonFlux · · Score: 1, Offtopic

    I read this. What a joke. Before I am considered inflammatory, I'd like to say I like Sun, and only hope the best of them.

    Sun is deep shit. For example, the successful integration of GNU, particularly GNOME into Solaris is imperative - yet they fail to do this continually, with any measure of aptitude or efficacy.

    I run both Solaris SPARC and X86. I am appalled at how this has turned out. I used to run SunOS 4.1.4, and now I've been through Solaris from 2.6 to now.

    On top of this all is Java, whose IDEs are severely lacking. I see more Java crap out there. In fact, I work with Java now. It's such a kluge, so close, yet they missed the mark, badly. I can't explain it. I don't see why the OO programmers ever liked this stuff. Its confusing bloated, and the abstraction makes the developers dumber and dumber every day. They wave this GARBAGE COLLECTION flag all over, and they have ceased to understand what garbage collection even is.

    We have this one guy who doesn't use an IDE when using Java swing. The windowing he created is useless. It's inconsistent as hell, and it takes him forever to implement anything. I'm not a big fan of this stuff. I don't understand if he a bad programmer or not, but I though the point of this OO stuff was to recycle classes and reduce work, but it seems only to create it.

    Back to Sun. SPARC is so far behind at this point, they need to do some serious work. We benched out some Alphas, SPARCs, AMDs and Intel's here, and let me tell you, the price performance for Sun is a joke. It's laughably horrible. This Opteron will make Sun's life very difficult.

    I once found a show stopper bug in Solaris, and I couldn't figure out how to call them to report it. I remember when the Cobalt support was free, it is no longer.

    Sun is full of dead wood. I know several alumni and a few people still work there, these are my friends, I live in the Valley. We all think Sun is screwing up so bad.

    Only time will tell. I hope Sun lives. They have a tact for doing things well, or t least they did. At this point, as the stock points out, the future looks grim. They have a huge opportunity to trail blaze now that Compaq and HP will be floundering around, Opteron isn't out yet, IBM is having some problems delivering, and Dell isn't quite there just yet, almost.

    I will bet they will squander this opportunity. They will let Dell catch up, and supercede, as dell already has in the 1U department. They will let IBM finish Linux and start being the ones that define Java. They will let HP and Compaq figure out how to not go out of business. They have no good leadership.

    I think its high time Solaris be thought of as a Kernel, and GNU needs to start pouring in. Solaris x86 needs to come back. Suns forte should be free. Its not worth much to tell you the truth. The compiler frankly sucks. They should write optimizations for GCC. They should bank on GNU. This resistance to and this adherence to this completely ridiculous System V is pathetic.

    They also need to start getting the Java community more involved in making Java and stop changing the APIs every 5 minutes.

    We tried talking to sun about being a VAR, as we are already a Dell VAR. The sales and marketing people there are pathetic. They know nothing.

    I'm still in shock that they have made support for Cobalt suck badly, and that I could never tell them about that show stopping bug I found in Solaris. I know former employees who will tell you this: "I don't know how to file a bug against them when you don't work inside the company, and I worked there."

    Sun, wake up. Start making use of that GNUish thing you bought Cobalt, and start acting like you give a shit about the little people. Your disgusting arrogance has pissed everyone in the Valley off. And get a new CEO for Christ's sake. I love McNeely, but he has the WORST case of ADD *ever*. He is good at shitting on MS, but the sad thing is. Microsoft is more in the bank than Sun's whole Market Capitalization. Yes, MSFT has more in the BANK as CASH, than all the shares of SUNQ multiplied by the current price.

    Now, if that isn't a sign for Sun to get OFF their high horse and start doing WORK, I don't know what is.

    Sun's inability to execute, to be competitive and to be innovative and to be connected INTIMATLY with even its TINY customers will kill it in the end. I know I wouldn't buy SUNW right now.

    --
    Radon Flux
    1. Re:Sun come back please! You are in DANGER! by Anonymous Coward · · Score: 0

      MSFT:
      http://biz.yahoo.com/p/m/msft.html

      Financial Strength
      Current Ratio (mrq) 4.04
      Debt/Equity (mrq) 0
      Total Cash (mrq) $38.7B


      SUNW:
      http://biz.yahoo.com/p/s/sunw.html

      Share-Related Items
      Market Capitalization $26.6B
      Shares Outstanding 3.25B
      Float 3.18B


      52-Week Change -56.9%
      52-Week Change
      relative to S&P500 -49.3%

      Pretty Sad, isnt it?

    2. Re:Sun come back please! You are in DANGER! by Anonymous Coward · · Score: 1, Insightful
      Sun is doomed already. The reason: they don't have a viable business model. They've flopped back and forth between being a software company with open hardware to a hardware company with open software. Right now, they claim to have both open hardware and software. Their pushing Java and it's descendents, without a clue how they are going to derive revenue from it. Sparc, once a neat idea, is several generations behind the state of the art. Sun workstations are simply an order of magnitude behind a new x86 box running Linux in terms of price/performance. And IBM is eating their lunch in the high end server market. Personally, I can't understand why they're still in business. If they can't find something real soon that they can a) do better than anyone else, and b) actually make money doing, I'd expect them to go the way Osbourne, Kaypro, DEC, Tektronics, and all those other tech companies whose time has come and gone. (Of course, HP/Compaq may soon be added to this list if they don't figure out REAL SOON what business they are in.)


      It's the Business Model, Stupid!

    3. Re:Sun come back please! You are in DANGER! by Anonymous Coward · · Score: 0

      So, why doesn't Micro$oft simply buy Sun; if nothing else, it would be worth it just to shut Scott McNeely up!

    4. Re:Sun come back please! You are in DANGER! by Anonymous Coward · · Score: 0

      Sun Linux boss quits
      Posted: May 1 2002 at 23:18 GMT

      In the wake of Ed Zander's departure, confirmed earlier today, the management changes continue a pace at Sun Microsystems.

      Stephen DeWitt, who joined with the Cobalt acquisition, has left the company. He was responsible for Sun's Linux strategy, and is the seventh senior executive to leave in the past week. Earlier today the trap door opened under Ed Zander, who was being measured for the noose by financial analysts on Monday; while last week CFO Michael Lehmann and systems VP John Shoemaker said they'd be leaving, too.

      That's enough for an ice hockey team, plus one substitute.

      DeWitt's fellow Cobalt co-founder Vivek Mehra assumes his responsibilities as VP and General Manager for the Cobalt group.

      DeWitt made his own out through the smoke and rubble though:-

      "It's Stephen's decision, and not related to the management reshuffle," said a spokesperson.

      Tipped as a rising star by analysts, he was impressive in putting together the revised Linux strategy announced in the new year. A pocket Scott, we thought at the time.

      We note that IDG, via InfoWorld, managed to pull off this little scoop. We clocked Ed on Monday, but really wish we hadn't been there...

      NOTE to MODS: How the fuck is the parent offtopic or flamebait?

  29. Java is a step backwards by Anonymous Coward · · Score: 0

    Is it just me, or does Java seem like a NIH of C++? Especially now that .NET has shown it is possible to have generic portable virtual machines (and actually the USCD p-code machine long before that), there really is no reason to invent yet another language. This whole Java hype has probably cost the industry untold number of years redoing APIs and recoding perfectly fine code into the slower Java language. It seems Java is just C++ with all the features that Goosling didn't understand left out, like templates!

  30. Re:I think by Mikoca · · Score: 0, Offtopic
    I wholeheartedly agree with that. But unfortunately, there is still a lot of stuff like this on the web (from Eyeone):
    Evaluating Platform ... please wait... Your web browser must support java if you want to play the games on the Eye One web site. If nothing happens in a few moments, the reason is probably that java is not supported by or installed in your browser. Click here if you want to enter the site anyway
    The games are pretty cool anyway, if you have the time to lose
  31. Language Features? by Anonymous Coward · · Score: 0
    Nouns, verbs, that kinda stuff?

    "I'd like to talk about verbs. Verbs came about because people started doing stuff. It became apparent that people doing stuff could not be described with nouns, so we invented the verb. This was a radical concept. Now let me tell you about adjectives. Adjectives were my own personal desi..."

    I digress, what language features again? Java!? Java is a place and a coffee... langauge? That'll be Javanese...

  32. WIDTH="500" by Anonymous Coward · · Score: 0

    You forgot to mention the forcibly widened layout. It's so wide even Klerck didn't bother to post something.

  33. And Mind you by Mikoca · · Score: 1

    What they really mean here is this: Q: What are the minimum system requirements to play Eyeone.com games? A: Minimum requirements: Pentium/AMD 400Mhz or higher. Microsoft 95 or higher. 32 MB Physical RAM. VGA 256-color, viewed atleast at 800x600. 8bit soundcard 56 Kbps Internet access. Mouse or other pointing device Internet Explorer 5.5 strongly recommended click here to download. Java 1.2 update recommanded - click here to download. eyeone.com games are not compatible at the moment with Mac platform. we strongly suggest you to run them from the system configuration mentionned. Q: DO I NEED ANY PLUG-INS? A: No. You need a java capable browser. The game is supported only by Internet Explorer 4.0+ .

  34. my thoughts by Partisan01 · · Score: 1

    Good language/idea, bad implemtation, I think it could have been done better...Better luck next time

    --
    ahh, the egg in the basket..
    1. Re:my thoughts by Anonymous Coward · · Score: 0

      It has... It's called .NET

    2. Re:my thoughts by alext · · Score: 2

      Have you noticed that the syntax of Java is rather familiar (C++), and the semantics are not very new either (Simula 67)?

      Whereas the VM is remarkably innovative - bytecode verifier, security domains, JIT compilers, advanced GCs.

      Care to rethink those thoughts?

  35. Re:I think by Anonymous Coward · · Score: 0

    I think if Microsoft hadn't done everything it could think of to sabatoge Java, it would be a lot closer to compile once, run anywhere...

  36. Worst turing machine - ever. by Anonymous Coward · · Score: 0

    Java.

  37. 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. Re:Preemptive "faster than C" counter-troll by macpeep · · Score: 2

      A non-programmer friend asked me a while back how you can "figure out" prime numbers with a computer program. So.. In order to show him the basic idea, I "pair programmed" a simple example that just started counting from 1 and up and then for each number, looped from 2 and up to half the original number to do a modulo on them. I implemented it in Java first.. The next day, a guy at work asked me why I had done it in Java.. So.. I copy-pasted the 20-or-so line code to C and compiled it. Standard compiler flags for both Java and C.. And I ran it.. and timed searching the first 100000 prime numbers. Java was about 10% faster and I wasn't even surprised.. Why? Cause this is exactly the kind of situation where Java can be faster than C. It's very easy to do a similar test yourself. Doesn't even have to be prime numbers. Just do whatever kind of random math you want and see for yourself. With the HotSpot virtual machine, things like this get optimized like crazy by the virtual machine. If you would compile it with all speed optimization flags, inlining methods etc.. I don't know - I'm guessing C would be a bit faster, but it would still be very close.. But don't take my word for it - try for yourself.

    2. Re:Preemptive "faster than C" counter-troll by Anonymous Coward · · Score: 0

      Hahahah!! This is so funny. Please promise me to stay away from computers for ever.

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

  39. 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?
    1. Re:My Favorite Java Quote... by Anonymous Coward · · Score: 0

      I don't know, but if you wore it to Nashville, I'd kick your ass.

      Real cowboys use the lambda calculus.

    2. Re:My Favorite Java Quote... by pohl · · Score: 1

      You know, I'm no fan of country (Frank Black and the Catholics would be the closest) but it strikes me that this analogy is actually quite fitting. After all, country is the music of the hardest-working segment of America...those with the best work ethic in the nation...those that get the job done. Moreover, its a segment of America that is largely invisible to the masses. Just as it's not often you see a farmer or cowboy, you don't see a lot of shinkwrapped java applications -- yet it's powering the engines of businesses everywhere. I guess where the analogy breaks down is that there are lots of jobs to be had writing Java code, but you don't see many openings for pedal-steel guitar players. Plus there are more hot babes in Country.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  40. Re:Sun come back to BSD by Anonymous Coward · · Score: 0

    Sun, you made a big mistake integrating SVR4 into SunOS. Now you're about to make another big one integrating GNU shit into your product line. Come back to the one true BSD way.

  41. You work for Sun, dont you? by Kenneth+Stephen · · Score: 1, Flamebait

    The real answers are :

    1. So that Sun (and IBM) can sell more hardware in order that Java developers can even run a "Hello World" type program.

    2. This is human nature. The Catholic church behaved the same way when Galileo pointed out the error in their doctrine.

    3. Everyone has their own reasons. I like picking on the unthinking masses.

    4. Thats a bit like asking "If you could make a perpetual motion machine...."?

    --

    There is no such thing as luck. Luck is nothing but an absence of bad luck.

  42. Don't see any cost or license information there by HiThere · · Score: 2

    It may be on the site somewhere, but I sure didn't find any cost or license information at your site. Not a promissing start from my viewpoint.

    Also, it wasn't clear whether or not it was entirely aimed at embedded systems, or whether it supported some kind of Swing-equivalent library. Or, perhaps Swing was what you were supposed to use. But would it work? You mention that you have your own JVM, but you don't say anything about "binary compatible" etc., and even awt contains a lot of compiled code.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
    1. Re:Don't see any cost or license information there by odysseus_complex · · Score: 1

      Hmm, that's funny that you couldn't find information for your questions, because with a minimal amount of digging (ie a couple of clicks) I found http://www.newmonics.com/perc/info.shtml and http://www.newmonics.com/perc/perc.shtml, both of which give answers for your queries. Since you didn't, PERC is a JDK 1.3 compatible VM, supports JNI, and does not support graphics at the moment. Supported platforms are VxWorks, VxSim, OSE, OSE Softkernel, WinNT, Linux, and RTX etc. (The overabundance of embedded OSes should be a clue as to where PERC is aimed at.)

      As to pricing, I checked a few large corporate sites (WindRiver, Nortel to name) and I did not find cost/license info, which is common for products not targeted for Joe Average Consumer. Instead, there was a "contact marketing for more details" prominently posted.

  43. Wasn't the real father of Java... by newbob · · Score: 1
    Wasn't the real father of Java Patrick Naughton

    Funny how Sun revises its history after all their execs get busted for raping 13-year-old girls!

  44. 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
    1. Re:Does anyone understand... by pohl · · Score: 2, Insightful

      I don't understand it, but I'm not going to let that stop me from responding. It seems to me that OSS and Java are natural allies. It's the only language that I know of that would allow me to be a debian user in the middle of a business that loves nothing more than the phrase "we're a windows shop". I can develop on linux, use the operating system that I love, and deliver on anything that we need to. While there are some OSS languages out there that provide the the WORA property, they're lacking in various things like the bytecode delivery model, the security model, the J2EE model for scaling up applications. Plus the weight of a diverse and active industry helps to sell it to management. Maybe those who bash it feel that they are safely out of the woods with respect to Microsoft's control of the industry, but I for one don't feel safe yet.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    2. Re:Does anyone understand... by Anonymous Coward · · Score: 0



      Oh, what... and you're a .NET expert now too? .NET has so many improvements over Java and the JVM... just look at Session Management, User Controls, Server Controls, VS.NET, 25+ languages, easy as f*ck Drag'n Drop implementation.

      Where do you think all the programmers went that were developing Microsoft's Java in '93 when they got sued out of Java... right onto the .NET project.

    3. Re:Does anyone understand... by alext · · Score: 2

      Ignore it at your peril.

      But how many people appreciate that Linux is in peril?

      Right now, cross-platform code isn't a major issue because

      a) embedded or non-x86 Linux isn't that big yet
      b) people are used to compiling source

      but neither of these assumptions will be true in ~4 years. Linux will need a VM, but only Dotnet/Mono and Java will be available, and with the ridiculous hype that Mono is getting, MS could well be in drivers seat. Not a pleasant prospect...

    4. Re:Does anyone understand... by dvdeug · · Score: 2

      Why do you think that we need a VM for cross-platform code? Debian compiled almost everything that's going to be released with Woody on 11 different architectures. Even if this is a problem, the solution has more alternatives than Mono or JVM; for one, it would be simple to toss a PowerPC, or Alpha or MMIX or whatever emulator into the kernel, and run Linux binaries compiled for that architecture.

    5. Re:Does anyone understand... by alext · · Score: 2

      Because Debian is the exception, not the rule.

      When I get some little music toy app for my PDA, you can bet it's not going to be pre-compiled for all existing platforms. 11 is the starting point, it's going to get a lot more diverse from now.

      I really don't think kernel emulators are in the running here - PDAs are constrained enough as it is without the overhead of x86 emulators. Nokia and other phone makers are setting the trend for small devices and compiled binaries are not part of the picture.

    6. Re:Does anyone understand... by Anonymous Coward · · Score: 1, Insightful

      It wasn't that long ago that Sun refused to port their tools and the JVM to Linux.

    7. Re:Does anyone understand... by dvdeug · · Score: 2

      When I get some little music toy app for my PDA, you can bet it's not going to be pre-compiled for all existing platforms

      Your PDA may run Linux, but I seriously doubt it runs a full GNU/Linux distribution. You're going to be running a completely different set of apps.

      11 is the starting point, it's going to get a lot more diverse from now.

      Why? It's ported to pretty much every chip in production that can run it.

      PDAs are constrained enough as it is without the overhead of x86 emulators.

      But somehow they can deal with a JVM emulator, eh?
      (Note I never mentioned x86; there are many chips Linux runs on it would be much nicer to emulate.)

      Nokia and other phone makers are setting the trend for small devices and compiled binaries are not part of the picture.

      Then GNU/Linux is out of the picture for them. Linux may work, but it's not going to look like any Linux you use, nor is going to run the same programs.

    8. Re:Does anyone understand... by alext · · Score: 2

      >. You're going to be running a completely different set of apps.

      >>11 is the starting point, it's going to get a lot more diverse from now.

      > Why? It's ported to pretty much every chip in production that can run it.

      Nonsense. First you talk about porting apps, then about porting the OS. It doesn't matter how widely the OS is ported, it's the apps that will be separately distributed that count.

      Yes, I can confirm that PDAs and phones are already running JVMs. I can also confirm that no PDA or phone anywhere is running a CPU emulator.

      I won't bother attempting to convince you that PDAs will be running the same programs as mainstream Linux as you can find that out for yourself with a quick search in Slashdot.

      Don't bother coming back with more airy-fairy arm-waving - I'm not interested in vacuous assertions and I'm pretty sure no one else is.

    9. Re:Does anyone understand... by Stu+Charlton · · Score: 2

      Look at J2EE and you'll see most of the "innovations" in ASP.NET are really just bringing it up to par with the base line J2EE implementations out there. Clustered session management is old hat. User & server controls have been out in Java since 1999 with JSP tag libraries. Ever try writing a custom control in .NET? See you in 2004. It's not easy, compared to tag libs.

      As for drag 'n drop, I'd really like you to build a production website with drag 'n drop. Really. Graphic designers everywhere are hanging up their BBEdits forever as we speak.

      --
      -Stu
  45. Re: what are you using for web development? by dondiego · · Score: 1

    HTML

  46. What the heck is autoboxing? by trenton · · Score: 2
    I consider myself a pretty good Java guy. I also keep up on the theory of programming languages. Gostling mentions "autoboxing," something I've never heard of. Anyone know what that is?

    (Yes, I can use Google, but that didn't seem to be much use. Oh, but did find this googlewhack while trying to get info.

    --
    Too big to fail? Does that make me to small to succeed?
    1. Re:What the heck is autoboxing? by Anonymous Coward · · Score: 0

      Auto-boxing... is automatically boxing some variable or value.

      Try looking up 'boxing' and 'C#'. C# has a feature called boxing. Its a handy way of accessing an object's value... like

      myObject.someValue

      You implement this with Get and Set in C#.

    2. Re:What the heck is autoboxing? by Wraithlyn · · Score: 2

      I don't know for sure, but if I had to make an educated guess, I'd say he's talking about dynamic primitive-to-object conversion, as needed, or possibly vice versa (or both).

      This is similar to how Javascript handles strings... Javascript has both a string literal type and a String object type.

      var lit = "my string literal";
      var obj = new String( "my string object" );

      Now the cool thing is, lit isn't an object, but you can still call methods on it from the String class, like lit.substring(4) and stuff, just like you could with obj. This is because Javascript automatically creates a temporary object for the literal (ie, autoboxing?)

      Once again, let me state I don't know for sure what the term actually means, I've never heard it either. But from the name itself and the context of the discussion, that's what I'd guess he's talking about.

      Anyone have more of a clue than us?

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    3. Re:What the heck is autoboxing? by Anonymous Coward · · Score: 0

      Boxing takes a piece of data on the stack (like an int) and wraps it in an object (eg Integer) so it can be put on the heap.

      .NET does autoboxing, so you can write the following in C#:

      int x = 5;
      object o = x; // autoboxes to an Int32 object
      int y = (int)o; // unboxes to an int again

      This kind of functionality would be nice in Java, as would something similar to .NET's struct datatypes -- which I think is what Gosling's talking about when he mentions primitiveness.

      In fact, some clever research compilers for Java do something called object inlining which attempts to figure out ways to transform objects into structs automatically, but I'm not sure if this happens in any commercial implementations yet.

    4. Re:What the heck is autoboxing? by TheVet · · Score: 1

      I think what gosling meant by autoboxing is a way for the VM to convert between primitives and objects transparently. So an int can be used as an Integer and an Integer as an int without the programmer having to do new Integer(intValue) or Integer.intValue() or whatever.

      Such a feature does not exist in Java and I feel it would be useful if implemented correctly and carefully.

    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?

    6. Re:What the heck is autoboxing? by sethdelackner · · Score: 1

      So, would it be accurate to simply call "autoboxing" automatic type casting? More words, but universally understood already. Sure, you are casting between things that are totally incompatible normally, but that is the same issue with float to int casts.

    7. Re:What the heck is autoboxing? by TummyX · · Score: 1


      int x = 5;
      object o = x; // autoboxes to an Int32 object
      int y = (int)o; // unboxes to an int again


      Actually, it doesn't 'autobox' into an Int32 object. Int32 is an object, but it is a value type. Int32 is the SAME thing as int in C#. What it does is automatically box it into an internal type created by the CLR. That's why you can box any kind of struct, not just ints or doubles.

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

    9. Re:What the heck is autoboxing? by Aapje · · Score: 2

      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.

      That's already part of Hotspot:

      "A generational collector takes advantage of the fact that in most programs the vast majority of objects (often >95%) are very short-lived (i.e. are used as temporary data structures). By segregating newly created objects into an object "nursery", a generational collector can accomplish several things. First, because new objects are allocated contiguously in stack-like fashion in the object nursery, allocation becomes extremely fast, since it involves merely updating a single pointer and performing a single check for nursery overflow. Secondly, by the time the nursery overflows, most of the objects in the nursery are already "dead", allowing the garbage collector to simply move the few surviving objects elsewhere, and avoid doing any reclamation work for dead objects in the nursery."

      Here's an in-depth explanation with pictures.

      --

      The Drowned and the Saved - Primo Levi
    10. Re:What the heck is autoboxing? by Steveftoth · · Score: 2

      Not really, this is not the same thing as what I'm talking about. Well, it could be depending on how they implement it. They still have to do some sort of mark and sweep algorithim, which is not fast.

      I'm saying that they change the class file format. Such that all methods have their parameters marked. So you have a method
      myMethod ( Rectangle r );
      now the coder does nothing, but during compile time , the rectangle r is tracked, and determined if r is only used locally, if the code keeps a reference to it, or passes the reference to a function that then keeps a reference to it.

      If the reference is never actually stored ( the reference is only used locally) then the object is marked as possiable for stack creation.

      In your code, if you create an object, it is by default created on the stack, unless it is determined by the compiler that the reference to the object is stored somewhere in your code.

      The object would be destroyed when it goes out of scope.

      This would speed up and reduce memory consumption of the VM IMO. Firstly , it would get rid of the huge penality for temporary object creation in loops. Usually this can be avoided by clever programming, but not always. Secondly, you can get rid of the static 'rendering objects' that many Swing components use. Rectangles being probably the biggest offender of this policy. Many times you just need a simple data structure in a loop ( for rendering to the screen) and you don't want to call a function to create it everytime. Or what about in a http server, you end up creating the same object over and over, the penality for this could be reduced.

      AFAIK, lisp does this already so this is not voodoo science we are talking about. What sucks about this approach is that changes to the JVM bytecode are required. Since object cannot be create on the stack.

    11. Re:What the heck is autoboxing? by Steveftoth · · Score: 2

      One more afternote, the whole idea here is to NOT do a GC. The eden area is a great idea and should not go away, actually I really like it. I'm trying to attack the problem from the other side, instead of making the GC smarter. Make it so that the GC never even sees these temporary objects.

    12. Re:What the heck is autoboxing? by Aapje · · Score: 2

      They still have to do some sort of mark and sweep algorithim, which is not fast.

      A 'complete' mark and sweep is not fast (one that doesn't miss anything). Eden uses a fast, but incomplete algorithm. That destroys all the easy temporary objects (and moves the rest to long term storage which gets the full GC). I don't see why your approach would be so much faster.

      --

      The Drowned and the Saved - Primo Levi
    13. Re:What the heck is autoboxing? by Steveftoth · · Score: 2

      This would be faster because work would have to be done at compile time to figure out if the object should be created on the stack or the heap by the VM. Basically trading ease of compile for runtime performance, which in my opinion is always a win.

      I don't care how fast you say this 'eden GC' is, there is no way it's faster then this solution, cleaning the stack is so fast. The live section of the stack has a MUCH higher chance to be in the cache, while eden starts out being megabytes large. So no matter what you are going to have page faults with eden. With the stack approach, objects simply go out of scope, no thinking on the vm is required to determine if an object is no longer live. Just like with a primitive.

      The only problem with this solution is that you have to have a way for objects to be promoted from the stack to the heap in the case of classes that change after you compile a class that depends in it.

      The whole reason for this argument is that time and time again, people want speed, and if speed can be added through VM changes only, and maybe a recompile, then why not do it?

  47. two words by pohl · · Score: 1

    security model

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  48. Two by SuperKendall · · Score: 1

    C and C++? (see counter troll above instead of responding).

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  49. Re: What are you using for web development? by Synn · · Score: 2

    PHP

  50. better codes by The+Last+Post · · Score: 1

    Hello my friend! I was wanting to help you better write code in the Java programming language.

    "try getting the absolute value of an Integer"

    int x = y;
    if(x < 0)
    x *= -1;
    System.out.println("The absolute value of x is " + x);

    "You can't iterate over collections without explicitly creating a superfluous, temporary Iterator object."

    ArrayList arl = arl2;
    for(int i=0;i<arl.size();i++)
    {
    String s = (String)arl.get(i);
    System.out.println(s + " was retrieved without the use of a superfluous, temporary Iterator object.");
    }

    As you could see, these codes are easy to do. If you are having more questions then ask.

    1. Re:better codes by bnenning · · Score: 2
      String s = (String)arl.get(i);


      Which is fine until you get handed a linked list instead, and your algorithm goes from N to N^2. I like to write iterators like this:


      for(Iterator i=list.iterator(); i.hasNext(); ) {
      SomeClass obj = (SomeClass)i.next();
      // do something clever
      }


      So there is a temporary iterator object, but it's only in the scope of the for loop so it doesn't really bother me. I'm actually more annoyed with the cast, hopefully the generics in 1.5 will take care of that.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    2. Re:better codes by sethdelackner · · Score: 1

      You do realize he was discussing the difficulty of operating on Integer objects? You can't change them, you have to get the value out, then process it, then stuff it into a new Integer object.

      Somewhere in the interview Gosling says that he doesn't regret making int, float, etc scalars instead of real objects. He just regrets the object versions being inefficient. Well I wanted to drive a pen through something when I read that. Just TRY doing elegant integer lists with in-place modification of the values. You either make a mathematically second-class citizen object that represents an int, or you make a list of one element int arrays. Anyone have a better way?

    3. Re:better codes by chrisknoll · · Score: 1

      Getting a reference to an iterator from the list does NOT always make a new object, in fact, whenever I make a class that returns iterators, I just ahve the class implement the iterator interface and return itself when clients call iterator(). Saves an object creation (but obviously memory needs to be allocated to keep track of the current iterator!) -Chris

    4. Re:better codes by plumby · · Score: 1

      If you want to help people write better code then I'd suggest that you don't use variable names like arl and arl2.

    5. Re:better codes by Anonymous Coward · · Score: 1, Insightful

      "try getting the absolute value of an Integer"

      int x = y;
      if(x 0)
      x *= -1;
      System.out.println("The absolute value of x is " + x);


      Call me old fashion, But I just use the java.lang.Math.abs(int) methods myself.
    6. Re:better codes by Anonymous Coward · · Score: 0

      Return itself?! What do you do when the user tries to have multiple iterators on the same container?

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

    1. Re:What Java Is and Isn't by gss · · Score: 2

      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 beg to differ

    2. Re:What Java Is and Isn't by thomas.galvin · · Score: 1

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

      OpenGL is the industry standard, and I just downloaded the Java bindings for it about a week ago. It relies on JNI, so there is some platform-dependant code, but so far, I like what I see.

      you can get it at www.jausoft.com/gl4java/; LGPLed, to boot.

  52. Yes, please! Dish on the ECMA report! by Anonymous Coward · · Score: 0
    Somebody please dish the poop on this ECMA report!

    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.

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

  54. 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.)

  55. "messy crash" by Anonymous Coward · · Score: 0

    Just so you know, if you attempt to dereference the null pointer in C, you will also get a well-handled exception which either launches an error routine defined by the programmer or causes the program to terminate politely. It's called a fucking catchable fucking signal, which can be fucking caught by fucking signal().

    1. Re:"messy crash" by Lord+MJ · · Score: 1

      "Well handled.." ha

      First of all runtime exception terminations require no special code by the programmer. The VM will simply raise the exception and inform the programmer of the the exact line that the error occured.

      With C, C++, all using Signal does possibly what kind of things that the operating system is about to kill you for, and gives you the chance to exit will your head still on your shoulders, before the operating system goes ahead and decapitates your program.

    2. Re:"messy crash" by Anonymous Coward · · Score: 0

      You're assuming too much.

      Signal() is all nice and all, but it has nothing to do with C.. that is a feature of UNIX and UNIX-like OSes. It is not present outside of UNIX, and it is certainly not part of the C language.

      If everyone used UNIX or windows nt, pointers vs references would be much less of a problem.

      Of cours,e UNIX does nothing to prevent mem leaks.. :)

    3. Re:"messy crash" by big_hairy_mama · · Score: 2

      With C, C++, all using Signal does possibly what kind of things that the operating system is about to kill you for, and gives you the chance to exit will your head still on your shoulders, before the operating system goes ahead and decapitates your program.

      You are obviously a retard. You can try { ... } catch(NullPoinerException npe) { ... } and recover completely from dereferenceing a null pointer. Furthermore, you can recover and remain in the same block of code, whereas handling a signal requires registering a different function. And if you want, you can catch(Throwable t){} and recover from *anything* if you so wish.

      I'd call that well handled... or maybe you were being sarcastic?

  56. That's bullshit: Sun is their own worst enemy by Anonymous Coward · · Score: 0

    Oh come on, that's bullshit. Microsoft had no control over the way Sun handled Java, which was horrible. Sun fucked Java up every step of the way, no thanks to Microsoft. The fact that Microsoft benefited from Sun's ineptitude doesn't mean it's Microsoft's fault that Sun was foolish.

  57. My Wish List for Java by OzJuggler · · Score: 1
    /* Personal wish-list for Java:
    1. Use := instead of = for assignment. Allow = for backwards compatibility.
    2. Add enumerated types strictly for comparisons with other members of the same type.
    3. Provide more string manipulation routines for StringBuffers. (RPAD, TRANSLATE, etc)
    4. Make ResultSet.isBeforeFirstRow() and ResultSet.isAfterLastRow()
    both return true when there are no rows in the result set.
    5. Allow ResultSets to tell you how many rows there are!
    */
    I only had to copy and paste the above wish list from the middle of one of my Java sources. :-)

    The fact that Gosling has never used the JDBC classes goes some way towards explaining some of the brain-dead "features" of those classes, such as the two main glitches outlined above.
    -OzJuggler

    --
    Life's a buffer; you can only get out of it what you put into it! C:-)
    1. Re:My Wish List for Java by Anonymous Coward · · Score: 0

      Not to say your a flaming idiot or anything... but := instead of =... what the f*ck are you thinking!

      And as far as your resultSet is concerned... define your own classes. It'll take you 5 minutes to extend an existing class to do what you want.

  58. Java Precedence of operators by Anonymous Coward · · Score: 0


    array[i] = i++ + ++i;

    is there a strict rule for how this should be evaluated?

  59. SMALL CORRECTION by macpeep · · Score: 2

    "Copy-pasted" and then obviously modified it so that it would compile in C - such as not making a class out of the whole app, not passing a String[] to main(), not having main be "static" etc. :) Nothing essential such as the actual algorithm and math code was touched, however.

  60. Hey Taco by Compuser · · Score: 2

    What about /. interview of Gosling? Surely people
    here have Java related issues and questions...

  61. Improving AWT by Gath · · Score: 1

    They didn't improve AWT because it is just that bad. Every control is heavy-weight, represented by a native window. Put six buttons in your applet, it looks like one window, but it's seven. The only way to fix it was a redesign.

    Swing is alot better, every control is light-weight; they are all just painted in the root container. They designed Swing to be as much like AWT to the programmer as possible.

    You can find more information at http://java.sun.com/j2se/1.3/docs/api/index.html

    Just look for javax.swing, it has a fairly good explanation.

    1. Re:Improving AWT by theolein · · Score: 1

      I know this. But this is exactly the same response SUN has always given. Please, I know that for instance creating multiple text fields together to form a table bogs down the system,but why didn't they just *make a table element*? Swing is fine on todays fast machines, but at that crucial time SUN made Swing practically useless for client application development and the ball slipped out of their hands.

      They never looked at what the consumers were using or what the consumers wanted. I suspect that this is a legacy of SUN's involvement with the high end server market where they just don't have teams that analyse what the consumers want. MS does or at least seems to do so.

  62. Old news by corgi · · Score: 1

    That interview has been published in March. So it's not NEWs any more, methink.

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

  64. erm... Swing has table elements like that by Gath · · Score: 1

    Sun has given that response because it is correct. If they hadn't listened to what people wanted, we'd still be using AWT.

    You can use most, if not all, controls in JTables. For example: you could use text fields, buttons, or combo boxes as table cells. You can also extend AbstractTableModel to create a custom table model, a very useful feature.

    Creating a JTable like the one you described is quite easy.


    Jtable table = new JTable(
    new String[][]
    {
    {"one","two","three","four","five","six"},
    {"1","2","3","4","5","6"},
    },
    new String[] {"Col1", "Col2", "Col3","Col4","Col5","Col5"}
    );

    Then just add it to the applet or application. You would need to make a custom table model to be able to acctually edit the fields, but those are pretty basic.

    1. Re:erm... Swing has table elements like that by theolein · · Score: 1

      I hate to say this but it isn't really the point. Swing is fine on meodern machines, but on machines of the time (200MHz x86) it was as slow as molasses. This was what caused so many companies *not* to develop client side applications in Java.

      I think Java's position would have been better off today if SUN had simply included an AWT based Table element for example, which was more flexible than that which was available at the time.

  65. Re: What are you using for web development? by Anonymous Coward · · Score: 0

    WebObjects, JDBC, PHP, HTML, Javascript.