Slashdot Mirror


Interview With the Father of Java

Eh-Wire writes "The Globe & Mail interviews James Gosling after a keynote talk to Sun developers in his home town of Calgary. His thoughts and comments regarding the 'dead end' oil industry, disconnected Telco strategist, and unleashing 'creative weirdoes' makes for an interesting read." From the article: "Java is evolving. It's sort of embedded in the social experiment that is the Internet. There's been tremendous adoption of Java for building large-scale enterprise apps. It's worked tremendously well there. There's been all kinds of growth lately in cellphones and more and more embedded systems. It's all about making the environment around us more intelligent."

107 comments

  1. As far as Java goes by Anonymous Coward · · Score: 0

    As far as Java goes, I would take anything this guy says with a grain of salt. This guy has no idea what he is talking about when it comes to Java.

  2. No wonder the Internet is slower... by eviloverlordx · · Score: 2, Funny

    It's sort of embedded in the social experiment that is the Internet. There's been tremendous adoption of Java for building large-scale enterprise apps.

    I was wondering why everything online has been slower lately.

    --
    'Loose' is when your pants are three sizes too big. 'Lose' is when you misuse 'loose'.
  3. ...Or not. by dolphinling · · Score: 3, Insightful
    --
    There are 11 types of people in the world: those who can count in binary, and those who can't.
  4. Java? I thought it was PHP! by YetAnotherLogin · · Score: 2, Funny

    And here I thought that James Gosling invented PHP.

  5. I know that's near Springfield, by farmhick · · Score: 1

    ...but what state is Calgary in?

    --
    I have to stop wasting so much time reading Slashdot. It's interfering with my crystal meth addiction.
    1. Re:I know that's near Springfield, by flamesrock · · Score: 0

      Alberta, Canada
      Google Maps

    2. Re:I know that's near Springfield, by Rick+BigNail · · Score: 1

      In case you really don't know, it's in Texas.

      Sorry, it is Texas.

  6. Re:Java is great for enterprise apps by Anonymous Coward · · Score: 0

    Blame Canada!

    Expat living in SoCal.

  7. My eyes!! by Umbral+Blot · · Score: 0, Offtopic

    Slashdot just went pink! ARRRRGGGGGHHHHHHH! I can't see! ... bastards

    1. Re:My eyes!! by Dolphinzilla · · Score: 0, Offtopic

      Not that there is anything wrong with that.....

    2. Re:My eyes!! by ONOIML8 · · Score: 1

      WTF?!?!?!

      And what's this about ponys?

      --
      . Quit playing Monopoly with Bill. Switch to one of many non-Microsoft products today.
    3. Re:My eyes!! by Fanboy+Troy · · Score: 1

      "OMG!!!Ponies!!!"? CoyboyNeal, am I missing something? :)

    4. Re:My eyes!! by rippofrank · · Score: 1

      Why is the main page pink? damnit

    5. Re:My eyes!! by Anonymous Coward · · Score: 0

      is the site cracked? i cannot think of a reason for slashdot getting pink.

    6. Re:My eyes!! by Hakintosh · · Score: 1

      "And Australia's all down there like 'WTF?'"

      Seriously though, whats with the pink???

      "The goggles! Zey do nussing!"

    7. Re:My eyes!! by shawb · · Score: 1

      Haxorz? Must be hte Haxorz! Oh... crap. We're getting this stuff a day early. Not again.

      --
      I'll never make that mistake again, reading the experts' opinions. - Feynman
    8. Re:My eyes!! by Anonymous Coward · · Score: 1, Insightful

      april fools joke its april first in GMT

    9. Re:My eyes!! by stand · · Score: 1

      I believe it is now April 1 in GMT. Is that related? Don't know.

      --
      Four fifths of all our troubles in this life would disappear if we would just sit down and keep still. -C. Coolidge
    10. Re:My eyes!! by Anonymous Coward · · Score: 0

      All your ponies are belong to us? Wtf mate?

    11. Re:My eyes!! by Anonymous Coward · · Score: 0

      The goggles! They do notpink!

      Sorry!

    12. Re:My eyes!! by Umbral+Blot · · Score: 1, Offtopic

      Logically I think the pink if because it just turned April 1st GMT, although I may have that backwards. In any case it also makes it near impossible to read people's user names against a gray background, so the majority of you have no idea that I am replying to myself.

    13. Re:My eyes!! by Carrierwave · · Score: 1

      Shoot. I wish I thought of that first.

    14. Re:My eyes!! by Anonymous Coward · · Score: 0

      It's an april fools joke.
      Check out the source code. They point to a stylesheet called slashdot-fools.css which is causing everything to be pink.

    15. Re:My eyes!! by Anonymous Coward · · Score: 1, Insightful

      It's already April 1st in Greenwich.

    16. Re:My eyes!! by xcomputer_man · · Score: 1, Offtopic

      Nah, that ain't nothing. What will really cook your sushi is when Slashdot comes up with a dupe of this prank tomorrow morning!

    17. Re:My eyes!! by balthan · · Score: 1

      I hate April 1st.

    18. Re:My eyes!! by tabby · · Score: 1

      wheeee!1!1!

      Can I have this as a default? Pleeeaaaasse!?1?!!?

      --
      I've experiments to run, there is research to be done on the people who are still alive.
    19. Re:My eyes!! by phantomfive · · Score: 1

      Can I have this as a default? Pleeeaaaasse!?1?!!?

      you probably can if you use the slashdot-fools.css stylesheet. I imagine they will keep it online. Or you might want to just download it and save it.

      --
      Qxe4
    20. Re:My eyes!! by cybercobra · · Score: 1

      Yeah, who vomited bubble gum all over the place? ...At least, I *hope* that's bubble gum.

    21. Re:My eyes!! by unforkable · · Score: 1

      DAAAMMMMNNIT!!!!!!
      I cheated on my girl friend (she was offline so I talked to another chick on Messenger), I'm sure she hacked Slashdot!!!
      ENOUGH ! You shouldn't touch my Slashdot! i'm gonna break up.

  8. Hehehhehe... by technoextreme · · Score: 1
    Slashdot just went pink! ARRRRGGGGGHHHHHHH! I can't see! ... bastards
    Looks like CowboyNeal's girlfriend just learned html. Score.
    --
    Ooo man the floppy drive is broken. No wait. The computer is just upside down.
  9. April fools on GMT time? by lostngone · · Score: 1

    What did someone accidentally use the GMT clock to set off the April fools script?

    1. Re:April fools on GMT time? by Anonymous Coward · · Score: 0

      Thanks for letting me know about that. I better stop reading /. right now. I am watching the last season of the Xfiles, and I don't find out what happens to the Lone Gunmen in the next episode.

  10. As an Australian... by Farmer+Tim · · Score: 1

    ...I'd just say you're exactly right; my precise reaction was "WTF!".

    More pink than you'd see in a Hustler pictorial of Barbra Cartland (and that's a lot of pink). And Babs nude would probably be prettier to look at...yes, it is that bad...

    --
    Blank until /. makes another boneheaded UI decision.
  11. So? Get PrefBar extension! by antdude · · Score: 1

    Right here and install it in Mozilla/SeaMonkey/Firefox. Then disable colors and go to /. or refresh the home page. :) Or just use any text Web browsers!

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  12. Re:why is java soo dead ? by d3ik · · Score: 2, Insightful

    why aren't any of the cool and useful websites being created with java on the back-end ? Honestly, I believe the problem here is more with Java developers than Java itself. Java developers are constantly trying to overwrite their code (as in writing more than necessary, not saving over an existing file:). Instead of using the KISS mentality, everything has to have an XML configuration file and object factory. Java devs are typically very black and white, code to the requirements, check off the features on their checklists, etc. On the other hand, Google has said they use Java for a number of applications. It's a great tool in the right hands. why has java been relegated to the enterprise space only ? A number of reasons... PHBs feel more comfortable with a "proven" solution with "corporate backing" versus all that pony tail and birkenstock hippie open source stuff (kidding!). Also, the creative types that typically make the 'innovative' web applications usually shy away from the corporate stigma that Java has. See the above comment. Java developers are typically viewed as corporate shills. why is java almost dead on the desktop ? I'll concede that this is due to Java itself. AWT sucked, Swing is marginally better... SWT seems to be the way to go but since Sun didn't invent it they're not going to back it. what are you smoking Gosling...when you say that java is still evolving ? Do you own a newer cell phone? Does it have cool features like text messaging and possibly web browsing? If so, your phone more than likely runs J2ME.

  13. IT BURNS!!! by Evilhomer2300 · · Score: 0, Offtopic

    ummm guys, its april fools, NOT Single-awareness-day!! FIX THE DAMN PAGE, PLS.....Its burns....

    --
    Well if it isn't the leader of the wiener patrol, boning up on his nerd lesson...
  14. Slashdot hacked? by forkspoon · · Score: 0

    Check out the cool pink frames. Or is it a self-inflicted April Fool's wound?

  15. OMG!! Ponies! by Limburgher · · Score: 0, Offtopic

    But, where are the ponies? I want my ponies! I see no ponies!!!!!

    --

    You are not the customer.

    1. Re:OMG!! Ponies! by ad0gg · · Score: 1

      There in my van you want to come see them?

      --

      Have you ever been to a turkish prison?

  16. Re:why is java soo dead ? by d3ik · · Score: 1, Redundant

    The preview is there for a reason...

    why aren't any of the cool and useful websites being created with java on the back-end ?

    Honestly, I believe the problem here is more with Java developers than Java itself. Java developers are constantly trying to overwrite their code (as in writing more than necessary, not saving over an existing file:). Instead of using the KISS mentality, everything has to have an XML configuration file and object factory. Java devs are typically very black and white, code to the requirements, check off the features on their checklists, etc.

    On the other hand, Google has said they use Java for a number of applications. It's a great tool in the right hands.

    why has java been relegated to the enterprise space only ?

    A number of reasons... PHBs feel more comfortable with a "proven" solution with "corporate backing" versus all that pony tail and birkenstock hippie open source stuff (kidding!). Also, the creative types that typically make the 'innovative' web applications usually shy away from the corporate stigma that Java has. See the above comment. Java developers are typically viewed as corporate shills.

    why is java almost dead on the desktop ?

    I'll concede that this is due to Java itself. AWT sucked, Swing is marginally better... SWT seems to be the way to go but since Sun didn't invent it they're not going to back it.

    what are you smoking Gosling...when you say that java is still evolving ?

    Do you own a newer cell phone? Does it have cool features like text messaging and possibly web browsing? If so, your phone more than likely runs J2ME.

  17. Balony by Anonymous Coward · · Score: 0

    The "Java isn't open source" whining is really starting to piss me off. I can download the Java sources easily, I can even use my gained knowledge to serve my own need, its only a matter of licencing and people who probably didn't even bother to read it feel bad because it isn't "Open Source".

    So what is open source? Isn't that the same as "making the source code available" ? And well; that is exactly what Sun is doing, I can't explain else how I happen to have obtained the Java source code myself. Or is this suddenly different because in this case "Open Source" doesn't mean "Free" ? That would mean that some Open Source evangalists are now keeping a double agenda. "Yes, open source is a great business model because you can make money from it, just look at companies like RedHat" vs. "I'm not allowed to use the Java source the way I want to, its not free so its not open source!". Its not free... And how exactly are we going to make money from Open Source?

    This is IMO a continous tyrade by people who don't wish to think further than the "open source, free software!" hype.

    For the record, in response to the BLOG, Netbeans was written in Java too. In fact, you can even extend its functionality with Java code and it has features which have yet to make it in Eclipse. Gee, its another Sun product and because Sun doesn't Open Source Java it has to stink too!. It would be nice if some Open Source evangalists would keep an open mind and focus on what Open Source actually implies. OPEN source. Not FREE SOFTWARE.

    1. Re:Balony by TheSunborn · · Score: 1

      The real problem was that it came so late.

      Java used to have(1.4 did, and I think the first of 1.5 did too) a license that did not permit distribution of changes made to the sources, and what was worse REQUIRED that you distributed all 50+MB of the jre with your application, insted of just bundling the things you actuelly needed.

      That made it really bad to do desktop java applications because even a small application would come with a 50MB jre.

    2. Re:Balony by snookerdoodle · · Score: 1

      Did I miss something, or wasn't this the exact point of the article the original poster linked to?

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

      Since when is the JRE 50MB+? I remember the SDK being about that big, but the offline (as in includes all needed) SE install for Windows is 16MB.

    4. Re:Balony by TheSunborn · · Score: 1

      The installer is 16MB, but the size of the jre once installed is ~50M. (The size difference comming from the fact that the installer is compressed)

    5. Re:Balony by Decaff · · Score: 1

      The installer is 16MB, but the size of the jre once installed is ~50M. (The size difference comming from the fact that the installer is compressed)

      But if it is only 16MB to install, who cares how big it is afterwards? 50MB is insignificant in terms of disk space these days.

  18. Shameful exploitation of VIPs at Sun by Anonymous Coward · · Score: 5, Insightful

    I attended the Sun Developer Day in Calgary this week that Mr. Gosling gave the "keynote" at.

    The talk was almost the exact same rambling "Java is everywhere..." speech that he's been giving for years now. The highlight was when his Mac completely locked up during the presentation and he had to do a cold restart! He claimed it's never happend before in 5 years of Mac use... ...Hmmm, I'm sensing a unique opportunity to enrage both the Apple zealots AND the Java zealots in one post! ;)

    Anyway, my point is that Sun has a long history of exploiting some of their top talent by forcing them to travel around the world giving these lightweight marketing talks at corporate events. I remember in the late 90's it was the same thing with Bill Joy. They had him doing so many talks in different cities every day that the actual meeting was in a room at the airport! He was literally on the ground for less than 2 hours, then off to the next stop.

    They fly these guys around on these whirlwind trips to try to draw people to marketing events they would otherwise not bother with. It's seems like such a waste of talent/time. Maybe Sun would be better off letting Gosling and his ilk work on interesting projects that might actually provide Sun with new revenue sources, or at least give them something new and interesting to talk about when they do have to give speeches.

    Even at JavaOne, Gosling's role in Java has been reduced to little more than the "funny looking guy that throws out the T-shirts". It's sad really, I never thought I'd feel sorry for James Gosling, but on Tuesday I did.

    1. Re:Shameful exploitation of VIPs at Sun by puto · · Score: 1

      As somone who worked for a Mac centric company for a long time. We developed in Java for cross platform use. But Apple dicked with java just enough in the 1.4 day to damn audio and video, so we could create cross platform apps that actually work from windows, solaris, mac, bsd, etc. When our chat product when audio and video via the JVM, the only one that would not work was the mac, cause apple dicked with the jvm. God knows which could have interefered with ichat. WAIT a minute. Ichat was originally a chat room product that sold the name to apple and became Global Chat. Company I worked for then bought the former Ichat company. They moved to a flash based system which was easier than dealing with apple.

      Puto

      --
      The Revolution Will Not Be Televised
  19. Troll feeding by Anonymous Coward · · Score: 0

    Dude, 'open source' is, hystorically, just the marketing term for 'free software' for the suits, which emphasizes collaboration over freedom. Woopiedoo.

    There is even a definition on the OSI web site, right over at http://www.opensource.org/ which conincidentally contains about 8 clauses of the 10 that the Sun license you DON'T quote (i.e.the one for actual source code from Sun, rather than the licenses of open source products from other people that Sun BUNDLED in their proprietary software) does not live up to. Get your links straight, AC.

    Open Source is a whole lot more than just source code access. It is also about freedom, right there, in the open source definition. Go check it out, it's fun to learn new things.

    cheers,
    dalibor topic

  20. Java's so 90's! by jocknerd · · Score: 0

    There's a problem when you have to write more lines of XML code than source code.

    1. Re:Java's so 90's! by pebs · · Score: 1

      There's a problem when you have to write more lines of XML code than source code.

      I haven't had that problem. Yes, my XML docs can get pretty huge as a project progresses, but still it is small compared to the amount of Java code. In any case, XML configuration is useful enough (e.g. when used in Spring), it makes it especially easy to make custom builds for different customers. Convention over configuration is not always useful.

      --
      #!/
    2. Re:Java's so 90's! by shutdown+-p+now · · Score: 1
      Welcome to the world of declarative programming.

      The problem isn't the amount of XML out there. The problem is that there's more than just XML (e.g. property files), and that every Java framework comes with its own XML schema.

    3. Re:Java's so 90's! by leenks · · Score: 3, Insightful

      Haven't you seen annotations ?

    4. Re:Java's so 90's! by eyeye · · Score: 1

      There's a problem when you have to write more lines of XML code than source code.


      And when you find yourself having to debug XML because your application doesn't work. I am unconvinced about having wiring in XML instead of code.
      --
      Bush and Blair ate my sig!
  21. Java Q: by Anonymous Coward · · Score: 0

    How does one make java load FAST? Like, tight as a nun's cunt?

    Example: A basic MFC (like VC98) app will take half a second to load on a 64meg 400MHz celeron. Using the latest jre1.5.0_06, the equivalent do-nothing single form Swing app can take up to 4-5 seconds to load.

    I think this load time leads to the "Java is slow" perception some people have. Thoughts?

    1. Re:Java Q: by sproketboy · · Score: 1

      Have you tried the same with a .NET app? Same issue. VB6 had like a 4 meg runtime. Java's is about 16 meg. .NET is about 24 meg. You do the math.

    2. Re:Java Q: by Decaff · · Score: 1

      Example: A basic MFC (like VC98) app will take half a second to load on a 64meg 400MHz celeron. Using the latest jre1.5.0_06, the equivalent do-nothing single form Swing app can take up to 4-5 seconds to load.

      I think this load time leads to the "Java is slow" perception some people have. Thoughts?


      On my 2GHz portable just about any GUI app takes several seconds to load, Java or not.

    3. Re:Java Q: by Anonymous Coward · · Score: 0

      Yes, I have tried the same with a .NET app (on a new machine, but still, Startup time also sucked).

      I'm going to be using Java anyway, but I was hoping someone had a non-obvious performance tip.

      It's not a super huge deal. I can live with an app that fires up once after boot and stays that way for the entire day (or week, month...)

  22. Not compatible with itself by MECC · · Score: 0, Troll

    Does this guy have any excuse why Java isn't compatible with itself? Why won't something written to run in 1.4.1 run in 1.4.2, or 1.5? All this ends up meaning is that no matter how interesting java the language is, when you get something written in java, it comes out of the box broken. Seriously, if I install two java products on my computer, each written in a different version of java, they break one another, unless I come up with a work-around.

    For a language to be so incompatible with itself, no matter how you cut it, or what last-minute workaround you manage to cough up, that is so wrong there is no final verdict to pass on java other than "FAILURE".

    I've had to tell people walking in the door with 30k$ products to get lost because it written in java. Why? Because it was found to break the 100k$ product written in another version on java. That makes it range anywhere from 100% dysfunctional to just a run of the mill nightmare to deal with. Other bendors trot out their java-powered web sites, and it ends up either not working because of another currently deployed java product or it breaks the currently deployed java product. Unfortunety for that vender, they get the distinction of being labeled 'unable to support services' - for no reason other than that they just had to do it in java.

    As a matter of practice, anyone suggesting using java to implement something should just have their tounge cut out and stapled to their foreheads. Before they're fired.

    --
    "We are all geniuses when we dream"
    - E.M. Cioran
    1. Re:Not compatible with itself by kbro · · Score: 1
      Why won't something written to run in 1.4.1 run in 1.4.2, or 1.5?

      You are just just FUD-ing around, right? There is a -target option to javac for a good reason. You use the -target option to ensure that your compiled code will run successfully on a certain VM level (and *all* later versions).

      It is really a shame if someone is building (God forbid .. distributing) Java applications without taking advantage of this fantastic feature.

    2. Re:Not compatible with itself by Anonymous Coward · · Score: 0
      Seriously, if I install two java products on my computer, each written in a different version of java, they break one another, unless I come up with a work-around.

      I'm really not sure what you're talking about. I've never experienced this. If you want to look at an example of how much effort Sun puts into making code backwards compatible, just look at the api for the Date class: http://java.sun.com/j2se/1.4.2/docs/api/java/util/ Date.html

      Almost every method and constructor in there is deprecated. And why is it still around? Because removing it would break java code that was compiled in 1996 (when JDK1.0 was made public according to wikipedia).

      Here's an interesting article of how .NET will not be backwards compatible in the future: http://www.joelonsoftware.com/articles/APIWar.html

    3. Re:Not compatible with itself by Eli+Gottlieb · · Score: 1

      As a matter of practice, anyone suggesting using java to implement something should just have their tounge cut out and stapled to their foreheads. Before they're fired.

      The people who come up with the Computer Science AP exam should therefore have their tongues cut out and stapled to their foreheads before being fired.

    4. Re:Not compatible with itself by fimbulvetr · · Score: 1

      It is really a shame if someone is building (God forbid .. distributing) Java applications without taking advantage of this fantastic feature.

      It is really a shame if someone is building (God forbid .. distributing) Java applications without taking advantage of this kludge.

      Fixed that for you.

    5. Re:Not compatible with itself by Anonymous Coward · · Score: 0

      In practice it is trivial to have many versions of java on one computer and to have different applications use different versions.

      Make a script (shell script or bat file) which sets PATH and CLASSPATH and invokes your applications.

      > Why won't something written to run in 1.4.1 run in 1.4.2, or 1.5?

      It does.

      Good day

    6. Re:Not compatible with itself by MECC · · Score: 1

      I'll try that and see if I can get ciscoworks' and fluke's and mci's java to play together, which they don't right now. Of course, it still doesn't change the fact the all those products, to name just a few, because they need java to run, don't work, and the workaround/kludge required to get them to work is needed for one reason only - java. Other languages don't have this problem. Why java?

      --
      "We are all geniuses when we dream"
      - E.M. Cioran
  23. Re:Yup by Anonymous Coward · · Score: 0

    Just because he was one of the inventors doesn't mean he has a clue about Java's development since then.

    Figurehead to parade to Java fanatics?

  24. Re:why is java soo dead ? by recharged95 · · Score: 1
    "when you say that java is still evolving?"

    JSF with AJAX. He's saying the desktop will be just the evolution of a terminal, aka a WebBrowser. Of course we all know that's marketing...

    In the end, I think Java is evolving in non-traditional web apps (aka RoR apps) and into mobile, P2P, multimedia, etc... That's looking at it compared to C/C++.

    On the enterprise level, it in a way has become the new COBOL since it's so embedded in a lot of back end apps, it will take good justification and some time to port the same functionality to something like (not flaming) RoR or Python.

  25. what I don't get is by sqar · · Score: 1, Interesting

    why Java is so suboptimal compared to languages like Objective-C and APIs like OpenStep/Cocoa. I mean Java is like some sort of second infusion of Coffee (and we all know that only green tea is better at the second infusion ;-) ): you know what it is supposed to be but it just doesn't taste like the real thing.

    Doubly astonishing so since SUN was co-developing OpenStep in team with NeXT, so they should have known how to design a proper API and what language features are needed for this. Now the Java API is bloated to no end and still incomplete: I miss the virtuosity of the small but feature complete OpenStep API (why aren't there methods like componentsJoinedByString and componentsSeparatedByString or the goodie makeObjectsPerformSelector in the counterpart java.util.ArrayList available? Or just simple things like a constructor like this: NSArray(java.lang.Object[]). Those were only some randomly picked small examples. Not to speak of key value coding or EOF what most of you probably don't know.). I am linking here not to the Objective-C Cocoa docs (here I miss categories most, although I must admit that those would be a potential security issue for Java Applets (that's where Java made it's first steps: in the webbrowser)) but to the Webobjects JavaDoc to show that such stuff is possible with Java. Only god (and the SUN) knows why they did not make it so. In lieu thereof we've got a plethora of collection classes which overlap a lot in functionality. That pattern shows everywhere in the "official" Java APIs.

    And don't get me started on WO/EOF vs. J2EE ;-)

    exuse my poor english, it is not my native tongue.

    regards, sqar

    1. Re:what I don't get is by Anonymous Coward · · Score: 1, Insightful

      Collection classes that overlap in functionality? Somebody here doesn't understand interfaces and OO design. That somebody is you.

    2. Re:what I don't get is by sqar · · Score: 1

      So tell me why there is java.util.Vector AND java.util.ArrayList. Same for java.util.Hashtable and java.util.HashMap, java.util.Dictionary and java.util.Map subclasses ...

      That just doesn't look well designed for me

      sqar

    3. Re:what I don't get is by Anonymous Coward · · Score: 0

      Dictionary is obsolete - says so in bold letters in its docs. Map is in interface. Hashtable/HashMap and Vector/ArrayList are synchronized/unsynchronized implementations of their respective interfaces (nowadays, you can ignore the synchronized implementations with Collections.synchronized*() methods.)

      The confusion over collections in Java comes from the 1.0 days. You're correct in that 10+ years ago, it wasn't a well designed API. Reading the docs for each class will tell you the differences. If you can't be bothered with that, the classes consistently implement that same interfaces, and so switching between them isn't a big deal.

    4. Re:what I don't get is by Anonymous Coward · · Score: 0

      good point.. esp when one is synchronized and the other is not..

    5. Re:what I don't get is by Anonymous Coward · · Score: 0

      Both Vector and Hashtable are synchronized (thread safe) and thus have a worse performance than the equivalents.... Read the JavaDocs, it's all in there..

    6. Re:what I don't get is by acessin · · Score: 1

      my understanding of the overlap is to ensure compatibility with older versions. since the whole idea of java is total platform independence and they have improved the java language thru release versions they keep the old api classes to make sure that those classes will still work, not to mention the ability to reference old code, or let the old foggies who've been coding in java from the begining continue to use their old outdated classes 8P.

    7. Re:what I don't get is by sqar · · Score: 1

      Sure, I understand all the reasons for those duplications. My original "rant" was not about backwards compatibility but the poor start of Java given the fact that SUN was a (marginal?) co-author of OpenStep so one could expect they've learned something from that co-authorship. Obvoiusly that wasn't the case, Java is worse than OpenStep in many (not all) regards. cheers, sqar

  26. Embedded and Java shouldn't be seen together! by Bad+Mamba+Jamba · · Score: 4, Informative
    There's been all kinds of growth lately in cellphones and more and more embedded systems.

    As an unfortunate software developer on one of Sun's high profile embedded Java projects, OCAP, it irks me to see Java and Embedded listed in the same sentence. I could rant for days on the shortcomings of Java and it's unsuitability for an embedded environment but to name some of my biggest peeves...

    1. Any language without unsigned primitive types doesn't belong in embedded land. Embedded systems frequently use unsigned data types. Making me cast up to a bigger primitive size and doing all kinds of bit manipulation gyrations to make unsigned byte data come out right is just wrong.

    2. Most embedded implementations don't have room for a JIT compiler. So you end up interpreting everything or precompiling on the way down to the embedded device. Most embedded devices these days still have pretty lame CPUs in them so everything Java is extra extra slow even relative to a desktop counterpart. Especially if you're doing an app with any kind of graphics. As for pre-compiling...this simply isn't an option in some deployments...say OCAP for instance!

    3. Many embedded environments use multithreading to process various IO tasks etc. Having what amounts to a critical section for your only means of synchronization (and yea Java 5 tries to solve this but most embedded devices are still back on 1.x implementations of Java) leads to one heck of a deadlock nightmare if you aren't very careful with your design. I need not cite the performance hit here either if you're lazy with your syncs. I also need not mention that the thread scheduling is left unspecified so your app may run OK on one JVM but when you port ot another there's no telling...

    4. Java requires a lot of memory if you really want to do something useful. Especially anything graphics related. Most embedded devices don't abound with a ton of memory. As such you end up garbage collecting more and running into problems. Garbage collection can be a costly operation per #2 above. And finding a memory leak in a Java program ain't no picnic either. Especially on an embedded device where you may or matynot be able to get tools in there to see what's going on.

    Yeah you can circumvent some issues if you're smart about your design and don't do stupid things but so far most embedded Java developers I've met are imports from desktop/server land and don't think about this stuff so you can imagine the mess you end up with.

    Just my two cents...

    1. Re:Embedded and Java shouldn't be seen together! by edxwelch · · Score: 1

      I don't know about embedded systems, but java has been a huge success on mobile phones, mainly due to the fact that it's so prevalent. Most mid and high end phones have some sort of hardware acceleration. ARM have jazelle and Texus Instruments have most of the mobile phone functionality implemented on one chip and the KVM is built-in with 2d graphics acceleration.
      I know that J2ME could have been designed better (mainly due to the fact that it's a committee), but it's not so bad that you can work around the problems.

  27. Java bloat by Anonymous Coward · · Score: 1, Informative

    Now I know I am going to get mod down, tossed to the wolves, raked over the coals with an inbox full of your nuts -- but here goes because after spending 4 years in Java I now have an opinion.

    Java is bloatware and sells hardware. It is great on a desktop as an applet or even as a program running locally where you have 2GB or ram and dual procs to itself. But it has no freaking business on a server. In fact, those writing server apps in Java are plain utterly stupid.

    Lets do the math... I have 600 users on a machine using C/C++ based programs, runs quite confortable with a DB and 8GB of RAM.

    Now some Java replacement, needs 256MB per user. 256MB * 600 == happy salesperson. T2000 are nice machines, but to run much of that Java code you need many of them.

    Ya, I know Java is threaded... how many developers know that and server 600 users out of one instance? Even if it is nicely threaded with apache, if you have to restart the VM for some reason you kick all users off. Messy.

    I hear someone say Java runs as fast as C... if I ever meet them I hope they are a betting person.

    Java is for those too lazy to learn C/C++.

    1. Re:Java bloat by xTantrum · · Score: 1
      Java is for those too lazy to learn C/C++
      ROTFLMAO..

      Thats my new signature.

      --
      $action = empty(PHP) ? backToC() : unset(PHP) ; "when the concrete cases are understood, the abstractions are readily
    2. Re:Java bloat by MemoryDragon · · Score: 1

      Interesting numbers, I have 2000 users serviced by a single 128MB Tomcat running Jetspeed/Turbine, and has been running that for years now (Uptime can be measured in years)

    3. Re:Java bloat by pebs · · Score: 1

      if you have to restart the VM for some reason you kick all users off. Messy.

      With Tomcat, if I have to restart, it doesn't kick all the users off. Their sessions are serialized to disk and they can continue where they left off once the app starts again.

      --
      #!/
  28. But it wasn't april fools yet... by xdancergirlx · · Score: 1

    I assumed this was just another April fools day joke, especially when someone commented that Calgary was in Texas (!!omg!!), but it seems like the article went up too early for that which means... it is real?

    Java has some uses, some really good uses, but I stopped waiting for it to change the world years ago, Sun should pour the money it uses on pretending Java is going to change everything into development instead, then maybe some day we can actually use Java to make a decent graphical application, render HTML, perform (period), etc.

  29. Gosling said Java is evolving by Beryllium+Sphere(tm) · · Score: 2, Funny

    Wouldn't you have expected him to say instead that it was intelligently designed?

  30. The only purpose of Java is to ... by Anonymous Coward · · Score: 0

    ... FUD Microsoft.

    Java is just SUN FUD. Nothing else. Remember the Sun Java Workstation
    that they showed, well they showed the plastic case at least, at the
    CES in 1996.

    1996!!!!!! How could that be!!!!?????

    Isn't Java ... Now!

    Isn't Jave ... Here!

    Isn't Java ... the "Internet Programming Language?"

    Mr. Bill ... say it ain't so!

    Toodles!

  31. Unsigned types by Anonymous Coward · · Score: 2, Informative
    As someone who has also use Java for low-level network stuff, let me just confirm, you are absolutely correct, lack of a simple unsigned byte type is hyper-annoying. I would like to have an unsigned byte type and easy operations to do bit manipulation. That stuff can be some of the most annoying part of code to debug. If some bit gets set in the wrong place, all of Java's fancy strong typing and all that doesn't provide any help. The only thing that would help would be better instructions or some helper methods.

    Oh and on this subject, there should be a built-in simple way to convert a byte[] into a plain old hexadecimal string. They have ways of doing pretty much everything, including manipulating zip files, URL-encoding, on and on, but no built-in way to convert a string to hex.

    Don't get me wrong, Java really is an excellent language for low-level network coding, and in fact a DNS server I wrote in pure Java was able to out-perform BIND, so it is a great language for this stuff. It's just that I always find myself getting stuck occasionally on bit twiddling.

    Anyway, one of things that hurt Java was there was too much hype for running it on the desktop, when the reality was... AWT. At this point, with Java 6, Swing is getting quite excellent. I now think that Java is also a first-class desktop app development language. ----------
    Contact management, sales automation, time zones, mobile alerts

  32. Why not? by CarpetShark · · Score: 1

    Why wouldn't they? It's an international site, not specific to one country, and the closest thing we have to a standard time format is GMT.

  33. Oh, the irony! by Anonymous Coward · · Score: 0

    Of course Java was originally designed as a language for set-top boxes, which is an embedded application. It was only when the set-top box thing wasn't going anywhere and somebody decided to write a web browser with it that Sun released it and it became popular.

    dom

  34. versioning by glitch23 · · Score: 0

    Maybe the father of Java can get the people in charge of Java at SUN to learn to count and get consistent with the version numbers on Java and stick to it without skipping numbers as well.

    --
    this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
  35. Um, what? by Anonymous Coward · · Score: 5, Informative
    Where does this 256mb per user figure come from? Any app that requires that much mem per user, and isn't doing something like ray tracing the next King Kong movie, is broken. Yeah I can write utterly broken C++ that also sucks up 256mb per user to log in to a website, but that has nothing to do with the language.

    I think you probably don't understand how Java server stuff works. Your reference to Apache being part of a Java server deployment shows that. It used to be, back in the old days a few years ago, that people often installed Tomcat and Apache together using a connector. I don't know anyone who still does this. Tomcat 5 servers static content about as fast as Apache.

    As for threading: If you're writing a web application, you don't need to write any threads. You need to give a little bit of thought to threads, because your Servlets are objects and they can be used by multiple threads at the same time. Handling this is quite trivial: you just don't touch any instance variables from methods in your servlet. If you don't want to try to figure out threading, that's all you need to know. Tomcat will do all the rest.

    Again, I have no clue where you got that 256mb per user, but I'll clarify a few points. In a typical Java Servlet application, which would use Tomcat (or similar) to serve an application where users log in, do stuff, and data are stored in a DB, this is how resource use will work:

    • Threads: Tomcat can be configured to create however many threads you want. A few dozen to a few hundred is typical. It certainly does NOT create a new thread per request. Just like Apache 2 in threaded mode (which is not its default mode btw) it creates these threads and has them hanging around until they are needed. Just like Apache 2 in threaded mode, these are plain old operating system threads
    • Threads again: Your reference to threads, and developers not knowing that Java is threaded, and again this 256mb per user makes me think that you are assuming that every user needs a separate JVM. This is not the case on any server-based app that is correctly written. Yes I can imagine some bozo creating a web app where Apache forks off a ne JVM for each user session... but wow, that is an inconceivably bad way to design a web app, ie, using a JVM for doing CGI. That's fighting hard against the design and the right way to do it, so of course it won't work. You do not Java for doing CGI servers! One web application = one JVM per machine = one JVM overhead per machine. If you are looking at any deployment where that is NOT the case, it was done by someone who is incompetent.
    • Memory: Sessions are created with a simple session map. A session itself takes up about 1k of memory. If you're smart, you store a user ID in the session and then the servlets can use that to interact with the database. So you're still storing less than 2k per user in memory in the session. It's no different from how PHP is often used. If you're really clever you use Hibernate and store a lightweight user object in the session, and have Hibernate do all its magic caching and proxying. You still have only a few K per user session to store.
    • CPU: Any real-world benchmarks Java just isn't slower. I would expect that a Java web app would use less CPU than a PHP app, because PHP has to parse and compile some large subset of the application with every single request. In Java, the whole thing is compiled to bytecode, which has probably been compiled to native assembly, and it's all loaded in the thread, in memory, ready to go when a request hits it.
    • Garbage collection: This is a problem that Java has. The GC does have to use a global lock and stop every thread (I believe) at certain times to do GC. In practice, this isn't so bad on web server apps. It's worse on desktop apps, which do in fact freeze up for a few seconds at a time occasionally.

    I really don't think you understand how these things work, and if you have real-world experience with Java webapps, then the ones you are thinking of were written by clowns.

    -----------
    Contact management, calendar management, sales automation
    1. Re:Um, what? by Anonymous Coward · · Score: 1

      The garbage collection is still a problem it has to be said though a couple of things can really help depending on your application. With J2EE apps something I've found (specifically running under WebSphere on AIX though the technique should work well enough on anything) is to use smaller JVM's (say about 512MB each) and let WAS distribute load around them as it sees fit. The upshot of this is that although the pause still occurs it is much shorter (there's less to deal with) and doesn't occur for every transaction at the same time.

      This doesn't help with desktop apps of course, although the pauses are a great deal shorter in JSE 5 because of better use of parallelism during collection periods during which application threads are stopped. The pauses are also more uniform due to deliberately spacing them such that there is less impact on collection latency as seen by application threads. And the heap is better utilized due to improved promotion failure handling which postpones the need to start collections. JSE 5 ergonomics also includes better handling of thread local allocation buffers (TLABs). Adaptive resizing of TLABs reduces young generation fragmentation and wasted space thus reducing the number of collections.

      The other thing with Swing apps is to spend some time looking at the number of different events that occur over the GUI. Often when a Swing app appears slow it is because a single click is firing off hundreds of different events in the model and you get a sort of event storm with the JVM thrashing about to keep up. A really well written swing app (see Netbeans or IDEA for example) doesn't really seem to suffer nearly as much. Again a valid criticism of Java is that building good GUI in it is harder than it should be and a lot of work is going in to improving this at the moment with Mustang (JSE 6) showing good early promise.

    2. Re:Um, what? by Anonymous Coward · · Score: 0

      Good points all. But all the anti-Java people don't even understand what all that you said means there. Yeah I'm enthusiastic about Mustang also; in fact Contempo.biz will rely on some of Mustang's features.

      I currently use Netbeans under Java 5 and it does occasionally have GC pauses. To me that's the worst thing about Java as a desktop language. It's a lot better than it was before, and of course non-Java apps also have pauses for various reasons, but still.

      I don't really understand the subtleties of how GC works but I guess they are improving them. I have always wondered if Java could somehow benefit from GC hinting. Very often, I'll use some code where my function uses a StringBuilder and it needs to return a String. I know that the StringBuilder is unreferenced as soon as the function returns. If I could hint the GC about this, would that help it out maybe?

      The other cool thing in the future of Java is GCJ. We will be able to compile Java apps to native code which starts FAST and uses native widgets (including Qt widgets, for example). I'm looking forward to being able to distribute compiled Swing apps. Right now GCJ-compiled binaries are small and start and run fast. It just doesn't yet have support for reasonably complete Swing and for generics, two features I can't do without at the moment.

  36. ahh, cut the crap by Anonymous Coward · · Score: 0

    and lets get naked

  37. Java in the enterprise... by Anonymous Coward · · Score: 0
    One reason Java is used is that combined with a good ide it's pretty resiliant to modifications. What I mean is that once something is working, if you have to make a change to fix a bug or add a feature, the chances of breaking things are less than with dynamically typed languages. Plus modern IDEs support "refactoring", making global changes to a program.

    This makes large programs work, and stay working.

    -- ac at home

  38. Re:Java is great for enterprise apps by masklinn · · Score: 1
    That may be, and yet...

    I think it would be a tragic statement of the universe if Java was the last language that swept through. - James Gosling

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  39. sig should read.... by RoboProg · · Score: 1

    There are 11 types of people in the world: those who can count in *unary*, and those who don't need to use their fingers and toes, er, "can't". :-)

    Personally, my money is on the unary group being the larger of the 11 / 10 / 2 groups.

    Off-topic as can be, happy April 1...

    --
    Yow! I'm supposed to have a plan?
  40. photo opp by TheGratefulNet · · Score: 1

    http://static.flickr.com/19/121338473_07823a9da0_b .jpg

    yes, the guy in the yellow shirt is the java guy.

    http://static.flickr.com/19/121342959_449ed7dea0_b .jpg

    it seems that java _can_ defend itself ;)

    --

    --
    "It is now safe to switch off your computer."
  41. Yes, I've encountered that by Latent+Heat · · Score: 1
    Folks are ever so sensitive around here -- moderate someone Troll instead of corroborating/disproving a valid concern.

    I have encountered that situation -- built something under 1.4 on Windows, unable to run it on 1.5 on Linux, and various permutations. I find the easiest thing is to distribute sources and have people build the darned thing with whatever Java they have on their system.

  42. Re:why is java soo dead ? by MemoryDragon · · Score: 1

    Useful websites like weather.com, ebay.com, or wallmart.com? They all run on java.

  43. Gosling could join the 21st Century by Rinzai · · Score: 1
    Having written in Java, C++, and now in the process of learning C#, I have to say that I prefer C#. It fixes a lot of what's wrong in C++, and it's new enough not to have suffered the bloat that Java has.

    Yes, bloat.

    If I never see another BuffereredDataStreamBufferReaderWriterBufferStream Reader (or whatever that was), it'll be too soon. Bleh. Java is soooo last-century.

    Don't start with me about Microsoft-only with C#. There's Mono, you know, so why not broaden that Linu-centric viewpoint you have, eh?