Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

James Gosling on Java

Posted by CowboyNeal on Thu Jun 30, 2005 08:24 PM
from the man-himself dept.
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."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Saeed al-Sahaf (665390) on Thursday June 30 2005, @08:28PM (#12956526) Homepage
    If anyone is interested in conversing with James Gosling one-on-one, he (amazingly) hangs out at DevShed.com [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).
    • my guess is he knows what he's talking about when it comes to Java.

      I should hope so! He did invent the thing, after all! :-)
    • ...his social skills leave a lot to be desired...

      I'm not sure what bad social skills you speak of, but here's how I usually approach that: if someone is really capable, they can be eccentric, even arrogant. If they're stupid, forget it. Gosling is definately a skilled individual, so he gets some asshole points, imho.
      • I'm not sure what bad social skills you speak of, but here's how I usually approach that: if someone is really capable, they can be eccentric, even arrogant. If they're stupid, forget it. Gosling is definately a skilled individual, so he gets some asshole points, imho.

        What I've found is that people who are really, really sharp don't need to be assholes. They're smart, everyone knows they are smart, and they don't have anything to prove. It's the wanna-be's who try to pull off the "I'm a brooding gen

    • by ari_j (90255) on Thursday June 30 2005, @08:46PM (#12956642)
      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. ;)
      • 'Probably' less than 10% of the male population as a whole have social skills any better than an 11-year-old girl's. It's unreasonable to hold men and women to the same standard in this area.
        • I agree with you 100%. The problem is that you've just epitomized "poor social skills" quite succinctly.
        • Highly illogical (Score:5, Insightful)

          by Dogtanian (588974) on Friday July 01 2005, @07:43AM (#12959616) Homepage
          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.
            • Re:Highly illogical (Score:4, Interesting)

              by harmonica (29841) on Friday July 01 2005, @10:22AM (#12961007)
              If anyone intends to post follow-up criticism to this post, be aware: Arguing with me will not make you right. I've already moved on. Don't waste your time.

              So you are right no matter what and you want to have the last word in this. That's different from a five-year-old how?

              Anyway, your long rant about stupid people behaving in a stupid way and your superiority over them doesn't touch the topic of smart people and how they interact. Small talk may prevent people from reaching Borg collective efficiency in terms of communication, but there is a lot more to it. You didn't figure that out yet, and you seem to be determined to keep it that way in the future. Good luck with that attitude!
            • So it is more like "social mainstream opinion" and has nothing to do with skills as someone not wanting to e.g. talk about the weather are clearly capable of doing so if they wanted.

              First of all, for some people it's surprisingly difficult to do just that. Social phobiae, anxiety disorders and similar disorders are surprisingly common, especially in the geek-population. For peopl e with one of these conditions, smalltalk is difficult and something rather avoided.

              Secondly, The 'skill' is not just being

    • by CompSci101 (706779) on Thursday June 30 2005, @09:40PM (#12956988)

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

  • by BronxBomber (633404) on Thursday June 30 2005, @08:30PM (#12956541)
    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.

    • by Decaff (42676) on Thursday June 30 2005, @08:58PM (#12956724)
      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.
  • by jarich (733129) on Thursday June 30 2005, @08:30PM (#12956546) Homepage Journal
    Did anyone else that the "ease of configuration" for building applications might be driven by the Ruby on Rails push? (http://rubyonrails.org/ [rubyonrails.org]) Competition is good, isn't it?

    Also, why does Sun waste all the effort on NetBeans? I'm sure it's a very capable IDE, but isn't nearly everyone else using Eclipse? Where would Java or Eclipse be if Sun put all the engineering time from NetBeans into a more useful project? I guess here I don't see the value of the competition as much...

    • Eclipse claims to have about 45% of the Java IDE market, however that is about as accruate claiming that Firefox has 67 millions users. Eclipse uses the download count to get an estimate, I'd guess its closer to maybe 30%. I believe Netbeans is around 15%-25% and rising fast. Netbeans has won multiple awards in many areas for IDE design. Eclipse is really just a foundation and corporations pay big bucks to get in on it. Eclipse's drive isn't the community, the foundation members decide where eclipse is goin
      • jbuilder = eclipse (Score:3, Interesting)

        by dingfelder (819778)
        As I was searching for some info about JBuilder, I stumbled across this juicy bit that I had not seen before.

        Borland announces JBuilder Roadmap; future will be Eclipse-based

        The jist of the story is that in the first half of 2006, JBuilder will ship a new version, code-named "Peloton", which will be completely Eclipse-based !!!

        http://www.theserverside.com/news/thread.tss?threa d_id=34246 [theserverside.com]

        below is much of the article text in case it gets swamped.

        Borland has announced their technical roadmap for JBuil
        • by njcoder (657816) on Friday July 01 2005, @01:46AM (#12958334)
          1. Better out of the Box support for web applications. The web tools are more mature and capable than what Eclipse is working on. You don't have to pay for things like a JSP editor or bother to download it.

          2. Out of the box EJB support that is good.

          3. Out of the box webservices support.

          4. A much better, more mature GUI Editor that's going to get even better in 4.2. (Not sure if VE is in eclipse 3.1)

          5. Cool auto comment tool

          6. Bundled Tomcat and Full J2EE compliant app server.

          7. This guy's [sun.com] blog to read :)

          8. This one is subjective but to me... i don't find the interface as cluttered or ugly as Eclipse. Obviously other's disagree. Also even the the windows are not native, the layout is much closer to what native dialogs look like on windows. With Eclipse, the dialog boxes just seem weird. Error messages look and feel like they don't belong, etc.

  • underhyped? (Score:5, Funny)

    by wwest4 (183559) on Thursday June 30 2005, @08:31PM (#12956547)
    > (Sun CEO) McNealy: We absolutely underhyped [Java].

    Uh, Scott; that's not the way the rest of us remember it.
    • How about (Score:5, Interesting)

      by mcc (14761) <amcclure@purdue.edu> on Friday July 01 2005, @12:26AM (#12957994) Homepage
      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.
  • by ari_j (90255) on Thursday June 30 2005, @08:43PM (#12956625)
    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.)
    • It's funny you should mention that...

      One former professor of mine uses the phrase "10 years of Java experience" as an indicator of when to throw out a resume. He does some consulting work, and companies tend to ask him to go over the resumes of their applicants and junk those that he feels are unqualified. First, those who don't have CS or SE degrees get thrown out. Second, he throws out anything with obvious lies such as "10 years of Java experience".

      When you posted that, I immediately thought of that st
      • by DoktorSeven (628331) on Thursday June 30 2005, @09:29PM (#12956922) Homepage Journal
        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.
  • by MarkEst1973 (769601) on Thursday June 30 2005, @08:59PM (#12956728)
    The entire second page of the article talks about scripting languages, specifically Javascript (in browsers) and Groovy.

    1. Kudos to the Groovy [codehaus.org] 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 [mozilla.org] inclusion in Java 6 [sun.com]? 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 [paulgraham.com] 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?

      • We considered Jython and Groovy when we were adding scripting to an app, since they were the only two scripting languages that came with licenses that were found to be acceptable by our legal department. We went with Groovy. Although the Jython guys angrily insist that they are still working on the project, it's been 3 years since the last stable version of Jython was released. Since then the only release has been in July 2003, and it was an early alpha. Groovy OTOH has a lot of people working on it who hav
  • by MrDomino (799876) <mrdomino@g[ ]l.com ['mai' in gap]> on Thursday June 30 2005, @09:19PM (#12956857) Homepage

    From TFA:

    When people talk about scripting languages, they often talk about things that are more toward having a developer be able to slap something together rally quickly and get a demo out the door in minutes. How fast the thing runs or how well the thing scales or how large a system you can build tend to be secondary considerations. ...

    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, making it possible to, e.g., construct and execute statements at runtime with things like PHP's exec() or Lua [lua.org]'s do(file|string) functions (see: http://www.lua.org/pil/8.html [lua.org] for discussion on dofile and Lua's status as a scripting language). I wasn't aware that capability for rapid prototyping or language speed had anything to do with it.

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

    That aside, a solid interview. Java looks to be pretty interesting; though in its current form it does bug the hell out of me (System.out.println()? Yeah, yeah, OO, but come on, three nested levels of scope just to get to a command line?), its progress has been impressive, and it's an innovative idea.

    • In java's defense (Score:3, Insightful)

      by jbellis (142590)
      Nobody writes Java with Vim or even Emacs JDE for very long. The productivity increase a real IDE like Eclipse provides is phenomenal. System.out.println is 6 or so characters of typing with code completion. (But the real win is being able to do things like say "show me all the places my constructor is invoked." Text searching isn't good enough when you have a million-line project.)
    • by Decaff (42676) on Thursday June 30 2005, @09:36PM (#12956974)
      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();
    • (System.out.println()? Yeah, yeah, OO, but come on, three nested levels of scope just to get to a command line?

      TFA makes it clear that making "hello world" easier was not the priority, making large systems easier was.
  • 10 years (Score:3, Funny)

    by Anonymous Coward on Thursday June 30 2005, @09:28PM (#12956918)
    It's been ten years since the official introduction of Java

    And the damn thing still hasn't finished loading.
  • by lonedroid (888148) on Thursday June 30 2005, @10:48PM (#12957451)
    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.

  • by wheelbarrow (811145) on Thursday June 30 2005, @10:54PM (#12957496)
    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.
  • by el_womble (779715) on Friday July 01 2005, @03:46AM (#12958755) Homepage
    Java should be great, but it isn't. For all the 'writeonce, run anywhere' gumpf that the marketing department came up with it failed in the most important test: usability. I can code pretty well in most languages, but as I work with Java, and was trained in Java at Uni, its the language I think most clearly in... unfortunately.

    The fact is I can code a quick app in Java on my Mac, compile and send it my Dad on his Wintel and he won't have a clue what to do with it. I then have to spend 5 minutes on the phone explaining either how to install the JRE, or how to run it from the CLI. Whats worse is that once its running, it looks like I can't code, as Java, by default runs noticably slower as you wait for the JRE to bootstrap and then for the JIT to get all the important bits compiled. Why would I do that to myself?

    Java is a great concept. But it has systematically failed on the desktop. What I want is a write once, compile anywhere. Same scenario, I want to have a compiler that I can target a Wintel platform from my mac and just send my dad the executable or installer, so all he has to do is double click - like he would any other app, and it run as well as a VB app (ie a little slower than native is fine). I would keep a few things from Java. I love GC for quick hack apps, fine grained memeory management has its place, but you can often feel like you reinventing the wheel, and its a gapping whole for the script kiddies to drive their payload through. I also love the central API. I can see the purists arguing against exceptions, but they do make debugging very easy, and they're not that expensive really. I also like the ease you can do threads. I don't like the GUI performance or the end user experience.

    If MS isn't going to play ball, and support various runtime environments from a fresh install, or if Java continue on insisting on a 20MB JRE download I can't see anyway around the byte code problem except to distribute binaries. Qt is a good start. Mono and C# are good candidates, but to be honest I'd be tempted to take Java, bolt Qt onto it, and use GCC to create targeted binaries. Is that out of the question?
    • by Decaff (42676)
      "I knew it was slow, but I figured computer power would eventually catch-up and run things at a reasonable speed. It appears I was wrong."

      On the 10th anniversary of Java - a joke that was out of date 5 years ago. (And, I remember the same thing being said about C++ 20 years ago).

        • by Decaff (42676)
          There is a slight problem with your logic. 20 years ago C++ was barely a toddler. Nobody used it and it was not generally known to the public.

          Nonsense. I was using C++ for development in 1985, as were many others. The c-front translator for C to C++ was released in 1983.

          Since when has widespread use of a language been any measure of its performance?

          Java on the other hand is 14 years old and people are still talking about its slowness.

          Yes, because those who object to it not being open-source have a p
        • Re:My favorite quote (Score:5, Informative)

          by MillionthMonkey (240664) on Thursday June 30 2005, @10:18PM (#12957259)
          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".
    • Don't worry. Binary XML will soak up far more compute cycles that CPU developers can possibly invent over the next 10 years.

      • Re:Article Summary: (Score:5, Informative)

        by Decaff (42676) on Thursday June 30 2005, @09:19PM (#12956864)
        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.
      • Re:Article Summary: (Score:3, Informative)

        by dnoyeb (547705)
        slow: slow to start definately, slow in actual code speed no. Unfortuately things can happen like a GC cycle at a bad time that can cause annoying slowdowns at the worst moment

        Sure its slow to start because ther is a 2nd process. But Java 1.5 addresses this to some degree. As for inconvient GC cycles, that is the programmers fault. You have to do your own GC when you think you have time. The JVM will only GC when its full...

        bloated: the java class libraries are huge and so deploying a java environme
      • Re:Article Summary: (Score:3, Interesting)

        by tesmako (602075)
        Unfortuately things can happen like a GC cycle at a bad time that can cause annoying slowdowns at the worst moment.

        Indeed a problem for garbage collectors, luckily Java ships with several different algorithms. The one used by default (full halt for a step in generational GC) has the best throughput.

        If you are more worried about short pauses you have two other alternatives however. The concurrent low pause pause collector will halt the application threads only in some phases of the collection, it is ac

    • Re:If only (Score:5, Interesting)

      by $RANDOMLUSER (804576) on Thursday June 30 2005, @09:33PM (#12956949)
      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.

        • Re:If only (Score:3, Informative)

          I didn't say it was the Holy Grail, I said I think it's got C++ beat all to hell in terms of programmer productivity. If I had to write a high user count shrink-wrap kind of program, I'd have to write it in C++, but in the one-off, less than 200 user, written by the (most/least)? qualified programmer available, frequent mod/respec world most of us live in, I'll take Java over C++ any day of the week. That way, I'll get fewer 2:00 A.M. phone calls.

          The "barfing runtime exceptions" was exactly my point. It

    • Re:If only (Score:3, Informative)

      by Decaff (42676)
      Unfortunately, it's like trying to run C++ programs through an interpreter on a machine at 3/4 of the power of the one you're using instead of actually compiling and tweaking it for maximum speed and efficiency.

      If you ran some actual benchmarks (with modern Java) you will find you are mistaken. Modern Java VMs include an optimiser that tweaks the machine code for speed and efficiency just as you describe. Last year, a set of benchmarks for numerical computation showed Java within 4-5% of optimised C cod
    • by chaves (824310) on Thursday June 30 2005, @10:51PM (#12957471)
      Eclipse has 2,425,709 [eclipse.org] 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.
    • I can write java software that has a GUI, networking, database connectivity and port it between different OS's with ease. I know this because I have done it with several products.

      Your post is FUD.
    • Ahem, I once delivered a program for an RS6000 and got the first access to that architecture at deployment time. It ran instantly, all I did before was to develop the program on windows with a Sun JDK, test it on a IBM JDK on Linux which caused me to alter one line of code in about half a million LOCs this program had including all the libs I used and them Deploy it on a Power based multiprocessor RS6000 which I could not get access to.
      • by cahiha (873942) on Friday July 01 2005, @07:01AM (#12959407)
        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.