Slashdot Mirror


Q&A With James Gosling, Father of Java

Minaloush writes to tell us that in a recent Q&A with Sun's James Gosling, the father of Java fielded questions on the GPL, security, the role of Java in the enterprise. "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'."

172 comments

  1. What about Patrick Naughton? by Anonymous Coward · · Score: 3, Interesting

    I thought he was also the father of Java? Whatever happened to that guy? Pretty unjust to not give him credit, right?

    1. Re:What about Patrick Naughton? by Frosty+Piss · · Score: 4, Informative
      He kind of was written out of the story after this (Wikipedia):

      In September 1999, a FBI sting operation netted Naughton on charges related to the alleged solicitation of inappropriate sexual conduct with a minor. Disney immediately fired him shortly after his arrest in Santa Monica.

      He got caught in one of those chat room stings, trying to set up a little get-together with some way-underage female.

      --
      If you want news from today, you have to come back tomorrow.
    2. Re:What about Patrick Naughton? by aicrules · · Score: 4, Funny

      So what you're saying is that Java is a language of child predators...

    3. Re:What about Patrick Naughton? by AP2k · · Score: 1

      Great, I was looking for a shocking reason why I wont touch a Java program.

    4. Re:What about Patrick Naughton? by Cyberax · · Score: 5, Funny

      Hmm... Maybe I shouldn't run Java on my Reiser4 filesystem?

    5. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 0

      But as your excerpt suggests, he jumped ship almost immediately for Go while Gosling (who was always *the* Java guy anyway) stuck around at Sun, so Gosling is associated with Java much more than Naughton, arrest or not.

    6. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 5, Funny

      In Soviet Russia, Java touches you!

    7. Re:What about Patrick Naughton? by NastyNate · · Score: 1

      This may be the first actually funny "Soviet Russia" joke I've read on Slashdot.

    8. Re:What about Patrick Naughton? by Kozz · · Score: 2, Funny

      /**
      * @deprecated Use getJavaFather instead
      * @see #getJavaFather
      */
      public static Object getJavaFathers() {...}

      --
      I only post comments when someone on the internet is wrong.
    9. Re:What about Patrick Naughton? by HungWeiLo · · Score: 3, Interesting

      I don't understand the extent to which Naughton has contributed to Java, but why write him out if he has made significant contributions to the development of Java? Mozart, Beethoven, et al. have all had their own improprieties, but at least no one seeks to write them out of their musical accomplishments. No one disputes that Roman Polanski is a fine filmmaker despite what he's being accused of.

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    10. Re:What about Patrick Naughton? by javamann · · Score: 5, Funny

      Jave - Molest once, run everywhere

    11. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 0

      "So what you're saying is that Java is a language of child predators..." ...let's be fair. Just the one.

      I believe there are more on the C# development team....

    12. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 0

      immediately fired him shortly after his arrest

      Now, was it immediate, or did it happen -- shortly after?
    13. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 0

      The Programming Language Inventor or Serial Killer quiz is going to be a lot harder if there are three choices instead of two.

    14. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 1, Funny

      Considering I just scored 10/10 on that quiz I think my liver is safe at the next OSS conference as the website says. :-)

    15. Re:What about Patrick Naughton? by Anonymous Coward · · Score: 0

      That's just because the quiz assumes single inheritance...

  2. Nice quote by Ponga · · Score: 1

    Q: Do you believe that an open source development model is inherently better for security?
    J.G.: Oh yeah.

    1. Re:Nice quote by Red+Flayer · · Score: 1

      Q: Do you believe that an open source development model is inherently better for security?
      J.G.: Oh yeah.

      All the sudden I pictured Gosling as the Kool-Aid Man, busting through my cubicle wall and shouting "Oh Yeah!" a la the 80s marketing campaign.

      I'll be having nightmares about that every time I use Java, thanks to you.
      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    2. Re:Nice quote by Anonymous Coward · · Score: 0

      I heard Duff Man, probably because I'm a UKian and thus not exposed to Kool-Aid advertising.

      "Duff Man never dies, only the actors who portray him! Oh, Yeah!"

    3. Re:Nice quote by maxume · · Score: 1

      Just imagine him as a giant thermos and you'll start laughing every time you use Java.

      --
      Nerd rage is the funniest rage.
    4. Re:Nice quote by Anonymous Coward · · Score: 0

      I heard Duff Man
      Me too!!!1
  3. Economics by Anonymous Coward · · Score: 0

    You should develop these tools, because that increases productivity ..which means more energy watts are made available for use/consumption.. which means people can have more things for less work. Work in an office instead of in a farm? Be thankful for people who invented industrialization. TV, cars, cell phones, computers, access to slashdot, OK healthcare life expectancy more than 40 yrs old, not having to deal with early deaths of loved ones etc.

    Yeah, it does give you more time to bitch about how life sucks when you aren't forced to work 12 hours a day for your days bland tasting calories.

  4. Re:Uh yeah... by stratjakt · · Score: 4, Funny

    We've already forgotten, we just haven't forgiven yet.

    --
    I don't need no instructions to know how to rock!!!!
  5. Then the best ide is .... by jorgeleon · · Score: 4, Funny

    "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'." ... and that is why I still program in assembler and I use notepad.

    1. Re:Then the best ide is .... by physicsboy500 · · Score: 5, Funny

      ... and that is why I still program in assembler and I use notepad.

      You're such a wuss... I program in hex using vi!

      --
      The original generic sig.
    2. Re:Then the best ide is .... by Maxo-Texas · · Score: 4, Funny

      Can't believe you youngsters and your "editors"

      Set the switches and hit the commit button to load the opcode into memory.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    3. Re:Then the best ide is .... by Anonymous Coward · · Score: 0

      You're such a wuss... I program in hex using vi!

      Feh! Real Men (tm) work in 0110 0010 0110 1001 0110 1110 0110 0001 0111 0010 0111 1001 0010 0001

    4. Re:Then the best ide is .... by hey! · · Score: 4, Funny

      Switches! Real men write software for plug-boards. And it's woman's work to actually do the plugging. How else does a geek meet women?

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    5. Re:Then the best ide is .... by Reality+Master+101 · · Score: 3, Funny

      plug-boards? Yeh whipper snappin' kids. Back in MAH day, we had to put rocks in lines of dirt! And the gawddamn boss made us buy our own rocks!

      --
      Sometimes it's best to just let stupid people be stupid.
    6. Re:Then the best ide is .... by sgtrock · · Score: 1

      And we were glad we had real rocks, too!

    7. Re:Then the best ide is .... by marcosdumay · · Score: 2, Funny

      Are you implyig that Notepad is more usable than VI? No way... And I use Emacs...

    8. Re:Then the best ide is .... by Matt+Perry · · Score: 1

      You're such a wuss... I program in hex using vi!
      Feh. Real men use cat and od.
      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    9. Re:Then the best ide is .... by roman_mir · · Score: 3, Funny

      You had dirt?!

    10. Re:Then the best ide is .... by Maxo-Texas · · Score: 1

      The oldest coder I ever actually knew actually worked with 4k production systems that read the programs off of tape. I'm not sure when they stopped the switching and plug wires.

      And I was glad someone else picked up the plug boards. B)

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    11. Re:Then the best ide is .... by maxwell+demon · · Score: 1

      You could buy the rocks? In my days, we had to make our rocks ourselfs!

      --
      The Tao of math: The numbers you can count are not the real numbers.
    12. Re:Then the best ide is .... by maxume · · Score: 2, Funny

      You existed? Damn it, I had to create myself.

      --
      Nerd rage is the funniest rage.
    13. Re:Then the best ide is .... by hey! · · Score: 5, Informative

      Well, you must be pretty young, then. I've at least messed machines in the 4K range, worked professionally writing programs to fit in 16K, and I have several friends who are still working today who remember working with systems with 2K of RAM or less. Granted they're at about retirement age.

      Of course you have to be careful because it wasn't until the late eighties that the industry completely standardized on the eight bit byte. Memory sizes in the late 70s and early 80s were usually specified in terms of "words", a word being the particular machine's most natural size operand for integer arithmetic. The PDP-8 came with 4KW of memory, where each word was 12 bits. Thus our 4KW of memory was in actuality a whopping 6KB of core memory. The PDP-10 had a 36 bit word; the very early versions that had "8K" memories actually had 36KB.

      Bill Gates claims he never said that 640KB was all anybody would ever need. Back in 1981 he must certainly have been aware that some people needed more. You could buy a PDP-10 which could address 32 separate segments of 256KW. Since each word was 4.5 bytes, each segment amounted to 1024KB, giving a total of 36MB (36.864MB you use powers of ten instead of powers of two).

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    14. Re:Then the best ide is .... by Frogbert · · Score: 1

      And you try and tell the young people of today that ..... they won't believe you.

    15. Re:Then the best ide is .... by daverabbitz · · Score: 1

      Heck, I still find myself programming machines (well uC's) with less than 2K of ram, some of them only have 256 bytes of ram (excluding .text being not RAM but (EE)-PROM).

      The fact that the vast majority of computers don't run any operating system seems to be completely over most peoples heads. Including the many computers inside a PC, such as the HDD's internal controller or the 4/8-bit system instrumentation controller.

      --
      What could be better than a jet powered motorcycle? http://www.youtube.com/watch?v=u8l6GTHLSWE
    16. Re:Then the best ide is .... by dramenbejs · · Score: 0

      Real men don't make mistakes!

      I start with:

      $ cat >program.tar.gz

    17. Re:Then the best ide is .... by Andrewkov · · Score: 1

      And for you Windows users who don't get the joke! ;)

      copy con: myprogram.exe

    18. Re:Then the best ide is .... by Smuffe · · Score: 1

      Yeah, but you used a factory method, admit it!

    19. Re:Then the best ide is .... by alatheia · · Score: 1

      I use magnets and binary

    20. Re:Then the best ide is .... by ioshhdflwuegfh · · Score: 1

      You existed? Damn it, I had to create myself. Then you must have used LISP. I've heard some people even programmed in Java back then.
  6. Why yet... by Anonymous Coward · · Score: 0, Flamebait
    another interpreted language?

    The "write once; run anywhere" paradigm has failed yet again.(For those of you who'll argue; you haven't written a Java app.)

    What do you think of the declining popularity of Java?

    1. Re:Why yet... by teknopurge · · Score: 5, Informative

      Is this a joke or a troll? Declining? Java is 54% of the corporate market for enterprise applications.

      The WORA 'paradigm' as you called it is alive and well. j2se6 is fast - even swing is fast.

      I've been using java for 9 years, first on the client and then on the server. The frameworks like struts, spring and shale are bringing religion and consistency to Java applications - and management LOVES consistency. Outside of corporate America, j2me is in most cell phones and set-tops.

      Jobs on dice.com

      'java' - 16156
      'c#' - 6634
      'asp' - 3521
      'asp.net' - 4581
      '.net' - 9097 (inclusive of previous keyword)

      Fatality. Rayden(Gossling) Wins.

    2. Re:Why yet... by Anonymous Coward · · Score: 0, Troll

      Java is 54% of the corporate market for enterprise applications.

      What a coincedence. Many of the machines at work require 54 different JRE versions to be installed!

    3. Re:Why yet... by Anonymous Coward · · Score: 0

      Don't confuse us with the facts!

    4. Re:Why yet... by Anonymous Coward · · Score: 0

      Yeah, except most of those probably read something like "transitioning away from Java-based system to ___", so Java hits all the others.

      Actually, more likely is that you'll have to interface with some POS J2EE legacy system, so you're getting hits for Java on things that have absolutely nothing to do with it.

      Java is dieing, and getting replaced with superior technologies like C# or Ruby, depending on scenario.

      But it still shows up in job searches, either as the legacy system to integrate with, or the system being moved to the new, superior technology.

    5. Re:Why yet... by teknopurge · · Score: 1

      go check for yourself instead of looking like an ass?

      ----->click me

    6. Re:Why yet... by Vexorian · · Score: 1

      I would worry since C# is getting already more than 1/3 of Java's market.

      --

      Copyright infringement is "piracy" in the same way DRM is "consumer rape"
    7. Re:Why yet... by teknopurge · · Score: 3, Interesting

      That 1/3 is predominantly the MS shops that already were using VB, etc. .NET adoption has become stagnate proportionally over the last 18 months. People just are not moving to .NET from other platforms, just upgrading from VB....

    8. Re:Why yet... by Pollardito · · Score: 1

      saying that it has 54% of the market doesn't refute a statement that it's declining unless you can show that it had 54% or less previously, unless your argument is "who cares if it's declining, it's still a lot of apps"

    9. Re:Why yet... by Anonymous Coward · · Score: 0

      Ok, now lets compare the salary for these jobs.

      Java programmers are a dime a dozen. No need to worry about those 'complex' issues like memory management, etc, any kid on the street can possibly learn java.

      Java is fine for toys, like cell phones and set top boxes, but for real applications there is no replacement for a real programming language like C/C++ or even assembly.

    10. Re:Why yet... by Anonymous Coward · · Score: 0

      HA!

      i'm a java architect by day. my base is 120k USD i'm just outside of detroit.

    11. Re:Why yet... by Anonymous Coward · · Score: 0

      Java is fine for toys, like cell phones

      No, actually it sucks in cell phones. It's cheap for carriers to add though.
    12. Re:Why yet... by abigor · · Score: 1

      I make $75-$100 an hour writing Java. That's good enough for me.

      I also write C and C++ when required, but that hasn't been for a while now. You use the most appropriate language for the job, and the server side belongs to Java, period.

    13. Re:Why yet... by hesiod · · Score: 1

      That's not a troll, it's exactly right! I hate Java for exactly that reason: developers build their software to work on exactly one version (or set of compatible versions), but will not work on newer versions. We have a financial application, a time & attendance webpage, a scheduling app, and my Cisco cluster manager, and the best I have managed to do is get it down to three different versions of Java that must be installed to get it working (it was four until we got a financial system upgrade that didn't conflict with the scheduler).

      It is ridiculous, and if any company tries to sell us something written in Java, I explain in no uncertain terms what I think of such a stupid choice.

      If it's a web page, FINE, use Java. But these are applications that are supposed to be secure and (presumably) responsive. Java is not exactly great at either of those.

  7. Isn't the old license quite a bit more restrictive by morgan_greywolf · · Score: 4, Interesting

    For the longest time, all of the source code for Java has been available to everyone. And until recently it came with a licence that said: 'The source is open but you can't redistribute the results of any of your changes without passing the test suite.'


    Isn't the old license quite a bit more restrictive than just passing a test suite? I mean, many Linux distros have either been requiring that the J2RE and so forth be downloaded from sun.java.com or they've been requiring that you download 3rd party implementations based on the Sun source like blackdown. It doesn't sound to me like the license was ever as laisez-faire as Gosling seems to be implying here.
  8. He talks about Vista too by Thaelon · · Score: 0, Redundant
    [karmawhore]

    What's your take on Vista?
    I tend to stay away from Microsoft [software] because it tends to be so toxic. I'm not exactly an expert on the state of Vista. But it sure seems boring. They've put in a lot of eye candy but other than that it seems like an awful lot of money for not very much.
    [/karmawhore]
    --

    Question everything

  9. Another reason I can avoid Java by ginbot462 · · Score: 5, Funny

    I liked the additional comment:

    > He later resolved the case in plea bargain with the U. S. Attorney's office in exchange for working for the FBI for a year to develop software to assist them in their online investigations.

    I wonder if he is going to burry the check
    if (suspect == "Patrick Naughton")
    { // do nothing
    }

    somebody else can make sure that is Java syntax.

    --
    Atlas Shrugged : Thematic Story :: Battlefield Earth : Organized Religion
    1. Re:Another reason I can avoid Java by evil_Tak · · Score: 5, Insightful
      Amusingly, that highlights one of Java's famous gotchas. You'll need to do something more like:

      if(suspect.equals("Patrick Naughton")){ //nothing }
    2. Re:Another reason I can avoid Java by Anonymous Coward · · Score: 1, Interesting

      if(suspect.equals("Patrick Naughton")){ //nothing }

      That is of course assuming suspect was initialized.

      Try this:

      if("Patrick Naughton".equals(suspect)){ //nothing }

      That'll avoid the possibility of a NullPointerException.

    3. Re:Another reason I can avoid Java by evil_Tak · · Score: 1

      But of course I would have checked at the beginning of the routine that suspect was non-null; else the whole thing would have been an exercise in futility.

    4. Re:Another reason I can avoid Java by zacronos · · Score: 2, Interesting
      Actually, I don't believe that would compile (unless your line-breaks just got swallowed because you didn't use HTML formatting). You'll want something more like the following:

      if(suspect.equals("Patrick Naughton")){ /*nothing*/ }
    5. Re:Another reason I can avoid Java by newt0311 · · Score: 1

      anybody notice that the ending '}' gets caught in the // line comment and thus is not recorded in the code resulting in a mess of compile errors as the bytecode compiler tries to figure out what the hell you were trying to say?

    6. Re:Another reason I can avoid Java by rabbitsushi · · Score: 1

      Actually, that really depends what suspect has been initialized to.. If suspect has been assigned a String literal (as opposed to a new String object), the == operator works just fine. :)

    7. Re:Another reason I can avoid Java by Anonymous Coward · · Score: 0

      Amusingly, that highlights one of Java's famous gotchas. You'll need to do something more like:

      if(suspect.equals("Patrick Naughton")){ //nothing }


      And this way it is even null safe:

      if("Patrick Naughton".equals(suspect)){ //nothing }
    8. Re:Another reason I can avoid Java by Anonymous Coward · · Score: 0

      Welcome to Java Country, how about trying the code snippet from below :-)

      public class IdMain {
              public static void main(String[] args) {
                      if(new String("Patrick Naughton") == new String("Patrick Naughton")) {
                              System.out.println("== evaluated to true");
                      } else {
                              System.out.println("== evaluated to false");
                      }

                      if("Patrick Naughton" == new String("Patrick Naughton")) {
                              System.out.println("== evaluated to true");
                      } else {
                              System.out.println("== evaluated to false");
                      }

                      if("Patrick Naughton" == "Patrick Naughton") {
                              System.out.println("== evaluated to true");
                      } else {
                              System.out.println("== evaluated to false");
                      }
              }
      }

    9. Re:Another reason I can avoid Java by rabbitsushi · · Score: 1

      Yeah, how about:

      public class IdMain
      {
              public IdMain(){
                      go();
                      }

              private void go()
              {
                      String strLitName = "Patrick Naughton";
                      String strObjName = new String("Patrick Naughton");

                      if(strLitName == "Patrick Naughton"){
                              System.out.println("== evaluated to true");
                      }
                      else{
                              System.out.println("== evaluated to false");
                      }
                      if(strObjName == "Patrick Naughton"){
                              System.out.println("== evaluated to true");
                      }
                      else{
                              System.out.println("== evaluated to false");
                      }
              }
                      public static void main(String[] args) {
                              new IdMain();
                      }
      }

  10. Expectations by Sometimes_Rational · · Score: 2, Insightful

    "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'.
    Reminds me of somethng Winston Churchill supposedly said: "If you every day do a little more than is expected from you, it doesn't take long before people expect even more from you."

    Either great minds think alike or he is stealing from the best.
    --
    Warning: The intelligence of this post may be larger than it appears.
    1. Re:Expectations by Anonymous Coward · · Score: 0

      Expectations
      (Score:2, Insightful)
      by Sometimes_Rational (866083) on Monday March 19, @03:37PM (#18404959)

      "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'.

      Reminds me of somethng Winston Churchill supposedly said: "If you every day do a little more than is expected from you, it doesn't take long before people expect even more from you."

      Either great minds think alike or he is stealing from the best.


      Great minds? Actually many in the workplace recognize that not only is this true but that it can add work to others in the same or similar job description. Being the definable cause of extra work being placed on your fellow workers can and often does result in that person's fellow workers plotting their job demise. Too often it also makes their boss think they are after their job and the employee makes their hit list. This is all too true in the hourly worker jobs. However if you figure out how to do the same work in less time, with less effort, goof off while looking busy and not get caught at it you will make the hero list for some and the envy or hate list of others. While I realize that what I have said can be countered with positive effects and is just an extension of the original statement, I wanted to point out that if you said this to many blue collar workers they would just look at you and say: "No DUH" or similar while thinking "darn edjumacated idjit". The way "edjumacated idjit" is spelled and pronounced isn't a mistake by its users, its a deliberate mockery.
  11. Yup by mpapet · · Score: 1

    The key is your distro is capable in some way or another of using the word Java and their logo and probably redistributing it.

    --
    http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
  12. Re:Uh yeah... by Anonymous Coward · · Score: 0

    java does not belong in a web browser, end of story.. beyond that, it is a great language.

  13. Re:Yeah, so? by TaleSpinner · · Score: 5, Insightful
    I think I must've worked for you once upon a time.


    Crafting tools is not wasting time. Frequently the fastest way to accomplish s six-week project is to take a month to write the tool...which will then complete the project in under a week. Management with your attitude will a) never see tools produced that increase the department's overall productivity and b) you won't have the best people working for you. No one likes working in a hamster wheel, and your shop smells of cedar shavings from here.

  14. Questions by bendodge · · Score: 2, Insightful

    I'd really like to ask him what he is doing about Microsoft's efforts to poison Java.

    I have been doing some peripheral help with a Java converter that converts from GML to Java, and it doesn't seem very cross-platform to me, even though it has no dependencies. The converter gives odd errors on different platforms - even on different XP machines! And the pure Java code it outputs doesn't run on Macs.

    IMHO, using platform-specific dependencies (like DLL's) should be the only possible way to make Java that isn't cross-platform.

    --
    The government can't save you.
    1. Re:Questions by Reality+Master+101 · · Score: 1

      I'd really like to ask him what he is doing about Microsoft's efforts to poison Java.

      You do realize that memo was ten years ago, right?

      And the pure Java code it outputs doesn't run on Macs.

      Anyway, as you've noticed, Sun ultimately didn't need any help poisoning Java and making it less than useful for everyday life (though, it did do better for what it was intended -- embedded apps).

      --
      Sometimes it's best to just let stupid people be stupid.
    2. Re:Questions by bendodge · · Score: 1

      You do realize that memo was ten years ago, right?
      I doubt MS has changed its goals regarding Sun in the last 10 years.

      I just wish there was something totally cross-platform, with a motto such as: "If x doesn't work on everything, it should work on nothing."

      --
      The government can't save you.
    3. Re:Questions by Reality+Master+101 · · Score: 1

      I doubt MS has changed its goals regarding Sun in the last 10 years.

      Microsoft (and nearly the entire industry, really) stopped caring about Sun about five years ago. They are irrelevent to anything important these days.

      --
      Sometimes it's best to just let stupid people be stupid.
    4. Re:Questions by aCapitalist · · Score: 1

      You do realize that memo was ten years ago, right?
      I doubt MS has changed its goals regarding Sun in the last 10 years.


      You're not even close to being able to stop riding the short bus. Do you realize that there's something called .NET out there?

      I just wish there was something totally cross-platform, with a motto such as: "If x doesn't work on everything, it should work on nothing."

      Hey retard, that's not Java. Better stick with C.

    5. Re:Questions by aCapitalist · · Score: 1

      As always Reality Master, you're spot on.

      Sun's dying, gasping last breaths is the open source of Java. "Yippee hooray, free labor....we care about "the community".

    6. Re:Questions by VGPowerlord · · Score: 2, Funny

      You do realize that memo was ten years ago, right?
      I doubt MS has changed its goals regarding Sun in the last 10 years.

      You do realize that Sun sued Microsoft nine years ago, right?
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    7. Re: Questions by gidds · · Score: 1

      IMHO, using platform-specific dependencies (like DLL's) should be the only possible way to make Java that isn't cross-platform.

      A worthy aim, but if you want to be certain that code will run anywhere, you'd have to make sure that all resources it could access looked the same everywhere.

      So, for example, you'd have to disallow all access to the filesystem. (After all, different systems will have different files on them, and you could write something that depends on particular files or directories.) You'd have to restrict text display to a handful of supplied fonts (coz other fonts might have different metrics), and you'd have to disable font smoothing (coz that's done differently on different displays). In fact, you'd probably have to prevent any access to the display at all (because some embedded systems don't have one). You'd have to make it single-threaded (coz different host OSs have different schedulers and different numbers of processors). And you'd have to restrict it to a few hundred KB of memory (because that's all some embedded systems have).

      You wouldn't be able to find out the current user ID (coz someone could write code that depended on it). Or the current OS or machine. And you'd have to artificially limit it to running at a fixed effective clock speed of only a few MHz (coz someone could write some time-dependent code); for the same reason, you'd have to disallow any access to the system clock. Network access would of course be right out, as would keyboards and pointing devices. In fact, by the time you'd ensured that every system looked the same, you wouldn't be able to do anything useful at all!

      Seriously, any system that has enough interaction with the platform to do useful work also has enough that a (sufficiently clever) developer could use for some platform dependency. The best that Java can do is encouragement, by making it as easy as possible to be platform-independent, and as hard as possible to introduce dependency. Java's not perfect at this, but I think it does a pretty good job in general.

      --

      Ceterum censeo subscriptionem esse delendam.

  15. Re:Declining Popularity? Not quite... by mhall119 · · Score: 5, Interesting

    What do you think of the declining popularity of Java?


    Declining popularity? I remember recent studies showing that Swing is the most used UI toolkit, I believe Java is the most used language for corporate and commercial web applications, and Java programmers are in higher demand than ever. What makes you think it's declining in popularity? Maybe it's lost its "cool" factor to Ruby and Python, but not popularity.

    Here's a couple of links from this year to back me up:
    http://www.jasonkolb.com/weblog/2007/02/programmin g_tre.html
    http://www.tiobe.com/tpci.htm
    --
    http://www.mhall119.com
  16. best Gosling quote ever... by Anonymous Coward · · Score: 5, Interesting

    I've read TFA, it's always interesting to see was Gosling has to say on Java...

    Java is such a huge success, my favorite quote from TFA:
    "...you can't send a parcel through FedEx without a bunch of Java code being involved. It's almost impossible to execute a financial transaction without a piece of Java code being involved."

    So true... And GMail, and eBay. Read the enlightening paper on how Java / Spring is used at Voca (in the UK) to process real-world money, scaling at insane levels.

    That said, to me, the best Gosling quote I ever read was in an Artima interview. Basically, Gosling said that he regretted not having gone "pure interface" in Java. Java could have been a much cleaner language if Gosling had gone this way: remove the "abstract" keyword/construct from the language (and hence remove the "protected" keyword too, which makes no sense once the "abstract" keywork is gone). And prevent concrete inheritance. So Java would have been a more OO language, where only inheritance of interface would have been possible. Some people (a tiny minority) program in Java in this way. Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail. To most people this is heresy, because "you've got to type more characters, you've got to create 'needless' interfaces,..." (in modern IDEs most of these problems are non-existent for you can delegate/compose using a single shortcut). Remove the abstract keyword today from the language, and you can millions of Java developers screaming and whining endlessly. It is sooo sad Gosling didn't do it before releasing Java to the public. Every single program out there today in Java would be more OO-ish and more testable.

    It is interesting to note that Bjarne Stroustrup, on that very subject, has explained a great many times that "people simply don't get it". Here's a quote on the same subject by Bjarne Stroustrup:

    "Since then I have consistently pointed out that one of the major ways of writing classes in C++ is without any state, that is, just an interface."

    This is OO 101. And yet hardly anyone can understand this. I'm into OOA(nalysis) / OOD(esign) and it is not always trivial to do OOP using a 3GL (third generation language, like C++ or Java) but with some thinking and discipline it's possible to get close to "real OOP" using Java. Sadly this is not what 99% of the Java programming world is doing.

    1. Re:best Gosling quote ever... by rewt66 · · Score: 4, Interesting
      The technique you describe is useful, even powerful. Being able to think in that way is a great asset.

      But if I understand you correctly, you think Java should have required us to program in that way. Quite simply, that's a very bad idea. It's just another set of chains and obstructions that a language imposes on you for no good reason.

      The main thing it does is make it so that you can't have a totally abstract class, a partially abstract derived class, and a fully concrete class derived from that. For example, if I had a Vehicle class, and then Car, Truck, and Airplane classes that derived from Vehicle, and then Mustang, Aerostar, Boeing747, and F16 classes that derived from those, the problem would be that Car, Truck, and Airplane could only define new abstract methods. They couldn't implement any methods that were defined in Vehicle, but which would make sense to have all Car classes have the same implementation. Then each Car class would have to duplicate the common code. Bad idea.

    2. Re:best Gosling quote ever... by Anonymous Coward · · Score: 0

      Unfortunately without multiple inheritance, you have to do this anyway, most of the time. Sure if you have a very simple inheritance hierarchy then you're ok with the way things are. The moment you start getting thingsa bit more complicated, and you're stuffed.

      Better instead to have it all one way or the other. My personal preference is to implement MI (but apparently that was too difficult for Helsjberg and Gosling).

    3. Re:best Gosling quote ever... by rewt66 · · Score: 1

      Yeah, I would have preferred MI myself, though I must say that I've never actually needed it. So I think I have to disagree with your "most of the time".

      One way around this is to figure out which is the "main" heirarchy and which is the "mixin" (one class dominates in terms of size, importance, number of methods, or some such). Then you have the mixin as a member of the main object, and pass the mixin object to the main object's constructor. Then you have to implement the methods that you would like to be members of the main class in the form of accessors to the same functions in the mixin class. Result: A lot of scaffolding and fooling around, but no "real" code duplicated.

      But if you were to tell me that my approach is a total kludge to try to band-aid a language limitation, I really couldn't argue...

    4. Re:best Gosling quote ever... by DrFalkyn · · Score: 1

      That said, to me, the best Gosling quote I ever read was in an Artima interview. Basically, Gosling said that he regretted not having gone "pure interface" in Java. Java could have been a much cleaner language if Gosling had gone this way: remove the "abstract" keyword/construct from the language (and hence remove the "protected" keyword too, which makes no sense once the "abstract" keywork is gone). And prevent concrete inheritance. So Java would have been a more OO language, where only inheritance of interface would have been possible. Some people (a tiny minority) program in Java in this way. Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail. To most people this is heresy, because "you've got to type more characters, you've got to create 'needless' interfaces,..." (in modern IDEs most of these problems are non-existent for you can delegate/compose using a single shortcut). Remove the abstract keyword today from the language, and you can millions of Java developers screaming and whining endlessly. It is sooo sad Gosling didn't do it before releasing Java to the public. Every single program out there today in Java would be more OO-ish and more testable.

      What do you gain by doing this? Allowing sublcasses of an abstract base class allows all the subclasses to share a common code base. I believe that is one of the more powerful features of OOPL. If I have code that is identical across different implementations of a base class, when I sublcass the base class I get all this code for free. Without the ability to do that, I have to do a cut and paste of the code. And that is ugly and more difficult to maintain. For example, I don't have to implement for every single FooSubClass that extends Foo( because all Foo(x, y, z) does is copy x, y and z to foo.x, foo.y and foo.z Well, I guess you do have to write it. But then all you have to do is call super(x, y, z). A simple example, but there are lots of times when subclasses share a common code base. For example, I would really like to see what say, the Swing/AWT code base would look like without the ability to do subclass from abstract base classes. Or, for that matter, what client code would look like. What would you do if you can't subclass JComponent to provide your own paintComponent() method? Should you have to duplicate every method JComponent implements from JComponenetInterface(not a real interface, but I guess thats what you would puse something like that)?

      On that note to that I would add that its a shame that Java doesn't have multiple inheritance. I know it opens up cans of worms and its easily misused, but there are some times when it really comes in handy, and it makes the code base alot more clean.

    5. Re:best Gosling quote ever... by Anonymous Coward · · Score: 0
      You know, people actually need to write code to get things done, and the OO is there mainly to keep that code organized. If you find the OO mechanism in Java being insufficient to represent your domain model, you may as well want to reconsider capturing it as data, and running these data on top of your own engine implemented on Java. Besides, OO is not the point. Getting work done is the point. Do you implement the systems you architect? I do.

      "C++ got out of control when Bjarne started to program the language itself."
      Not true but sums it up.
    6. Re:best Gosling quote ever... by gh · · Score: 1

      Have you never used composition and delegation in OOP?

      Inheritance is not the only way to reuse code.

      Delegation also does not have to be a burden if the language itself supports it as a feature vs. making the developer hand-code all of it.

    7. Re:best Gosling quote ever... by rnicey · · Score: 1

      If I get him right, you'd abstract the interface (which is the point of them anyhow, so maybe inherit is a better term). Eventually you'd have a Mustang class that implements the Car interface which extends the Vehicle interface. It's still abstraction because 'mustang instanceof Vehicle = true'. You'd surely have to be able to specify methods on your interfaces, otherwise as you state you have duplicate code everywhere. By the time you boil all that down you're looking at another weird version of multiple inheritance.

      I'm totally with you however on requiring programming methodology. I'm pro choice there.

    8. Re:best Gosling quote ever... by DrFalkyn · · Score: 1

      Have you never used composition and delegation in OOP? Inheritance is not the only way to reuse code. Delegation also does not have to be a burden if the language itself supports it as a feature vs. making the developer hand-code all of it.

      Yes, I use composition all the time. Composition is no way to reuse code. It also breaks the IS-A/HAS-A paradigm. MyCoolComponent doesn't *have* a JComponent. It *is* a JComponent. And I should be able to add it to a Container class. Except the Container class will only take JComponents. Now you could say "well you could just redesign Container so that it will accept objects that implement JComponentInterface". Problem is now you have the same problem I mentioned before. Every object that implements JComponentInterface needs to *fully* define every method that JComponentInterface declares, or else it is an abstract class (not allowed in your system). Now you could solve that problem by adding some delegates mechanism - saying well MyCoolComponent delegates all methods of JComponentInteface to MyCoolComponents instance of JComponent. You can call it delegation if you want. But its really just multiple inhertance, without the benefit of MyCoolComponent being able to access JComponent's protected methods/variables.I can see maybe an argument that subclasses shouldn't be able to access their super classes' variables. But if you want to be that tight, just declare them private and noone but that class will be able to access them.

    9. Re:best Gosling quote ever... by tkinnun0 · · Score: 1
      Just take a look at the monstrosity that is JPasswordField:

      java.lang.Object
      extended by java.awt.Component
      extended by java.awt.Container
      extended by javax.swing.JComponent
      extended by javax.swing.text.JTextComponent
      extended by javax.swing.JTextField
      extended by javax.swing.JPasswordField

      Its getText-method is deprecated, so there goes your IS-A-relationship. For an added bonus, cosider what should happen when you call add(myJComponent) on a JTextField. Anything that forces designers to chop down trees like that is good, period.
    10. Re:best Gosling quote ever... by Anonymous Coward · · Score: 0

      Let's say you want to implement functionality for your vehicle class, the 'move(int dinstance)', method.

      We put this in a VehicleImpl class, which implements 'move(int distance)'

      Now you want to implement a car method, the 'drive(int speed)' method.

      What's wrong with putting that in a CarImpl class, which extends VehicleImpl, and implements the Car interface?

      Or am I missing things here...

    11. Re:best Gosling quote ever... by aug24 · · Score: 2, Insightful

      Not so...

      The 'super' classes wouldn't be abstract, sure, but you would implement an IVehicle interface, then wrapper any IVehicle object (presumably Vehicle) as a private member object in a Car class, forwarding all the methods you wished to forward. Car would implement both ICar and IVehicle of course.

      The forwarding could be done manually; automagically through an IDE; via a keyword to be interpreted by the compiler (such as 'private forward IVehicle myVehicle = new Vehicle()') on the member variable object; even assumed(!) such that if one and only one private member object implements the same interface it would implicitly receive forwarded calls, rather like the way the compiler adds implicit super constructor calls for null constructors.

      A Mustang class would contain a private member declared as ICar, but would not necessarily have an IMustang interface as it would be redundant.

      This takes nothing away. All objects simply define what interfaces they support, and can then be treated as such in each processing context. We would not have two different methods for defining typing of objects, leading to a 'strong type' for objects.

      As a bonus, it would provide polymorphism. CarBoat for example would have private member variable objects declared as ICar and IBoat, and CarBoat would implement ICar, IBoat and IVehicle. Forwarding of IVehicle methods would of course have to explicit as both the ICar and IBoat objects would be eligible targets as they both implement IVehicle. A compiler error would occur if this explicit forwarding was not provided.

      Simple and elegant. Perhaps we should fork Java as described and call it Kava ;-)

      Justin.

      --
      You're only jealous cos the little penguins are talking to me.
    12. Re:best Gosling quote ever... by DrFalkyn · · Score: 1

      Its getText-method is deprecated, so there goes your IS-A-relationship. For an added bonus, cosider what should happen when you call add(myJComponent) on a JTextField. Anything that forces designers to chop down trees like that is good, period.

      Well just because one method (TextComponent.getText()) is overrridden/deprecated does not mean that the IS-A relationship is broken. Its just redefining the behavior. The basic idea "JTextComponents are GUI components that a user can enter text into" is still intact. For example, lets say I have a Car base class and a subclass Car. Lets say Car has a function called shift(gear) which sets the gear the car is currently in, and defines its behavior to be public. Lets say some subclasses of Cars have automatic transmissions, and they override the behavior of shift(). So are cars with automatic transmisssions not really Cars? No, they're still Cars, they just define the behavior differently. This would be a little cleaner with multiple inheritance (you could define the methods for ManualTransmissionCar and AutomaticTransmissionCar and subclass from them and inherit their behavior without having to define it for each class since all AutomaticTransmissionCars are pretty much the same)

      You're exazmple of the add() to a JTextField(which subclasses from JComponent, which subclasses from Container??) is taken, but its because the design was bad, not that inheritance is bad. The Swing architechture is somewhat of a mess because Java does not allow multiple inheritance. They subclassed javax.swing.JCoomponent off java.awt.Container instead of coming up with their own base JContainer. (I don't know why they did that, except maybe for interoperability between Swing and AWT, but who combines AWT and Swing anyway? (With the exception of the the one required peer for the frame/dialog window?). Incidentally, JFrames and JDialogs are *not* JComponents, because the subclass from java.awt.Frame and java.awt.Dialog, respectively, so they can't sublcass from JComponent. Swing would look much nicer if it was designed from the get go (from 1.0) and there were very few "heavyweight" peers(they could just have one, for the native window, and draw all the borders/decorations in Java), or they allowed multiple inheritance.

      If you have an alternate architechture for Swing that does *not* use inheritance and makes more sense, I would like to see it.

    13. Re:best Gosling quote ever... by shutdown+-p+now · · Score: 1

      That's because the language forces you to use inheritance if you want automatic code reuse, a bit of ugliness that Java seemingly inherited from C++ and made even worse by removing multiple inheritance. It really should be delegation instead, in which case the strict class/interface separation approach would've made a whole lot of sense (and it does in general; see Sather for a good example).

    14. Re:best Gosling quote ever... by jesterman · · Score: 1

      Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail. Some people disagree.

      But again....no one seems to agree on what the term OO is for a long time....
    15. Re:best Gosling quote ever... by Anonymous Coward · · Score: 0

      ADTs work well in plain C too, using a forward declaration to make fields of a structure inaccessible outside the ADT implementation. No one seems to get that either :(

  17. GMTA by somepunk · · Score: 2, Interesting

    It has been said that democracy is the worst form of government except all the others that have been tried.
                                    -- Winston Churchill

    Unix is the worst operating system; except for all others.
                                    -- Berry Kercheval

    Those who cannot remember the past are condemned to repeat it without a sense of ironic futility.
                                    -- Errol Morris

    Those who do not understand Unix are condemned to reinvent it, poorly.
                                    -- Henry Spencer

    --
    Those people who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)
  18. Did the JRuby guys get the memo? by corecaptain · · Score: 1

    "So things like Ruby and PHP are really good for generating web pages. But as soon as you go beyond that, you get into trouble. And with so many enterprise applications, the web page is sort of the skin on the outside of the real application. And mostly scripting languages don't do the high-performance, large-scale computing very well."

    If this is true, then Sun might as well ditch their efforts with JRuby because no matter how
    well it runs on the JVM it is only going to be good for generating web pages - and that
    is more than taken care of by JSP.

    But maybe, just maybe, Ruby does something java doesn't - like enable a framework like Rails
    and make programming more productive and fun...

    1. Re:Did the JRuby guys get the memo? by siDDis · · Score: 1

      If you want something similar to Rails for Java then you should take a look at Groovy for Grails

    2. Re:Did the JRuby guys get the memo? by owlstead · · Score: 1

      There is quite a lot of criticism about generating web pages through JSP (I am only stating this without taking any side on this - it's is not my main expertise). Also, stating that Ruby does more than web by allowing the Rails framework?

      "Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern."

      Uh, rails is more than web because it does web applications? Eh, color me surprised.

  19. Re:Yeah, so? by Otter · · Score: 1
    Crafting tools is not wasting time. Frequently the fastest way to accomplish s six-week project is to take a month to write the tool...which will then complete the project in under a week.

    He's not saying not to write the tool, he's saying that you should be given another tool to write when you're done. Gosling seems to be surprised that developers aren't getting fired instead.

  20. Re:Declining Popularity? Not quite... by paeanblack · · Score: 1

    Declining popularity? I remember recent studies showing that Swing is the most used UI toolkit, I believe Java is the most used language for corporate and commercial web applications, and Java programmers are in higher demand than ever. What makes you think it's declining in popularity? Maybe it's lost its "cool" factor to Ruby and Python, but not popularity

    My crystal ball says:
    Java -> COBOL
    Ruby/Python -> Pascal

    There truly is a massive amount of business infrastructure being produced in Java right now that will last decades.

  21. Re:Who's the mother? by Anonymous Coward · · Score: 1, Informative

    Your asexual reproduction comment must have touched a nerve with some moderators.

  22. ...and Stackless. by Llywelyn · · Score: 1

    And mostly scripting languages don't do the high-performance, large-scale computing very well.

    Quick! Somebody tell CCP!

    --
    Integrate Keynote and LaTeX
  23. Re:Declining Popularity? Not quite... by samkass · · Score: 1

    Java is in no way shape or form an analogy to COBOL. It's a fast, maintainable, highly portable language that's used to write a huge amount of new software today. .NET and C# are certainly going to give it a run for its money, but I think C and C++ are going to be the "next COBOL" before Java gets that monicker.

    --
    E pluribus unum
  24. Re:Uh yeah... by Anonymous Coward · · Score: 1, Interesting

    If the Java plugin didn't freeze the browser while downloading and run at glacier-speed, it would be decent for a browser. Java is a nice language, especially with frameworks like Echo2 (try the demos, it rocks). What hurts Java is that Swing and the plugin suck rather hard.

  25. Re:Yeah, so? by phasm42 · · Score: 2, Insightful

    No one likes working in a hamster wheel, and your shop smells of cedar shavings from here.
    Sigged.
    --
    "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
  26. So why isn't he a registered sex offender? by cliveholloway · · Score: 1

    He doesn't appear in a national search in National Sex Offenders Public Website.

    --
    -- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
  27. What explains Sun's change on Java? by jbn-o · · Score: 3, Informative

    Today Gosling says the "immense amount of testing and design work" is not thought to be "anywhere near as good as having thousands of talented eyeballs just stare at it and think about it", but he didn't always say this and Sun didn't always license Java software in line with this sentiment. Gosling's claim might be true, but I think the freedom Sun's relicensing gives users is far more significant. Also important for the free software community is the lesson of free software pressure.

    Not long ago, Gosling poo-pooed the idea of turning Java into an "open source project": "If Java turned into an open source project, the enterprise development community would go screaming into the hills.". In the same article, author Glen Kunene described Gosling as being "ambivalent about Apache's Harmony".

    Similarly, Richard Stallman once described Java as being a trap because one could write free software programs in Java that depended on features only non-free Java software provided. He also wrote about what a non-event it was that Sun allowed more people to distribute its then non-free Java software.

    Taking all of these quotes and descriptions at face value, assuming nobody was lying, what explains the change in view? I believe that the competitive pressure created by free software Java implementations pushed Sun to stay relevant. As the free software Java implementations became more functional and more likely to replace Sun's Java software, Sun saw they could free their implementation and continue to compete. In so doing, Sun also became a top contributor to the free software community and got free software luminaries (Stallman and Eben Moglen) to speak in support of their relicensing.

    1. Re:What explains Sun's change on Java? by junkgui · · Score: 1

      Could it have been the change of CEO?

  28. Makes you wonder. by LWATCDR · · Score: 0, Offtopic

    VB.NET is nothing like traditional Visual Basic. Your old projects will not recompile under .NET so I have to wonder.
    Why make the effort to move to another Microsoft development system after getting burned.
    I doubt that Java is that much harder for a VB shop to move to than C#. Plus you are not stuck with a one vendor one OS solution.

    Yes I know about Mono but I also know Mono lags behind .NET so compatibility isn't close to what it is for Java.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Makes you wonder. by aCapitalist · · Score: 1

      Why make the effort to move to another Microsoft development system after getting burned.
      I doubt that Java is that much harder for a VB shop to move to than C#. Plus you are not stuck with a one vendor one OS solution.


      Why would a Microsoft shop go with Java, when C# 3.0 is coming out? I guess there's a point to be made that Java is so dumbed down that a VB shop could handle it, but typically it's Microsoft tools that keep them coming back.

    2. Re:Makes you wonder. by LWATCDR · · Score: 1

      Maybe so you can run your code on something other than Windows.
      I don't have time to learn a programing language that only runs on one OS. That is why I never learned VB.
      C# may be worth learning under Mono.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  29. ugly child by nanosquid · · Score: 2, Informative

    People should remember that Java started out as a set-top language and was released when that project failed. Then, it was supposed to turn the web into an application delivery platform, and it failed miserably at that, too (Ajax is now succeeding there).

    The reason Java isn't a footnote in history is because of the enormous efforts people and companies other than Gosling and Sun have invested in fixing up its problems and turning Java into a decent platform for server-side development.

    As far as I'm concerned, the main credit Gosling deserves is for saddling us with some bad design choices and some really ugly backwards compatibility problems in Java.

    1. Re:ugly child by owlstead · · Score: 3, Insightful

      "The reason Java isn't a footnote in history is because of the enormous efforts people and companies other than Gosling and Sun have invested in fixing up its problems and turning Java into a decent platform for server-side development."

      Bollocks. The Java API is rather brilliant in both its usability and its extensive features, not to mention its documentation. The Java language is rather easy to learn (many, many universities use it as the first language of choice) and isn't too far from C++ to be easily learned. And it's memory protection and garbage collection make life *much* easier and safer. That is the reason why Java succeeded, and most, if not all of it (in the first years) by extensive help by Sun. And Sun is also responsible for keeping Java the clean language it is today, without pre-processor, without operator overloading, properties and all the other things that makes maintaining C++ so much *fun*.

    2. Re:ugly child by Siker · · Score: 2, Insightful

      Java is a miserable failed academic experiment. It is written for the people who enjoy a healthy dose of philosophy in their work life, yet never actually need to work on anything practical. For the developers of Java, a programming language is not a tool to solve problems. It's an exercise in philosophy.

      I work with Java professionally and I spend a frightful amount of my time just fixing the underlying system. Swing, lack of closures and multiple inheritance, lousy string handling, fantastically bloated code base, and so forth, are just some of the things that threaten my sanity on a day to day basis.

    3. Re:ugly child by siDDis · · Score: 1

      Isn't the problem with Java that it tries to be the answer for everything? And because of that your application becomes a hell of a bastard to work with and many solutions which is just mess? Like if you have 10 programmers in 3 groups working with networking and because Java have so many similar network libraries every group use a different library. And when they're welding it all together a new story begins. Today there are so many alternatives that I belive Java should only be a last option. Embedded? ANSI C or Assembly. High precision float calculation? Fortran. Web? Ruby/Rails or PHP. And there is probably an endless list of alternatives that I don't know about. I think Java is really painful to work with when it comes to well....everything. Maybe a combination of Java and Ruby on Rails would be a good solution for many web based projects? Or am I just completely wrong? Java is the solution for *almost* everything?

    4. Re:ugly child by nanosquid · · Score: 1, Flamebait

      The Java API is rather brilliant in both its usability and its extensive features

      Most of the Java API was created by the JCP, not Sun, often based on prior work by others (Swing basically came from Netscape).

      not to mention its documentation.

      Extracting comments from source code is not the basis for well-written documentation. In fact, Java is sorely lacking in both good documentation and any form of specification. The best documentation is probably the third party books that have been written on it.

      The Java language is rather easy to learn (many, many universities use it as the first language of choice) and isn't too far from C++ to be easily learned. And it's memory protection and garbage collection make life *much* easier and safer. That is the reason why Java succeeded, and most, if not all of it (in the first years) by extensive help by Sun. And Sun is also responsible for keeping Java the clean language it is today, without pre-processor, without operator overloading, properties and all the other things that makes maintaining C++ so much *fun*.

      Indeed, Java is a better, cleaner, simpler language than C++. So is Algol 60. And Java has garbage collection, but so has just about every language other than C++ designed after the 1970's.

      I think Java primarily succeeded because it was so poorly designed: C++ programmers felt right at home in it and thought that it was "advanced" and "fun", which it was, relative to C++. Good strategy on the part of Gosling, bad language design nonetheless.

    5. Re:ugly child by Anonymous Coward · · Score: 0

      "Extracting comments from source code is not the basis for well-written documentation. In fact, Java is sorely lacking in both good documentation and any form of specification. The best documentation is probably the third party books that have been written on it."

      You have obviously never even looked at the documentation for the java platform! It's extensive, well written and contains loads of examples. I can find anything I need in seconds. I can't think of a single platform with the depth and breadth of javas doumentation.

      Contrast this with .NET which has little USEFULL documentation. Sure, every class and function has a little blurb and a code "sample" (A block of code that happens to call the function with no description of what it's trying to achieve isn't a very good sample) but that only provides the what. What I find so superior with javas documentation is the how and why and that is something so many documentation writers seem to forget.

    6. Re:ugly child by LizardKing · · Score: 1

      Most of the Java API was created by the JCP, not Sun

      Nope, it was mostly written by Sun programmer. The Collections classes were heavily influenced by OpenStep and written by a team that included Scott Meyers (he of "Effective Java" fame). The "Rose" library that became Swing needed heavy reworking by Sun as the Netscape code was little more than a proof of concept.

      Java is sorely lacking in both good documentation and any form of specification.

      The Sun hosted webpages, along with the Netscape ones before they were gutted by AOL, provided a great resource on top of the API documentation. As for not having a specification, am I imagining that I have the "Java Language Specification" book by Gosling and friends on my desk? No, it looks and feels real enough, plus it's is very clear and concise (wish I could say the same about certain "authoritative" C++ books).

      I think Java primarily succeeded because it was so poorly designed

      Compared to what? The popular alternative when it appeared was Perl, a language that's such a mess it's being rewritten from scratch (but failing to learn any of the lessons). Given the "write only" nature of Perl with its potential for obfuscation and myriad ways of doing anything, Javas consistent API and more stringent rules were a breath of fresh air.

    7. Re:ugly child by LizardKing · · Score: 1

      Doh! I meant Joshua Bloch, not Scott Meyers - he of course wrote the "Effective C++" books that inspired "Effective Java".

    8. Re:ugly child by owlstead · · Score: 1

      I am very sorry for you that you don't get anything done by using Java. Unfortunately for you many, many people are and getting things done in smaller amounts of time than before. But your starting statement really discloses what you are: a troll. Calling a language that has had such an impact a failed academic experiment is simply wrong, if only for the number of Java applications out there.

      Maybe you are currently running into things that you/Java cannot handle, but I hope that you will get them fixed eventually. Otherwise: get a different job, because it really sounds like you are eating yourself.

    9. Re:ugly child by shutdown+-p+now · · Score: 1

      API is rather brilliant in both its usability and its extensive features, not to mention its documentation.
      Compared to most C++ frameworks out there, which (mostly) suck at that. The world isn't just Java and C++.

      The Java language is rather easy to learn
      Compared to C++, which sucks at that. See above.

      and isn't too far from C++ to be easily learned
      Not sure what being close to C++ has to do with being easy to learn. At any rate, Java similarity to C++ is mostly syntactical, there isn't much in common there when you look at semantics.

      And it's memory protection and garbage collection make life *much* easier and safer.
      Compared to C++, which sucks at that. See above.

      And Sun is also responsible for keeping Java the clean language it is today, without pre-processor, without operator overloading, properties and all the other things that makes maintaining C++ so much *fun*.
      C++ doesn't have properties (if by that you mean property accessors as distinct language construct). Funny, though... 3 years ago this list would have included enums, varargs and templates, but now they are all in Java. Closures to follow soon. Mostly the same as C#, only burdened by the need to provide backwards compatibility, which results in a lot of quirks (generics are particularly famous for those).

      So what did you say about a "clean language" there?

    10. Re:ugly child by Siker · · Score: 1

      The fact that a product is popular or 'has an impact' does not mean it is good. Consider Windows. As pointed out elsewhere, Java is not successful because of its features but because of the support from Sun, and because it has caught on with the academic community. The later is most likely precisely because it is a philosophical language.

      Perhaps you are right - perhaps the problems I am experiencing are of a transient nature. But it turns out I've worked with Java every weekday and weekend for the last year and a half. If this is a temporary problem, I would like to move on to a language with fewer temporary problems.

      Pardon my disdain for the academic; we have a stormy background, academia and I.

    11. Re:ugly child by WhoDey · · Score: 1

      Then, it was supposed to turn the web into an application delivery platform, and it failed miserably at that, too (Ajax is now succeeding there).

      What the hell does that even mean? "AJAX" is not a web platform - and boy am I sick and tired of people totally misusing the term AJAX. AJAX enables web applications to make asynchronous requests, which are going to pull updated information back from the web application. How is that information generated? Well, quite possibly with some Java server-side code!

      In fact, the proliferation of AJAX-enabled web apps has made Gosling's points even more valid. Now that we're demanding more interactive and real-time-updating web applications, we need more robust and scalable design to support those applications. And he notes that Java is a language that can deliver such robustness and scalability.

  30. Re:Isn't the old license quite a bit more restrict by roscivs · · Score: 4, Informative

    Isn't the old license quite a bit more restrictive than just passing a test suite? I mean, many Linux distros have either been requiring that the J2RE and so forth be downloaded from sun.java.com or they've been requiring that you download 3rd party implementations based on the Sun source like blackdown. It doesn't sound to me like the license was ever as laisez-faire as Gosling seems to be implying here.
    The old license also had a clause that said you couldn't distribute the SDK with a competitor to Sun's implementation. This was probably intended (like the test suite restriction) to avoid any Microsoft-style "embrace and extend," but there was enough worry that distributing the SDK along with gcj was against the terms of the license that just about every Linux distro opted to distribute a non-Sun Java.
    --
    ~ roscivs
  31. Perhaps "most used" means more hours by ClosedSource · · Score: 2, Insightful

    After all, you have to use a Java IDE a lot longer to get a GUI layout right. Netbeans and Eclipse should catch up in ease of use in GUI development circa 1990 any day now.

    1. Re:Perhaps "most used" means more hours by PinkPanther · · Score: 2, Insightful

      Netbeans and Eclipse should catch up in ease of use in GUI development circa 1990 any day now.

      You mean that Java/Swing can get rid of the fantastic dynamic resizing capabilities and return to the days of fixed-size windows? Fantastic, to hell with the user changing monitor sizes, going to bigger fonts, etc...

      --
      It's a simple matter of complex programming.
    2. Re:Perhaps "most used" means more hours by ClosedSource · · Score: 1

      Yes, those companies that went belly-up because they spent too much time getting the GUI to work can be proud that if their product had actually made it into the marketplace they could satisfy the needs of the other 5% of customers that have unusual display requirements.

      On the other hand, I didn't realize that a Java app could be truly usable on my cell phone without any GUI modification because of the "fantastic dynamic resizing capabilities" of Swing. Or perhaps this capability is as overhyped as WORA.

    3. Re:Perhaps "most used" means more hours by Anonymous Coward · · Score: 0

      Thats right. 95% of people use 1024x768 as their monitor resolution and no one, under any circumstances would have a differently sized taskbar or, god forbid, have it running down the side or something outragous like that....

    4. Re:Perhaps "most used" means more hours by PinkPanther · · Score: 1

      So you think that moving back to 1990s technology is a better step for Swing, since it can't solve the problem of getting a desktop application to automagically work on a cell phone?

      Swing UI development is not difficult; in fact, if a developer wants to force components to be of fixed size and location they can do that straight up, out of the box (heck, they could turn to PowerJ if they're looking for 1990s GUI development for Java).

      Are you truly trying to tell me that companies went belly-up because they could not build functional UI using Swing? You would have to point me to a whack of credible URLs before I'd buy that one. Don't get me wrong; I believe there are companies that have gone belly up, some of them developing apps with a Swing UI...but I'd want to hear about the company's business plan, sales/marketing strategy and software architecture roadmap prior to accepting that Swing failed them to disaster.

      --
      It's a simple matter of complex programming.
    5. Re:Perhaps "most used" means more hours by ClosedSource · · Score: 1

      Sure, and before Swing came along nobody was ever able to run anything under any circumstances with different screen resolutions without problems.

    6. Re:Perhaps "most used" means more hours by ClosedSource · · Score: 1

      "So you think that moving back to 1990s technology is a better step for Swing, since it can't solve the problem of getting a desktop application to automagically work on a cell phone?"

      I'm just saying that it's ability to scale to different screen sizes and resolutions is rather limited.

    7. Re:Perhaps "most used" means more hours by shutdown+-p+now · · Score: 1

      NetBeans 5.5 has a fantastic visual GUI layout builder. I dislike Swing for its looks, but the tools are all there these days, not any worse than what VS2005 has to offer.

    8. Re:Perhaps "most used" means more hours by ClosedSource · · Score: 1

      The problem is that GroupLayout that Matisse depends on isn't part of the Java SDK. So it isn't really part of Swing and using it complicates the install process. I haven't had enough experience using it to say how it compares to VS2005 but if past experience is any indication, it's probably more complicated.

    9. Re:Perhaps "most used" means more hours by shutdown+-p+now · · Score: 1

      The problem is that GroupLayout that Matisse depends on isn't part of the Java SDK. So it isn't really part of Swing and using it complicates the install process.
      It's very unlikely that a serious Java application is going to avoid using any 3rd-party libraries anyone (most apps I've seen at the very least use a few of the more common Apache libs). So it's going to be 5 JARs rather than 4 in your installer - how is it a problem? Especially when NetBeans can automatically prepare your application for deployment, packaging all JARs it uses as well. It's really no different than a couple of extra DLLs that your .NET application might need - nothing special.
  32. Re:Declining Popularity? Not quite... by paeanblack · · Score: 3, Insightful

    Java is in no way shape or form an analogy to COBOL. It's a fast, maintainable, highly portable language that's used to write a huge amount of new software today.

    Your predjudice is baseless. The reasons behind the existence of both languages have a great deal of overlap.

    No language, no matter how "fast, maintainable, [or] highly portable language", can prevent an enterprise app from becoming a total maintenance nightmare after 20 years of feature creep. That's why it's analogous to COBOL. A few decades from now, extensive and current Java experience will command some nice consulting fees. I also predict Ruby/Python knowledge to become about as useful Pascal.

  33. Re:Uh yeah... by fabs64 · · Score: 2, Insightful

    I imagine a few years after the last piece of the staggering amount of enterprise Java code out there has been phased out.
    Seeing that COBOL is still being maintained, and Java is getting taken up more and more atm, I guess that'd make it around 50 years from now.

  34. Re:Yeah, so? by Reality+Master+101 · · Score: 3, Insightful

    Frequently the fastest way to accomplish s six-week project is to take a month to write the tool...which will then complete the project in under a week. Management with your attitude will a) never see tools produced that increase the department's overall productivity and b) you won't have the best people working for you.

    What are you talking about? Are you saying you should be able to sit on your ass for two weeks, because you brought in something ahead of schedule? Guess what: you're being paid to work. If you bring in something ahead of schedule, you should expect a "nice job" with points that count eventual promotion and pay raise -- along with a new assignment.

    Or to put it another way, when you're late with an assignment, do you pay the company back for the time you've wasted? Thought not.

    Respect is a two-way street. No one like working in the hamster wheel, but no one likes managing (or working with) the prima donna who thinks he can just put in solid work when he feels like it.

    --
    Sometimes it's best to just let stupid people be stupid.
  35. Abe said it best. by slasho81 · · Score: 1

    Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he'd spend six sharpening his axe.

  36. Ruby Too Slow for Java by Siker · · Score: 0, Troll

    "So things like Ruby and PHP are really good for generating web pages. But as soon as you go beyond that, you get into trouble. And with so many enterprise applications, the web page is sort of the skin on the outside of the real application. And mostly scripting languages don't do the high-performance, large-scale computing very well." Because we all know how fast Java is. Just zips along really.
  37. When will the Unipress Emacs be GPLed? by Andy+Tai · · Score: 1

    If ever?

    --
    Free Software: the software by the people, of the people and for the people. Develop! Share! Enhance! Enjoy!
  38. Re:Uh yeah... by Heembo · · Score: 1

    Ok, so everyone is moving to rich media type clients (Ajax). You think that Javascript is more secure that Java applets? HAHAHAHAHAHA! I admin, Java applets security is just now getting somewhat mature - but Javascript is a big huge gaping hole. What other choice do we have? FLASH? HAHAHAHAHAHAHAHAH!

    --
    Horns are really just a broken halo.
  39. Um, yeah, right. by Estanislao+Mart�nez · · Score: 1

    Basically, Gosling said that he regretted not having gone "pure interface" in Java. Java could have been a much cleaner language if Gosling had gone this way: remove the "abstract" keyword/construct from the language (and hence remove the "protected" keyword too, which makes no sense once the "abstract" keywork is gone). And prevent concrete inheritance. So Java would have been a more OO language, where only inheritance of interface would have been possible. Some people (a tiny minority) program in Java in this way. Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail.

    Just to make sure we get this clear: abstract data types are in no way an idea exclusive to OO; tons of languages have had ADTs, procedural and functional. Inheritance isn't exclusive to OO either, but, on the other hand, all of the prototypical OO languages have that mechanism, and their native programming styles use it heavily; the best example here is Smalltalk, which is as prototypical an OOP language as you can get, which uses inheritance very heavily, but doesn't have any ADT features (unless you count duck typing as ADTs, which I do not).

    Of course, using composition and small, clearly defined interfaces is a great way to structure systems, but calling this "OO" is plain misleading, unless you somehow want to claim that, say, the Standard ML module system is "OO".

    1. Re:Um, yeah, right. by cryptoluddite · · Score: 1

      the best example here is Smalltalk, which is as prototypical an OOP language as you can get What exactly do you mean by prototypical? Smalltalk was one of the later of that round of object oriented languages and none of the major successful languages are modeled after it. Smalltalk coined the word 'object-oriented' and 'wimp' where Simula 67 paved the way for Modula, Java, .NET, Ada, C++, and others.
    2. Re:Um, yeah, right. by LizardKing · · Score: 1

      Err, no. Objective-C and the NeXTstep Foundation classes were inspired by the SmallTalk language and environment, then came Java which was directly inspired by NeXTstep. Gosling himself admits as much, and it makes sense as Sun considered using OpenStep to replace their OpenLook and CDE desktop environments in the mid 1990s. C++ is the language that was inspired by Simula and Modula, as they were the object oriented languages that Stroustrup was familiar with. Java is really SmallTalk with a more C like syntax, but thanks to that superficial similarity to C people wrongly assume that C++ was the big influence on its OO features.

    3. Re:Um, yeah, right. by Anonymous Coward · · Score: 0

      Objective C was not successful. Foundation classes was not successful.

      Smalltalk has meta-classes, Java doesn't.
      Smalltalk classes are prototypes, Java's aren't.
      Java uses algol/simula syntax, Smalltalk doesn't.
      Java inner classes have direct corollaries in simula
      Smalltalk is dynamic typed, Java isn't.
      Java calls are method invocation, Smalltalk's are message passing
      Java has machine native types, Smalltalk doesn't.
      Java is separately compiled, Smalltalk isn't.
      Java's fundamental unit is a class, Smalltalk it's a method.

      There's essentially nothing in common between these languages, Gosling's stated intentions notwithstanding. If you have never really looked into the details of Simula 67 you should, because there are a lot of misconceptions about it.

    4. Re:Um, yeah, right. by Estanislao+Mart�nez · · Score: 1
      I don't mean by "prototypical" anything more precise than "prominent" or "important," because the argument I'm making doesn't require it. Simula can be equally "prototypical" for OO as Smalltalk, and my conclusions still follow:
      1. Abstract data types aren't exclusive to OOP, however you define it, so calling it an "OOP technique" is misleading.
      2. Language features for explicitly defining ADTs can't be central to OOP, because Smalltalk doesn't have any such features. (The closest it gets to that is duck typing, i.e., relying on all objects that respond to a message name to conventionally implement the same operation for that name).
      3. Implementation inheritance, on the other hand, is truly a central OOP concept.
      Compare that to the GP's claim that the central thing to "OOP" isn't inheritance, but rather, ADTs. The GP gives off a strong impression of thinking that good program organization practice is synonymous with "OOP," as if OOP somehow had a monopoly on abstraction and encapsulation.
  40. Re:Yeah, so? by Anonymous Coward · · Score: 0

    Compared to how some shops reak of geek, cedar shavings would be a welcome change.

  41. Now that it's open source... by Anonymous Coward · · Score: 0

    Can we get around to fixing some of these Gotchas?

    Oh, what's that? Backwards compatibility? Oh dangit, nevermind...

  42. And so what if he DID have some free time? by Naruki · · Score: 1

    Note the past tense, as management cannot seem to.

    In IT work, many people often find lulls between projects, and they try to fill them with something productive.

    Asshat managers assume that past free time == constant free time. How assinine.

  43. Need help with that time calculation? by Naruki · · Score: 1

    If he was using calendar time, then it goes like this:

    An average month is two days more than 4 weeks. If you spend a month writing a tool, then the tool completes the project in slightly under a week (perhaps 5 days?), then you have just one week of "free time". Due to project scheduling, the next planned project may not be ready yet.

    If he was using business time, then it goes like this:

    A month is... What? 30 days, or 4 weeks? To assist your point, we'll say it's 4 weeks. A week, of course, is 5 days. So he builds the tool in 4 weeks, it completes the project in less than a week (perhaps 3 days?), then you have 1.4 weeks of "free time".

    Sorry, nowhere in there do you get 2 weeks of ass-sitting.

    Not to mention that there was no sitting on of one's ass.

    Yeah, that was a funny point for you to make, given that the point was about how someone filled up their free time with a positive business contribution rather than, I don't know, sitting on their ass shooting their mouth off on Slashdot.

    Now, Perkins, get off the Internet and get back to work or you're fired! And be sure we are adding these points to your record.

  44. I disagree with you... by Nicolay77 · · Score: 1

    The Java API is as awful as the language behind it. You can only say that if you have not used any other useful API, ever. Java the language is not a better C++, is a dumbed down C++ with some standard stuff added to make it buzzword compliant.

    The Java VM, however, with its JIT compiler and stuff, is a marvelous work of art. This JVM is not necessarily 'Java the language' centric, as compilers for other languages have been provided. I only mention this so you won't confuse both concepts. Garbage collection is a feature both of the JVM and of the language, but guess where's implemented?

    With this JVM you have a bytecode class file, and it runs pretty much everywhere. And it runs fast. Fast like hell for a partially interpreted language. It's still slower than C/C++, but it's slower by only a factor of 10 or even 2 in some cases. Compare it with all the other heavily used multiplatform languages, like PHP, Ruby and so on, and they are slower than C by much bigger factors, between 20 and 100 times slower.

    I put all the reasons of the success of Java in the JVM, that's it, what users have to use to run java programs, than in the language per se, that is, what the programmers have to endure and suffer in order to create said Java programs. Stuff like bignums are so painful after you have tasted Lisp power that it hurts. However, Lisp doesn't have the JVM, and Java does.

    I have JVM envy.

    --
    We are Turing O-Machines. The Oracle is out there.
    1. Re:I disagree with you... by chthon · · Score: 1

      I agree with you on the Lisp part.

      Here is a nice link to Lisp and Scheme implementations on top of the JVM.

  45. What will be next by azareth · · Score: 0, Offtopic

    I have write in my blog what will be the future in developing for me. ahref=http://anthonylait.blogspot.com/rel=url2html -12757http://anthonylait.blogspot.com/>

  46. Re:Yeah, so? by Abcd1234 · · Score: 1

    Gotta love slashdot's mod system... disagree, and it's -1 Flamebait...

    Anyway, I agree, if you create a useful tool in the course of completing your tasks, go for it. Perhaps it can be useful later. However, if you find yourself idle and just decide to work on some nifty tool you think would be cool, then you're wasting your and the company's time.

  47. Re:Uh yeah... by totally+bogus+dude · · Score: 1

    javascript does not belong in a web browser, end of story.. beyond that, it is a... well... it's better than VBscript?

  48. Re:Uh yeah... by Heembo · · Score: 1

    On that note, I still think Java Applets is the most secure way today to release a piece of "rich media" software on the web. Javascript is just to vulnerable, I surf with FF 2.0 and NoScript these days.

    --
    Horns are really just a broken halo.
  49. Re:Declining Popularity? Not quite... by lgw · · Score: 1

    And COBOL was the "fast, maintainable, highly portable language that's used to write a huge amount of new software" once. Java is used to solve the same "card walloping" programs today that COBOL was used for in its day: inventory, payroll, CRM, SCM, everything else that makes a business busy.

    Of course, Java is used for other tasks as well (as was COBOL, of course), but it's at the heart of the programming done by people who wear ties while they code.

    This is not a criticism of Java as a programming language, only an observation about the professional company that Java programmers keep.

    C and C++ were never widely adopted by people who wear ties while coding, and so can never be "the next COBOL", regardless of how bad the maintenance hassle one day becomes.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  50. Re:MODDERS! Parent is not flamebait but mistaken!! by dramenbejs · · Score: 0

    Funny mods...