Slashdot Mirror


James Gosling on Java

prostoalex writes "It's been ten years since the official introduction of Java - a programming language combined with virtual machine and a class library. ZDNet published an interview with James Gosling, the creator of Java, who talks about the project's past, present and future."

19 of 356 comments (clear)

  1. Want to talk to The Man? by Saeed+al-Sahaf · · Score: 5, Informative

    If anyone is interested in conversing with James Gosling one-on-one, he (amazingly) hangs out at DevShed.com in the forums, likes to aswer questions, and my guess is he knows what he's talking about when it comes to Java. Even more amazing is that as smart a guy as he is, his social skills leave a lot to be desired (read some of his posts in the Lounge).

    --
    "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
    1. Re:Want to talk to The Man? by ari_j · · Score: 4, Insightful

      Even more amazing is that as smart a guy as he is, his social skills leave a lot to be desired

      In what way is that amazing? I think that most of us here on Slashdot are in a reasonably high percentile when it comes to intelligence, and probably fewer than 10% of the members here have social skills any better than an 11-year-old girl's.

      On a side note, I somehow doubt he's going to hang out at DevShed so much after your soon-to-be +5 comment generates traffic. Imagine the personal e-mail equivalent of a good, old-fashioned Slashdotting. ;)

    2. Re:Want to talk to The Man? by CompSci101 · · Score: 4, Funny

      ...his social skills leave a lot to be desired...

      Not surprising.

      The bastard took my pointers and templates away. My *pointers and templates*!

      Rude fucker.

      C

      --
      The Sun is proof that we can't even do fire properly.
  2. Not a bad interview by BronxBomber · · Score: 5, Insightful
    except...

    Why the hell did the interviewer decide to turn it into a "how did/does/will Java work with MS technologies" diatribe?

    I mean, theyre so disparate in ideaology, while I can understand some of the relationships, why on earth bring them up with the creator of a language that MS has deliberately shunned when they couldnt get it to work "their way"?

    Very puzzling. Poor journalism in my opinion.

    --
    ...both interiorlly, and exteriorlly.
    1. Re:Not a bad interview by Decaff · · Score: 4, Informative

      Why the hell did the interviewer decide to turn it into a "how did/does/will Java work with MS technologies" diatribe?

      I mean, theyre so disparate in ideaology, while I can understand some of the relationships, why on earth bring them up with the creator of a language that MS has deliberately shunned when they couldnt get it to work "their way"?


      Because neither Microsoft .NET (their "Java") or Java are going to go away. Both will be around for a long time, and both are going to have to integrate.

      Java is evolving to work better with MS technologies in three ways: First, the Desktop Integration APIs, which allow the portable use of Browsers and features like the systray within Java applications, Secondly, by developing Java GUIs to make them indistinguishable from other Windows applications on Longhorn without losing portability, and Thirdly, with the use of Web Services to allow .NET programs to call Java, and vice versa.

  3. underhyped? by wwest4 · · Score: 5, Funny

    > (Sun CEO) McNealy: We absolutely underhyped [Java].

    Uh, Scott; that's not the way the rest of us remember it.

  4. Job Descriptions by Committee by ari_j · · Score: 4, Funny

    Yep, it's been 10 years since Java was officially introduced. It should come as no surprise that I was being turned down for jobs 2 years ago because the jobs in question required 10 years of Java experience. (And 5 years of C#/.NET experience as well. And I think at least one required post-doctoral work in Physics, Astrology, and Film.)

    1. Re:Job Descriptions by Committee by DoktorSeven · · Score: 5, Insightful

      Furthering the off-topic rant, you're right.

      Basically every job requires you to become a salesman. You sell yourself on a piece of paper, then come in to close the deal. News flash, employers: I'M NOT A SALESMAN, nor am I trying to be.

      I sit behind a desk in a dark corner of your offices and make stuff work. Human interaction is a very small part of the deal. And there's no salesmanship at all. So... why do job interviews and the whole stupid hiring process treat me like I should be this expert salesman?

      All they'll get from this process is some snake oil salesman pretending to be a systems administrator / programmer / IT person / etc that will have no idea what he is doing, but since he's such a MAGNIFICENT "people person", they look the other way!

      But when *I* screw up, Mr. Anti-Social, it's not the same.

      Complete crap. And yes, I, too, am fucking bitter. Sue me.

      --
      This is a sig. Deal with it.
  5. Page 2 and scripting languages by MarkEst1973 · · Score: 5, Informative
    The entire second page of the article talks about scripting languages, specifically Javascript (in browsers) and Groovy.

    1. Kudos to the Groovy authors. They've even garnered James Gosling's attention. If you write Java code and consider yourself even a little bit of a forward thinker, look up Groovy. It's a very important JSR (JSR-241 specifically).

    2. He talks about Javascript solely from the point of view of the browser. Yes, I agree that Javascript is predominently implemented in a browser, but it's reach can be felt everywhere. Javascript == ActionScript (Flash scripting language). Javascript == CFScript (ColdFusion scripting language). Javascript object notation == Python object notation.

    But what about Javascript and Rhino's inclusion in Java 6? I've been using Rhino as a server side language for a while now because Struts is way too verbose for my taste. I just want a thin glue layer between the web interface and my java components. I'm sick and tired of endless xml configuration (that means you, too, EJB!). A Rhino script on the server (with embedded Request, Response, Application, and Session objects) is the perfect glue that does not need xml configuration. (See also Groovy's Groovlets for a thin glue layer).

    3. Javascript has been called Lisp in C's clothing. Javascript (via Rhino) will be included in Java 6. I also read that Java 6 will allow access to the parse trees created by the javac compiler (same link as Java 6 above).

    Java is now Lisp? Paul Graham writes about 9 features that made Lisp unique when it debuted in the 50s. Access to the parse trees is one of the most advanced features of Lisp. He argues that when a language has all 9 features (and Java today is at about #5), you've not created a new language but a dialect of Lisp.

    I am a Very Big Fan of dynamic languages that can flex like a pretzel to fit my problem domain. Is Java evolving to be that pretzel?

  6. Re:Article Summary: by Decaff · · Score: 4, Informative

    Unfortuately things can happen like a GC cycle at a bad time that can cause annoying slowdowns at the worst moment.

    As Java is now used in real-time control applications, that is certainly avoidable.

    bloated: the java class libraries are huge and so deploying a java environment (and you can't assume a decent java system will already be installed by default) is a huge undertaking

    Not really. Java can be installed as a single rpm or tgz. Its over 10 mb, but given the size of a CD-ROM, or broadband download speeds, that is hardly a 'huge undertaking'.

    and who would seriously wan't to release thier software as java bytecode when jad is arround?

    There are plenty of bytecode obfuscators around.

  7. Re:If only by $RANDOMLUSER · · Score: 5, Interesting
    I think the speed complaint is a red herring.

    Yes, Java is slower to run than C++. However Java is faster to write than C++; and I think that's the real issue.

    In terms of power of expressivity, I think they're about the same, but I find Java easier to read than C++, and I find that mid-level programmers make far fewer subtle "shoot yourself in the foot" mistakes in Java than they do in C++. The run-time array bounds checking, lack of pointers, checked exceptions, and the lovely NullPointerException serve to keep a lot of people out of trouble. The embarrassing wealth of pre-written, tested, free, source-available modules Java has, over the reinvent-the-wheel approach of C++ goes a long way in improved programmer productivity. Here's a test for you: have one of your middle-skilled programmers do some network communication in Java and C++ and see which program takes less time to write and works better.

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  8. Re:Scripting language talk... by Decaff · · Score: 4, Insightful

    This is nit-picking, I know, but I was under the impression that scripting languages were actually defined by the presence of an actively-running interpreter during execution,

    Not necessarily. There have been many languages that have actively running interpreters, and even compilers that are available to modify code at run-time (Smalltalk and LISP are examples), but they are still not considered 'scripting' languages.

    The definition of 'scripting' languages has become blurred.

    Taking that into consideration, then, would Java with JIT qualify as an interpreted or compiled language? I'm not sure, myself---any thoughts?

    Not by itself, as you can't type new expressions or interact with the code once it has started running. There are some interesting tools such as 'BeanShell', which does allow this to be done with Java code.

    (System.out.println()? Yeah, yeah, OO, but come on, three nested levels of scope just to get to a command line?),

    It makes sense once you get used to it. The 'System' class provides globally available (static) objects. One of these is 'out' - an instance of an output object that is bound to 'stdout'. println() is simply a method of that object.

    Previous versions of Java have required code to be explicit about the classes providing such static objects. The latest version (5.0) allows (after the correct 'import' statements) you to write

    out.println();

  9. Re:My favorite quote by MillionthMonkey · · Score: 4, Informative

    C++ was 14 around 1997 and was widely used and known for its high performance.

    That's not how I remember it. I remember in 1996-1997 people were scoffing at C++ because it was "slower than C".

  10. It's all about the sandbox by lonedroid · · Score: 5, Interesting
    Of the thousands of security holes that exists, on every OS, how many are due to buffer overflow (buffer overrun)?

    There are other attacks, but most of the "exploits" are due to a buffer overflow (90% of all exploits? 95%?). Heck, if I'm am not mistaken it was a buffer overflow that put an end to the "x years without a hole in the default OpenBSD install" slogan :(

    Now how many buffer overflow did happen in the JVM in the last 10 years?

    I think the answer is zero. And if it's not zero, it's only some implementation of the JVM that was at fault.

    For me it's all about the sandbox. Java, Jython, Groovy, you-name-it... I don't care. As long as it targets the JVM. It's tried, lean, mean, rock solid technology. You just ain't escaping it.

    In TFA (yup, I did read it), Gosling says that "The only serious divide is they (C# / .Net) have this unsafe mode which they use a lot. One of the principles I believe in is there shouldn't be an unsafe mode."

    That's a good principle to believe in.

  11. Re:Java - unfulfilled promisses by chaves · · Score: 5, Insightful

    Eclipse has 2,425,709 lines of Java code and runs on any J2SE 1.4 (or newer) compliant JRE from any vendor on many platforms (the essential parts of it will run even on PDAs). I don't think any scripting language would have been up to this task.

    My opinion is that Java is the best thing that could have possibly happened in the software development field in the last 20 years. The fact that it is an openly specified object-oriented runtime suitable for a *huge* variety of configurations (desktop, middleware, embedded, etc) is a blessing. Developers have been able to learn one language and develop any kind of applications on any platforms (while reusing many of the skills). Also, vendors can target a much wider market when they do not have to focus on a single platform. Not mentioning that Linux owes a lot of its success to Java.

  12. Java is practical for some applications by wheelbarrow · · Score: 4, Interesting

    Everytime java is discussed on slashdot, I'm amazed at how some junior leaguers try to dismiss it because they can point out one application where java is a poor choice.

    There are some applications where it does not make sense to implement in java. However, I say that java is a great choice for the top layer of a web application server stack. There are a lot of web apps that take the form of:

    1. Gather data from one or more databases.
    2. Perform some consolidation and express the output in html.

    In this example, java is a consolidator of data from disparate data sources. It needs to hang on to several network connections and do some simple IO but it does not need to burn the CPU at 100% because it spends most of it's time blocked on IO. Java is a great choice for applications like this because there is a very large and active community working to make java dynamic web serving better and better. Every year your organization can, for free, upgrade to a new version of java and simple app server like Tomcat and reap the rewards of the communities improvements. Also, in my experience with server applications, the promise of portability is real. I've ported from windows to solaris and then to linux without changing the java application.

  13. How about by mcc · · Score: 4, Interesting

    They entirely overhyped it in areas where it's relatively useless (the desktop) and entirely underhyped it in areas where it's extremely useful (backend and embedded areas).

    Now ten years later you talk about "java" and all anyone remembers are those horrible, sluggish AWT applets, running on netscape 4.0's broken JVM, which they used during the initial Java hype push. But almost nobody these days knows about the success Java met in unglamorous areas after the hype push had died off.

  14. Re:indeed, it was "facing problems" by cahiha · · Score: 4, Insightful

    Unsafe mode was added to C# to allow the grandfathering of massive volumes of ill-behaved code into .NET systems. Microsoft does not like giving up old code bases.

    And Sun, instead, creates millions of lines of untested, immature C code and adds it to their Sun Java implementation (just look at the Java2D code). Frankly, I trust even Microsoft's libraries more than that.

    Microsoft's claim that sprinkling "unmanaged code" everywhere in your system is superior to linking to external libraries is very strange.

    Unsafe statements are explicitly marked in C#, and they are limited to unsafe modules. C# is exactly the same as JNI in that regard, but C# provides you with a much better language to write JNI-like modules in, a language that is far safer than C/C++ even in unsafe mode, and a language that actually works across systems.

    What does the phrase "tightly limit unsafe code to just the statements where it is needed, often just a single statement" mean? How can you limit something that can be everywhere?

    It means that as a programmer developing a piece of code that needs to do something unsafe, it's better for me if I can compile almost all of my code in safe mode and only have a single line of unsafe code, than being forced to write an entire JNI module in C/C++.

    Now they're claiming it's okay to put buffer overflow vulnerabilities in your code because it's convenient for the programmer. They just don't seem to understand security.

    You keep confusing safety and security; safety is neither necessary nor sufficient for security. Most Java applications are, in fact, not secure at all.

    C# supports runtime safety in a well-designed and time-tested framework, which is helpful for building secure systems. But forcing people to use only safe constructs does not improve security any further, it actually makes it worse.

  15. Highly illogical by Dogtanian · · Score: 4, Insightful

    I never really bought the "social skills" bunk. I think chitchat and small talk is useless and stupid so I usually don't engage in it. Does this mean I don't have "social skills"? As long as you are articulate, and unless you are in public relations, fuck "social skills".

    Stereotypical pseudo-rational geek attitude.

    The inconsequential "chitchat and small talk" are the manner in which we find out more about the person we're dealing with before things get more serious, allowing us to "feel our way round" when we are unsure. This may apply to both strangers and people we're currently unsure of; don't bring on the heavy stuff first. They're the manner in which we show respect by asking questions about the other person that may not *directly* involve the business we have with them; of course, this may open up opportunities we hadn't considered, possibly leading to friendship and/or greater business involvement.

    Not everyone is equally good at this. Not everyone places equal importance on it. That's part of the healthy mix of personalities that push some people to work in public-facing jobs, and others to work in more "human-phobic" areas (such as the more technical aspects of computer hardware). It's okay to not be a "small talk" person, as you are.

    On the other hand, to criticise it for being "useless" (because it doesn't serve any obvious purpose) smacks of blinkered short-sightedness and the kind of (phoney) rationalisation of their own behaviour that geeks like to indulge in.

    Frankly, the kind of people who come out with this kind of stuff probably consider themselves "rational". Actually, that displays a laughable (and verging-on-the-autistic) lack of self-awareness. Geeks are no more "rational" than a lot of other people; they have their own neuroses and obsessions that are obvious when you take a step back. For example, to use the same surface "rationalisation", what purpose does being fanatical about "Star Trek", an entirely fictitious TV show serve? None. Surely it's more rational or logical (*) to live in the real world.

    Of course, the fan will explain how it represents the problems of today's world in a semi-abstract manner, blah blah... the more insightful will mention that it provides an outlet for the geek personality type. Point is; if they are forced to explain it in depth, they'll put the effort into considering their own behaviour that they won't even waste considering anyone else's. (Although they won't explain it as an excuse to escape the real world or dress in fantasy costumes; that would be too close to the bone).

    So, to get back to the point, your failure to even recognise the purpose of small talk (whether you like it or not) smacks of the most arrogant and deluded abuse of rationality to justify your own shortcomings and behaviour.

    (*) Reminds me of a friend I had in my early teens who was into sci-fi, had a crap geeky sense-of-humour and an obsession with Spock and "logic". He was no more logical than anyone else; in fact, sometimes he was downright weird. In retrospect, I reckon he was (slightly) autistic in some form.

    --
    "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).