Slashdot Mirror


Java To Overtake C/C++ in 2002

jarek writes "ZDNET has an article that talks about latest research data. It talks about how Java is overtaking C/C++ next year. The article also talks about developers adopting linux and putting linux to use in mission critical tasks." It's evidently taking developers from the C/C++, but also the Visual Basic camps, with strong growth overseas.

168 of 605 comments (clear)

  1. Re:really? by Jeffrey+Baker · · Score: 2

    I didn't make the example, you did :) You said that DVD can be done in Java because Java is as fast as C++ for computation. I'm telling you that while justifaction may be true, the conclusion is not: even C++ is not fast enough for DVD decoding.

  2. Re:Not going to happen by FatherOfONe · · Score: 3, Insightful

    It might be high on Microsoft's priority list, but there isn't a damn thing they can do about it. The only thing that I hear Microsoft say about Java is "Have you seen C#?" Wow! What an awesome comeback! The speed of Java use to be an issue, but it isn't anymore. The same people who use to say that C was way too slow (compared to Assembly), are the same people that say Java is too slow. It took C around 5 years to get fast and reliable and it has taken Java around the same.

    Are you going to see Quake IV in Java, probably not, but it doesn't have much to do with Java, as much as ID has a team of developers who know C.

    If you want great games on Linux/Mac/FreeBSD/anything other than Windows, you guys better hope that people start to develop games in Java. We all know how well companies like Loki have turned out.

    Lastly, Microsoft is fighting many a war on many fronts. ie.
    1. Anti Trust Case
    2. Palm vs. Pocket PC.
    3. Sony, Nintendo vs. Xbox vs. PC games.
    4. Java (Java2EE) vs. .Net
    5. Linux vs. Windows XP
    6. Open source in general
    7. Oracle vs. SQL server
    8. AOL messaging vs. Microsoft
    9. Star Office vs. Microsoft Office
    10. OEM's vs Microsoft

    and lastly Steve Balmer vs Heart Atack.

    Microsoft has made many enemies over the last few years and they will never ever be able to crush out companies again. The government will see to that :-) I hope they bundle a bunch of stuff in XP and release it early... it will make the case that much stronger...

    Steve Michael

    --
    The more I learn about science, the more my faith in God increases.
  3. Re:Java as a teaching language by roguerez · · Score: 5, Insightful

    In my university (vrije universiteit in Amsterdam) you get an introductory course in programming in Java, then a datastructures course in Java and a course in x86 assembly.

    Then, an introductory course in C/C++ is given and a software engineering course in Java w/ Swing follows. Then you get a large course in plain C, and depending on the direction of your studies, you'll get one or more large courses using C, C++, Prolog, Miranda, Java, or whatever is best suited for the job.

    I think the choice for Java for the introductory and software engineering stuff is great, because in these applications you don't want or need the low level stuff in which C is good.

    Furthermore Java looks relatively 'clean' and is suited well to learn imperative as well as OO concepts.

  4. Speed, Visual Basic, etc. by Junks+Jerzey · · Score: 2

    Some comments on other comments:

    1. C and C++ are already minority languages, in that they are only used for a smallish percentage of applications. Yes, kernels and spreadsheets and games and paint programs are written in C and C++, but these are dwarfed by so-called enterprise applications written in Visual Basic, Delphi, PHP, and so on.

    2. Let's suppose that Java really is slow, ignoring any improvements that have been made in Java run-time performance over the years. Back in 1996, when people said Java was slow, they were talking about software on a Pentium 133. When a 333MHz Pentium II was top of the line a few years later, people still said Java was slow. Ditto for the 600MHz Pentium III, the 900MHz Athlon, and the 1.7GHz Pentium IV. Even if it's slow relative to C++, we're still talking about a 10x speedup in raw horsepower.

    3. Realistically, the issue with Java has always been "exactly how does this benefit me, the programmer." It's easier than C++, yes, but it's still in the same general ballpark. And there's been the slowly growing feeling that forcing everything into an object oriented framework is not the panacea it was once thought to be. Java may be too OO for it's own good.

    1. Re:Speed, Visual Basic, etc. by Junks+Jerzey · · Score: 2

      ROFLMAO. Didn't we forget a few markets? How about embedded applications? Instrument control? Scientific applications?

      My comments were strictly about the desktop market, as that is what Slashdot is concerned with.

  5. Re:True, to an certain extent by harmonica · · Score: 2

    If you like the Java language for development (as I do), but don't care for the multiplatform use of bytecode, the latest version of the GNU compiler can now compile Java code into native code.

    Unfortunately, gcj still doesn't support AWT so that "only" command line programs can be created.

  6. Re:really? by jeffy124 · · Score: 2
    Wow. I didn't realize there were other people like you who undertand that java's HotSpot VM actually compiles bytecode so that it runs as fast as c code. The only penalty for people using java is that it takes a moment for apps to start up due to the VM having to load up.

    As for CD-Rs, that may be possible in Java, but there will probably be a lot of issues relating to hardware, breaking interoperability between OSs and hardware platforms. Perhaps some dynamically pluggable drivers implementing a common interface could do the trick to remedy that.

    --
    The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
  7. "Overtake"? by ajs · · Score: 4, Interesting

    The word overtake is questionable here. Do we mean that more developers will be using it (that's what they mean), or that all that the tasks that those languages have previously been put to will be done in Java?

    I think we can make a pretty good case that right around the same time, three toolkits came into existance, the Java widget set (SWING, I believe), Gtk+ and Qt. I notice that 99% of the apps on my Windows desktop are the old C++-based MFC widgets, and my Linux desktop is split between Qt and Gtk+. I never see a Java app unless it's the back-end technology for a Web site (but, more often that's PHP, Perl, Python or VB).

    So, from whence comes this figure?

    Well, most of it is based on the growth of Java as a wizzy buzz-language in the dot-com startup arena 1-2 years ago. Some of it is based on the fact that in the financial market, in-house apps are very often written in Java because it's something they can hire hordes of programmers to write, and it keeps them happy because their skill-sets are current. Remember, these are the folks that bought WAY into COBOL....

    Java's a cool language, and I actually think it puts C++ to shame in terms of the cleanliness of its OO system, but it's just not useable for most of the large-scale development out there (can you imagine how much slower Mozilla or GCC would be if they were written in Java?)

    C will continue to be the right language to choose, but C++ will continue to be chosen a large percentage of the time because people only think about the performance of critical sections not the maintainability or cleanliness of development.

    Troll? No, just firm opinions that I have formed over the last 10 years watching first C++ and then Java become the darling languages of the "if it's OO it's good" programming set (not that the converse is true either....)

    1. Re:"Overtake"? by ajs · · Score: 2

      "it puts C++ to shame in terms of the cleanliness of its OO system"

      No chance - think 'Type Safety'. Java relies heavily on casting which C++ manages to avoid

      Then why did C++ need to invent four casting operators? I rarely if ever see C++ code that does not rely heavily on casting.

      In many ways Java is more type-safe than C++, as it has stricter requirements on casting. However, C++ has the advantage of being essentially C with many additional features. The most successful C++ projects I've seen have used some inheritance, and otherwise basically programmed in C.

      "C will continue to be the right language to choose"

      I agree for System programs, but for applications the speed of development for C is way too slow and unreliable.

      1. C is less unreliable, development-wise than C++. There are many reasons for this, but one example that comes up pretty fast in most C++ projects is suprise operator-overloading. Also, there's the "what do you mean, I passed an int and it got modified?!"

      2. If you thing that development speed in C is slow, try programming in C++ and INCLUDING the Q/A and debugging time. A good C project with good developers vs. the same quality project and developers in C++ is about the same. The key is that the C code has less traps and much easier to read in the large (individual classes in C++ tend to be readable, but determining their interaction can be hell).

      All languages have their uses (or they would not have been written). I just think that C is still the one language that fits almost all projects, and still has portability and interoperability features that blow everything else out of the water.

  8. Re:Really ?? by andyh1978 · · Score: 2
    I think I love C/C++ more than Java which is owned by Sun.
    It's an often repeated thing, but C and C++ should not be bundled together into 'C/C++'. C++ may share a common ancestry with C, but in order to really get the most out of C++, you should forget almost all you know about C.

    C++'s power lies in its object oriented features, and particularly in templates. And this leads to the STL (Standard Template Library); no more writing and rewriting container classes, sort algorithms, etc.; you've got a whole set of well written, generic, tried and tested classes encapsulating all that for you.

    assert(C != C++);
  9. Re:I dont think so..... by Lumpy · · Score: 2

    yes I do! and that is the point. you cant replace a tool that fits in tiny places and shovel in a monster and call it a solution (Embedded NT comes to mind here) Assembly has it's place and is the most powerful language there is. Sadly we have very few that can write assembly as they are only tought Java and other bloat-languages (VB for example)

    So yes, that clairifies my point to crystal clarity! thanks :-)

    --
    Do not look at laser with remaining good eye.
  10. The /. future tellers????? by cansecofan22 · · Score: 3, Interesting

    Looks like /. can predict the future. A few weeks ago in this article the /. community discussed java as a good CS Introductory language and the post went on with a lot of people talking about java taking over as a main language. Just shows that if you want to know what the IT world has going on, look at what the IT people have to say.

    --
    "If ignorance is bliss, why aren't there more happy people in the world?"
    1. Re:The /. future tellers????? by BlackSol · · Score: 2

      No /. doesn't predict the future but it does influences it.

      Slashdot's community is a composed of many people "in-the-know" and in positions, allowing for both accurate analysis of technical issues and influencing (somewhat anyway) technical decisions.

      Kinda reminds me of the Matrix, when Neo goes to see the Oracle and knocks over the vase.

      --
      $sig=$1 if($brain =~ /idea\s+(.*)/i);
    2. Re:The /. future tellers????? by jeffy124 · · Score: 2

      you are onto something as to why java is gaining popularity. It's being taught in schools. My University teaches C++ to freshman, but teach them Java later on. This isn't the first time somehting being taught in colleges has influenced the business world. Early versions of UNIX were like that too, and Linux may soon follow, as many schools are teaching OS courses using linux.

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
  11. Bjarne's opinion about /. by devphil · · Score: 2


    Grief, that's serious FUD you're spouting there.... but anyhow. After Dr. Stroustrup's interview here, there were lots of comments here on /. (duh), and somebody else mentioned it during a newsgroup discussion. Here's part of his response:

    That response was one of the most spectacular exhibitions of ignorance and prejudice that I have seen in a long time. Slashdot anonymous comments are not famous for their balance and objectivity, so one shouldn't be too surprised. My impression was that a majority of postings (objectively) demonstrated a complete ignorance of what have been done in the C++ world for the last decade. "Ignorant and proud of it" could have been a motto for many.

    Look on archives for comp.std.c++ on the 5th of June. Google allows you to search on message-id, but stupidly has no way to display the message-id of an article once you find it (making the searching capability almost useless).

    Your post here seems to continue in the exact same vein.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  12. Re:Really? by WolfWithoutAClause · · Score: 2

    Java (with a decent VM) is faster than that. The hit is only 30-50%. That's about 9 months of Moores Law.

    Think what the games were like 9 months ago. Not much different, by and large, from what they are now.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  13. And your point is? by sid6581 · · Score: 2, Insightful
    I write enterprise software in Java. If you think that's the pinnacle of computing, you don't know what you're talking about. Most enterprise software work is grunt work, and Java is used because it has some properties that are useful (being able to go cross-platform easily means a lot), not because the language as a whole is necessarily good. Many think so, of course. I don't agree.

    I take offense at the ignorance people display when they say that Java is finally fast enough for desktop use. That is simply not true. I use a number of Java applications on a daily basis, and even though I have a decently powerful machine it can only take so many bloated VMs before everything (everything) grinds to a fucking halt. And don't get me started on Swing. God, what a mess.

    In my mind, the work I do as an enterprise software programmer is not real programming. You can do real stuff in Java, but I leave that to someone else. I'm looking to get away from Java completely. I can't stand the language.

  14. Hmm... those distro numbers are interesting... by mosburger · · Score: 2, Interesting
    The survey also found that 77.2 percent of the developers surveyed chose Red Hat Linux as the distribution for use with a Web server or Web application server. This is more than three times the 21.8 percent who selected SuSE Linux or Mandrake. Caldera OpenLinux and FreeBSD followed, with 21.4 percent and 20.4 percent, respectively, the data showed.

    Ok, so 77.2 + 21.8 + 21.4 + 20.4 = 140.8% ? I guess in the survey folks could respond with more than one choice for their distro, but I'm still surprised that there are *that* many people out there using more than one for their Web servers.

  15. Re:Good-bye VB! by Mr.+Barky · · Score: 2, Insightful

    I go between C++ and VB all the time. I hate working with VB. Why?

    When I use it, I feel it's constantly trying to constrain what I do. For example, it doesn't allow you to create controls dynamically (for example, if I want a variable number of controls on a form). (Yes, I probably could figure out how to do this using Windows APIs, but why?). You can't do multi-threading (well, there are hacks to allow this, but you can't debug programs!).

    There are silly language options, such as Option Base, that can make understanding some else's code harder.

    I also find the IDE very annoying. Undos often only work in the text editor. When a program crashes, it brings down the IDE, etc. Searching is a pain. You can't look at a form when running the program, etc.

    I could go on, but the bottom line for me is that it's frustrating to use VB.

  16. Re:I reckon the reasons are artistic by Prior+Restraint · · Score: 2

    Science is all about finding the underlying beauty in the world.

    No, science is about finding the underlying order in the world. Order may be considered beautiful, depending on the observer.

  17. In New York, java is already ahead of c++ by Billly+Gates · · Score: 2
    You may be right with people for actual java skills but in the New York classifieds, there are more java jobs then c++ jobs.

  18. Re:Java as a teaching language by PurpleBob · · Score: 2
    It seems that students could easily get a 5 (the highest possible score) on the AP exam without being ever able to write a working program.

    That's already the case on the Computer Science AP in C++. Looking at samples of grades for the free-response section shows that students get 9 out of 9 points for code which wouldn't even compile. If they completely miss the concept they can get 6 out of 9.

    The Computer Science AP was the easiest 5 I ever got - even though I was supposed to have studied their "Marine Biology Case Study" (wow, we can increment and decrement a variable and say that we're modeling the motion of one-dimensional discrete fish!) beforehand and I only first looked at it during the test.

    --
    Win dain a lotica, en vai tu ri silota
  19. Re:Really? by DerFeuervogel · · Score: 2
    Then they root for a technology they can't even use on those same computers. What gives? This just reflects the fact that /. has a diverse readership. Then there is also the "Anything that MicroShaft hates is a good thing" crowd.

    Personally I was never hot on Java - it reminds me too much of Smalltalk. And listening to those OO purists always gave me a headache.

  20. Re:Java Servlets by Bonker · · Score: 2

    A CGI written in C is almost certainly vastly slower than simiar code writen as a Java servlet. Deal with it.

    Uhh... when did I say anything about the speed of Java? Geez, you'd think Java coders would lose their martyr complexes when an article like this one has just been posted.

    Servlets and CGI accomplish the same kinds of tasks for the same kinds of users on the same kinds of platforms.

    Do they do it more efficiently? It depends entirely on who you ask or what environment you test under or even how you define 'efficient'.

    Because they do exactly the same things, I don't think that I'm wrong in stating that a Java Servlet is 'the same thing' as a CGI application. Based on CGI and evolutionally advanced from it, certainly, but then so is PHP, which is arguably *not* CGI, although it can handle CGI tasks.

    --
    The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
  21. Re:Really? by fenriswolf · · Score: 3, Interesting

    Java is fun and all, and usefull in web aps, but face it, you cant write an FPS in java, and you cant really write a java kernel. The language is useful in certain things, but if you need performance, you have to go more low level, like C/C++ or assembly.

    --
    Welcome to my land of make believe.
  22. No. by Gruneun · · Score: 2

    I'm quite aware of what JavaScript, JScript, and VBScript are, having coded in all three. I can guarantee that, despite some shared ideas, they are significantly different. In an attempt to steer the crowd in their direction, Microsoft created their own spec with the name being made similar only to confuse people (which has apparently worked :).

    This should shed some light on the differences between JScript and JavaScript:

    JavaScript vs. JScript

  23. Re:really? by WolfWithoutAClause · · Score: 2

    >You'd have to write the program such that it generates no garbage at all

    Yeah, it's a nuisance, but it's not rocket science.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  24. Re:Depends on your definition of "overtake".. by quintessent · · Score: 2

    But if they reported it that way, it wouldn't be newsworthy, would it? The media are not there to report the facts, they're there to attract readers so they can keep making money.

  25. Java for high level, C for low by jonabbey · · Score: 2

    What's making Java so hot is not that it is a better systems programming language than C or C++. It clearly is not. What's making it hot is that operating systems, databases, graphics libraries (OpenGL, etc.), and many other high performance C/C++ code modules have been written which less performant Java code can run on top of. The high performance stuff runs with high performance, and the programmer who wants to build something new gets a safe, productive, and reliable programming environment, without having to worry overly much about where their code is going to be deployed.

    Everyone wins. And, of course, the people writing the high performance foundational modules are likely to be fewer than those writing applications on top of them, just as there are far fewer Linux kernel hackers than there are programmers writing code for deployment on Linux. So, from that perspective, I can see C and C++ receding somewhat in dominance.

    The same thing's been happening in UNIX for the last 10 years with Perl, Python, and Tcl/Tk.

  26. Re:I can't buy what you're selling by MSBob · · Score: 2

    Nope. I have to endure JBuilder in my daily work (yes I'm a suffering java developer who couldn't get a decent C++ gig). JBuilder is NOT acceptable by any stretch of imagination. Any application that takes 40 seconds to launch on a 800MHz PIII has serious performance issues. And it's full of bugs too lest we forget.

    --
    Your pizza just the way you ought to have it.
  27. Re:really? by WolfWithoutAClause · · Score: 2

    >I didn't make the example, you did :)

    Nope. Check the top of the thread. That was HeUnique.

    >even C++ is not fast enough for DVD decoding

    C/C++ is fast enough for DVD when you supplement it with a decent vector library and some bitblt type of thing for writing to the screen. And the same is true of Java. Whether that counts as 'writing it in Java' or not, is of course arguable, but show me pretty much any program and I can show you some assembly in a standard library somewhere. (e.g. memcpy)

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  28. Ugh, so much Java mythology... by qon · · Score: 3, Flamebait
    Sigh. Every time Java comes up on /. I keep seeing the same bogus misunderstandings, over and over:

    Java is so slow.

    Yet no one here ever complains about the slowness of PHP, Python, bash, etc. -- scripting languages that are almost by definition slower than Java in most circumstances. Why does the speed complaint only get leveled against Java?

    The point is that, much like PHP, Java is plenty fast enough for what people use it for. I use it for web application development, and the performance is more that just acceptable. It's lightning fast. I think this perception is fostered by the ancient JVMs that ship with Windows and IE, which are major releases behind the current state of the art.

    No one uses Java for GUI app development.

    LimeWire, which IMHO is the best Gnutella client out there, is pure Java. It's very responsive, feature rich, stable, and less than 1MB, about the same size as XMMS. Hardly what you'd call slow bloatware, which is the usual complaint.

    Sun owns Java. Java isn't free.

    I could mention Tomcat, which is open source and which we use in production where I work. But then someone could complain that the JVM we're running it on is still proprietary to Sun...

    Haven't any of you heard of Kaffe, GCJ, or GNU CLASSPATH? None of these things are what I would consider production-grade yet, but the point is, Java is only as closed as people want it to be. If you don't like the fact that the best JVMs are all proprietary, then by all means, contribute to one of the many free Java projects out there!

    Get past the myths. Java won't solve every programming problem, but if you don't like it, at least complain about the parts that *do* suck (like java.io.* :)

    Q

  29. Re:really? by WolfWithoutAClause · · Score: 3, Informative

    Um. AltiVec's C API is presumably coded in assembler. So you can't do really fast DVD in pure C either.

    Anyway, you can call C APIs from Java. So, yes you can write a DVD in Java, as much as you can write it in C! All the hardwork is done in assembler anyway...

    There's probably nothing that C compilers do that can't be done by a Java VM. Some of the VMs use C backends anyway.

    (Not that I'm claiming that current Java VMs are optimising for vector stuff, they may very well not be).

    >I'm having trouble imagining a Java tool that could automatically
    >vectorize code where Java has no way to express vector operations.

    Well, Fortran can optimise vector stuff fairly well. If the VM spots similar structure in a Java program it may be able to implement the same optimisations. I'm sure the devil's in the details, but it's not impossible.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  30. Quake by delmoi · · Score: 2

    Actualy, John Carmack was thinking of putting a JVM into quake to handle scripting, but later decided to go with plain C because he was worried about support issues of using more extermal technology.

    --

    ReadThe ReflectionEngine, a cyberpunk style n
  31. Re:Good-bye VB! by Khalid · · Score: 2

    Simply because it's a Microsoft product duh !

    It's just another tool for Microsoft to exert it's evil power, and this more than enough for many.

  32. Re:Less Visual Basic Programmers by ackthpt · · Score: 2
    Microsoft provides, IMNSHO, the best and easiest to use documentation

    Microsoft = Worst manuals, ever! They're really of any use once you've gone through some of the better IDG publications and have an idea what tool you're really going to need for the application, as some manuals are organized by alpha, and have no index at all (e.g. Microsoft Visual Basic 6.0 Language Reference)

    IMHO, the best first book for VB is O'Reilly's VB in a Nutshell, if you care to even learn the language. The M$ books are matches of what comes with the online help, and it's ok for some things, but the depth just isn't there. I've coded for over 20 years in a dozen languages and have some pretty definite ideas of my approach to a problem, when I can't get it to work in the language and the help only goes so far I hit msdn, pbdr.com, vbnet, and anything else I can find with Google. Ultimately, for sophisticated code, VB is just plain weak. Nice visual interface and builder, but the language should have died at Quick Basic.

    As far as the code-less application, yeah, try to do any _real_ database work that way. Foo.

    --

    A feeling of having made the same mistake before: Deja Foobar
  33. True, to an certain extent by roguerez · · Score: 5, Informative

    With JIT compilers becoming faster and faster, and the paradigm shift of user applications from autonomous programs to web applications, Java is becoming more important.

    However, C and C++ will remain very important, for example for system programming. A lot of Unices, MacOS and Windows are built on these two languages. Component, object and application frameworks like MFC, KDE, QT are written in them. A very large application base is written in them and it will not be replaced overnight.

    I don't think Java will ever completely take over C/C++, simply because the hardware accessibility just isn't in Java and you need it when programming an OS.

    But when building a new application, Java is more often than not a better choice than C/C++, simple because it was build with networking in mind.

    1. Re:True, to an certain extent by Rimbo · · Score: 2

      I don't think Java will ever completely take over C/C++, simply because the hardware accessibility just isn't in Java and you need it when programming an OS.

      Yes, but that's simply because it lacks the libraries for it. There's nothing keeping Java from having those libraries, either; it can work just as well as target-system-compiled code as byte-compiled code.

    2. Re:True, to an certain extent by roguerez · · Score: 2

      Not only the .net (pun not intended :) libraries are important in this respect. Also the portability, running in a web browser and running on a server as a servlet, have to do with it.

      This is what I mean with 'networking in mind'.

    3. Re:True, to an certain extent by roguerez · · Score: 2

      I agree, although even for some optimised stuff Java is suited well too. The math routines seem to be rather fast (I believe especially using IBM tools). With this stuff, as (JIT) compiled code, performance is comparable with C/C++.

      Wouldn't want to write a device driver in it, though.. :)

    4. Re:True, to an certain extent by Khalid · · Score: 4, Insightful

      It's highly probable that the situation will remain the same for a long time if not for ever. You need to choose the right tool for the right task; and java will never be a system programming language, it has not been done for that. Java is a good application programming language, if you need to do optimised stuff, you will probably stay with C or sometimes C++

  34. Why Java will overtake C/C++ by twan · · Score: 2, Insightful

    Cause Java is developed for the future it has HUGE potential to put all this hacking, rewritting, glueing, reinterfacing, rewritting called "programming" at least one tiny step further towards software development.

    Cause, its:

    - Skalable in Size

    From Palm, Webbrowser, Applikation upto Server and the important interconectivity in between.

    - Secure

    The Sandbox restrictions seem to got forgoten, but thats exactly what is need for a lot of stuff nowdays to deploy basic secure applications in a browser, there is still no real alternative. Server based solutions never can do all tricks, cause good user interaction has to be programmed on client side. Well downloading and installing application or glued flash, javascript and server systems can't be the final solution, please ?

    - Plattform independent

    In fact it is a platform on its own. Whats missing is a Java OS (based on Linux and/or MacOs and/or Windows?) and off you go...

    - Sophisticated, Huge and Clever APIs

    They are getting better and better and more stable.

    Try to connect to a database, do a 3D visualisation of the data and send an Email with the resulting picture ... go figure in any other language with any set of API(s).

    - Prospering in all directions

    C/C++ is already dead a few years, it seem to have stopped at defining some cool but useless class keywords and a freaky "STL" ? On the oposite Java is not really pure Sun anymore nor IBM... its already a multifendor platform. Even Microsoft has smelled it a while ago and now tries to sneak in before it really hurts. Strange the Linux people continue flogging the dead horse, with basicly no real useable APIs for application development, trying to define there own ? A operating system is nothing without good APIs (and thats not just drag&drop and some windows, but also Printing, Audio, Video, 3D, Registry, Databases, Plugins, Components), what is missing for Linux, Java already has it ? But Unix has to be C right ?

    - Skalable in Speed

    Java VM is complete abstract, the language and the API (the main part of Java) are not realy tied to the VM ... it could be redefined any time and the current VM is hopefully not the last in compiler technology, especially Software/Hardware hybrids (like Cruso) can make a lot more out of it... well a lot more than out of the 25 year old intel instruction set.

    And plug in a second CPU and Java will make instant use of it... in my opinion there would be options to make JAVA CPUs that would outperforme every now available CPU by using multithread architekture in a single PU. Classic single CPU speed will get less scalable and to get out of the MHz drain multi instruction computing has to become more aware... guess which language has one of the best and most reliable multithreading programming architecture... even novices know how to programm a thread in Java... ever written more than one in C++ ? And got it synchronised succesfull ?

    - Software Design

    There are so many C/C++ design pitfalls (Header and Implementation seperation, Pointers, the quer STL, Operator overloading, Preprocessor and Macros overuse) that make software development a pain in the ass. Java has building blocks of software development and is extended only with features that are necessary and make sense.

    - Complexity

    Java has the power and the clearness to write and maintain applications off higher complexity. In my opinion many software projects (C/C++) are doomed to crash soon or later cause of there unmanagable complexity (the version 4.0 burn out ;)) ... if the core concept of the project is not good it will wash out and get riddled... Java has a good core concept and at least the programmer is not responsible to rewrite basic functions if there is a new OS or bullshit API that thinks it has to reinvent the well more round.

    - Its allready #1 for a lot of things...

    I know more people starting in Java than in C/C++. It is the language that is teached in scools and universities... cause one can get things done and not has to write a suitable String class nor learn the wired secrets of some oldscool APIs to popup a window.

    something will overtake on the left lain ... watch it fly by !

    Not that it will knock C/C++ from the street... but who is driving Assembler these days ?

  35. The Right Tools for the Job by ChaoticCoyote · · Score: 3, Insightful

    "How many times do I have to tell you: Use the right tool for the right job!" -- Scotty, Chief Engineer, USS Enterprise.

    Now where do I fall in a survey like this? After reading it, I conclude that the surveyors asked "Do you use Java?", not "Do you use Java exclusively?". I know lots of people who program C and C++ most of the time while employing Java and other languages as required. In the last month, I've written code in C++ (65%), Java (20%), Python (10%), and Fortran (%5). So I count as both a Java user and a C++ user.

    What rattles my gourd is the way people get so defensive about their programming choices. Why do people get so worked up about one specific tool? I don't know any mechanics who argue whether a box wrench is better than a crescent -- they know that each tool has its uses, and they keep many different wrenches in their toolbox.

    Sadly, the programming business is replete with dogmatic fools who insist that their language or their technology can do everything from counting sheep to curing cancer. And that's just plain dumb (or at best, willfully ignorant, the greatest of sins.)

    A real software engineer uses the right tools for the job. Even Visual Basic is a useful tool, when it is applied to an appropriate task. The same thing holds true for C, C++, Java, COBOL, FORTRAN, Prolog, Lisp, and a myriad of technical tongues. We have all these different languages because different problems required different solutions.

    Surely programmers can be as wise as mechanics... ;)

    1. Re:The Right Tools for the Job by egomaniac · · Score: 2

      "I don't know any mechanics who argue whether a box wrench is better than a crescent -- they know that each tool has its uses, and they keep many different wrenches in their toolbox."

      Hmmm. Let me see if I can take a stab at it. Maybe, just maybe, it has to do with the fact that it takes *years* to get really, really good at a programming language. Boasting college-age geeks aside, you simply can't master a language overnight.

      You can bet your ass that if it took a mechanic years to become truly competent with a crescent wrench, he'd be trying to convince everybody that it was the best tool for every job. I don't see this as a remotely valid comparison.

      I hear a lot of people spouting the "right tool for the job" argument, but I always argue that in the real world people can't simply dump everything they know and learn another language because it's 10% more efficient for a particular problem. Dropping, say, Java and moving to C++ would be every bit as big of an investment as most of you dropping Linux programming and moving to .Net, because in the case of Java there are what, 4,000 classes which are part of the core APIs? That's an awful lot of API to relearn in order to switch platforms, and I don't think your crescent vs. box wrench analogy even comes close to describing the real situation.

      Maybe if you never used anything but System.out.println()....

      --
      ZFS: because love is never having to say fsck
    2. Re:The Right Tools for the Job by CrackElf · · Score: 2

      I have observed the same strange phenomena.

      The only theorem that I can postulate is that most of the (language) evangelists only know one language, and to rationalize it they try to put down other languages. Instead of "I do not use [language x] because I do not know the syntax" they say "I do not use [language x] because it is not as good as [lnaguage y] language". Ok, yes I am generalizing, but I am trying to figure out why there are so many people claiming that their language will be able to complete any and all tasks better. Maybe they are afraid that the other programmers thing is bigger.
      -CrackElf

      --
      "Blake is an idealist, Jenna. He cannot afford to think." - Kerr Avon, Star One, Blakes 7
  36. Re:One more misconception to fix by catseye_95051 · · Score: 2

    Oh I see.

    And you've never seen bqd C programs? bad coders can make crap in any langauge my friend.

    But as you've clearly stated you'ld rather look at bad Java programs then good ones I think you've just absolutely established that you are one fo those who "want to keep their illusions."

    Enjoy them. As a human you are entitled to them.

    Catseye

    "You can laead a horse to water, but you can't make him think."

  37. Re:Good-bye VB! by Ms.Taken · · Score: 2, Informative
    I've coded in a number of languages, and I've found VB to be the most non-intuitive, unfriendly of the bunch. Once you know what += means in C++, you can probably guess what -=, *=, etc., mean too. But knowing that you close an if block in VB with 'end if' isn't going to help you close a while or for loop. Probably all languages have some quirks like this, but VB seems to have a lot more than usual.

    My overall impression of VB is that language development is geared more toward PHB's who are looking for buzzwords than towards programmers. Case in point: OO inplementation. I remember my excitement when I heard that VB was finally going to implement inheritence, and my disappointment when I learned that by 'inheritence' they meant 'button to copy and rename an existing class'.

    My biggest frustration with VB was that I kept running into walls, limits to the language that made it impossible to do what I wanted without some ugly kludges.

  38. Re:Java Quake, whatever.... by JediTrainer · · Score: 3, Interesting

    You mean something like this?

    It's a port to Java of the Quake engine which was never completed because of pressure put on the developers by ID Software. When I first saw it a couple of years ago, I was quite impressed!

    --

    You can accomplish anything you set your mind to. The impossible just takes a little longer.
  39. Re:What about project size? by jonabbey · · Score: 2

    Dunno. The two Java projects that I'm very familiar with here at the lab were 50,000 lines of code (an online timesheet thingy that uses servlets, RMI, and JDBC), and Ganymede, which is about 250kLoc. Beyond that, I know I've seen some project boards up on the wall that show Swing graphics for database front ends and the like.

    I always had the impression that Java was being used for custom application development, either web based or client-server. Java's "bondage and dominance" aspects make it better for large scale app development than for quick one-off stuff.

    See Sun's Swing Sightings Page for a good overview of some more complex stuff being done in Java.

  40. Java and the embedded market by harmonica · · Score: 2

    Java is getting stronger and stronger on the embedded market. EmbeddedJava and PersonalJava are the appropriate environments for that. Of course they don't need 3 megs. Jbed and the like start with a memory footprint of about 8 KB.

  41. Re:C vs C++/Java by scruffy · · Score: 3, Informative
    I look forward to taking the plunge into Java. I'll skip C++.
    I can agree with that. I have been hoping for some time that I wouldn't have to learn C++ very deeply.

    Both C and Java are nice languages because they are small and are appropriate for particular tasks, roughly "low-level" and "high-level" applications. As a language, it seems that there is too much in C++ to be able to learn it well, and C++ tries to have it both ways. Garbage collection in particular is very nice to have for "high-level" programming because it removes one large set of "low-level" details to worry about (or at least, worry a lot less about it). Two more messy low-level details missing from Java are include files and make files. I think we can live without them for many programming tasks.

  42. Re:Really? by UnknownSoldier · · Score: 2

    > but face it, you cant write an FPS in java,

    Want to tell that to these guys
    ( http://hem.passagen.se/carebear/fragisland.htm )

    Their FAQ is here
    ( http://hem.passagen.se/carebear/faq.htm )

  43. Re:language wars by Skapare · · Score: 2

    If you restrict yourself to programming in a single language, that might be the case. I don't. I've been programming in C for nearly 20 years. I had programmed in assembly for 20 years with 13 of those years overlapped with C. I program in PHP today, and have been waiting for Java to make it to serious production capability (I think I see the light at the end of the tunnel now). If someone programs in only one language today, they might well still be programming in it in 10 years, but may also be programming in one or two other languages (to the extent they have the freedom to choose the language that is best for the project, as opposed to having it dictated by a committee of PHBs).

    --
    now we need to go OSS in diesel cars
  44. Java Quake, was shown at Quakecon by catseye_95051 · · Score: 3, Interesting

    Thanks for the vote of java Support.

    It's called JAMID and was shown, to a much impressed crowd, at Quakecon last week.

    (Quakecon is the ID sponsired yearly gathering and tournament of 1300 of the msot rabid Quake fans in the world.)

    Obviously you missed it.

    There's ben some recent discussion abotu it, with quotes from attendees to Quakecon and some ncie comments from Quakecon's organizer-- Evil John, over at Javagaming.org.

    Its nice to know that we're a 'real language' now :)

  45. Jscript is the same thing as JavaScript by delmoi · · Score: 2

    JScript is the same thing as JavaScript. No one is allowed to call anything Java* except sun, (and apperantly netscape with JavaScript), so MS calls it's JavaScript implementation JScript.

    So, you do see a lot of JScript.

    I think you meant VBScript, which, yeh, no one uses.

    --

    ReadThe ReflectionEngine, a cyberpunk style n
  46. Re:Good-bye VB! by stoolpigeon · · Score: 2

    MS aside- why the animosity for VB. I see it all the time, but I never see any reasons. I work with VB every day. I don't understand why it is held in such great contempt.

    --
    It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
  47. The library base and more by Midnight+Thunder · · Score: 5, Insightful
    One thing that I appreciate with Java is the huge library base that it has. There are classes that allow you to do most things without having to hunt for a 3rd party solution or rewriting the wheel inhouse. Also, some of the most commonly used data structures are standard, eg Strings, and you don't need a separate proto-language to put together classes - yes I'm talking about having no need for STL.

    Java does have it draw-backs, such as speed, but this is quickly becoming a non issue on modern computers. Of course computationally intensive work will alway be done in C or C++ that can be compiled to take full advantage of the processor. Another draw-back is that it is very difficult to take full advantage of the underlying OS without writing code using JNI, and thus loosing some protability.

    Yes I am very much pro Java, though I also realise that it can't do everything. It will always be a question of the best tool for the job.

    --
    Jumpstart the tartan drive.
    1. Re:The library base and more by linuxlover · · Score: 3, Interesting

      Amen to that.

      When learning Java 3 yrs ago, one thing attracted me imeediatly was the availability of data structures. (Vector / Hashmaps / RedBlackTree / Sets...). Before that when doing my C/C++ I already had a home brew Vector/Hashmap stuff which I used. The fact it is already in the lanaguage distribution and well tested was a huge win.
      - HOw many times you have pulled your hair in debugging a double linked list (don't tell me you haven't, every C programmer goes through this religiously)
      - you would have atleast try to implement a String class once in your lifetime for C++ (a very good learning experience!, and very good way to get confused about = operators and overloaded functions)

      At that time, STL wasn't even available to me (gcc / Irix) nor it was encouraged by university for projects. b/c what compiles on your IRiX machine might not compile on the solaris build machine & vice versa.

      I thought this is where C++ lagged, an industry standard language coming out with no 'utils' available. Sure I know there are StingRay & tools++. But still nothing beats the feeling of these being readily available.

      Right now I am using a Cayenne libs for Hashtable in C++ and having 'fun' getting it to compile on Solaris. SOme of their header files are 'plain stupid' and won't compile with sun CC 5.0.

      So far if I want to develop an opensource gui application for Win & Linux, my only choice was Java. b/c I can give them a JAR file and it would just work. Now that QT made available free for windows for opensource programs I'd look at it again.

      THis is not a C++/Java flame. I am merely saying that Java language designers did it right & learnt from C++ and academia.

      LinuxLover

  48. Welcome to FastCGI by marm · · Score: 2

    A CGI written in C is almost certainly vastly slower than simiar code writen as a Java servlet. Deal with it.

    Unless you use FastCGI (supported by Apache with mod_fastcgi)... an extension to the CGI spec that, amongst other things, allows persistent processes. Being a simple extension to CGI, it's also completely language-agnostic and cares not whether you use threading, or, for the real gurus and speed demons, asynchronous programming.

    Of course, if you want to lock yourself in to a vendor-controlled, language-specific server-side architecture, that's your business. Why limit yourself though?

  49. Re:it's about cost, not performance by jerdenn · · Score: 3, Insightful

    For example, lets say we have a 600 Gig database of items that we want to run price changes on. The Java app can get it done but, it takes 13 hours. Meanwhile, the C++ app gets it done in 8 hours. This app will likely be around for years to come and it will run every night. So which is the better business choice?

    This is actually a poor example - please spend some time studying n-tiered architechure.

    In such an application, the bottleneck will likely be the Database server, and the speed at which it can perform table updates. The second bottleneck will likely be the network. The C++ or Java business layer will likely spend most of its time in a 'wait' state, waiting for the network or dataset results.

    -jerdenn

  50. Java and templates by SuperKendall · · Score: 2

    Java will have proper generics support in 1.5 (admittedly years off still). Until then using interfaces and generic object support you can get pretty much anything you want done in the same style as templates - witness the excellent Collections package in Java witch is far easier to use than the C++ STL, and provides you with 99% of you collection needs.

    I totally agree with your comment about needing years of practice to become proficient in any language!

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  51. You're hearing wrong by catseye_95051 · · Score: 2

    Modern Java is C equivalent in speed.

    Thats the message.

    Try this article...

    http://www.aceshardware.com/Spades/read.php?arti cl e_id=153

  52. Does anyone remember Assembly language? by olevy · · Score: 2, Insightful

    When I first started programming, there was a raging argument about one language that was super efficient, but a bit hard to program vs. this other language that was not quite as efficient but much easier to program in. Sound familiar? The languages in question were Assember vs. C. I also saw the same arguments with C vs. C++.

    What you have to remember is that programmers are way more expensive than machines. If I can spend $5000 more on hardware and save myself $25,000 in salary costs, that is a pretty good investment.

    And of course this all is based on getting more powerful machines each year. There was a time when programmers really did have to agonize over using Assembler vs. C because memory was so tight.
    There also was a time when we had to agonize over using C++ vs. Java, but that time has passed.

    The rise of Java (or C# or one of the other new and improved languages) is inevitable. But if it is any comfort Java too will be replaced one day as soon as we can afford the next programmer productivity boost.

  53. Too late by Gruneun · · Score: 2

    Microsoft has been trying for years to get rid of Java. Just like Microsoft itself, it's easier to get rid of a standard before it becomes mainstream.

    They tried the same maneuver with JavaScript, but it's still alive and well and I don't see much JScript around.

  54. Re:Not going to happen by Khalid · · Score: 2

    Highly improbable, most of people I know who have tried or who are programming in Java are simply in love with it, and nobody will be able to change that even the Almighty Microsoft. Also Java (and Linux for that matter) is very popular in university as a programming teaching language at least in Europe. Micorosoft is able to change many things but not those kind of things. What we often tend to forget is that they are mere mortal and not god :)

  55. Killer application effect by Pac · · Score: 4, Insightful

    A normal user will install Java for the same reason they will install Real, QuickTime, etc. To see some content, to use an application.

    Notice that those are all huge downloads.

    Also, some comercial software will simply ship the JRE and install it from CD.

  56. Re:What about project size? by tswinzig · · Score: 2

    Developer hours, though harder to measure, would probably provide a more meaningful representation of how "big" a language has become.

    Ahhhh... good way to put emphasis on C/C++, where development takes longer and you'll easily outweigh "developer hours" in Java!

    Tally ho!

    --

    "And like that ... he's gone."
  57. Re:Really? by danboo · · Score: 2, Informative

    can't write an FPS in java, eh? so what do you call the quake clone done by the team at fullsail? it was shown at quakecon just last week and was received very well from what i've heard. see javagaming.org for more info. - danboo

  58. For all you C-ites out there by ostone · · Score: 2, Interesting

    if you wanna talk speed...
    *flashback*
    Programmer 1: "Who would ever use C for applications/system design, I mean it's so much slower and bulkier than assembler."
    Programmer 2: "Well it is more portable..."
    Programmer 1: "To hell with your portability."
    *Today*
    Programmer 1: "Who would ever use Java for applications/system design, I mean it's so much slower and bulkier than assembler."
    Programmer 2: "Well it is more portable..."
    Programmer 1: "To hell with your portability."

    --
    Remove *your pants* to send me email.
  59. Re:I dont think so..... by FatherOfONe · · Score: 2, Insightful

    Lets see.

    I can take your C app that is 100k and do it in machine code for around 5k. I have done this before just to prove it to people!

    Time to scrap C! Oh yeah, your C app will take a heck of a lot more processor to run also.

    Understand the argument?

    Steve Michael
    Network Architect
    steve.michael@performancestrategies.com

    --
    The more I learn about science, the more my faith in God increases.
  60. C++ in decline (?) by Ars-Fartsica · · Score: 3, Insightful
    My own 2 cents is that C++ is just too complex. People wanting to use some of the advanced OO features will have a better development experience with Java or Python, and those wanting pure performance never switched from C in the first place.

    I recently read an article where Bjarne outlined many of the things he had on the C++ wishlist, which more or less were the steps to make C++ into Java.

  61. Java Quake, whatever.... by Sebastopol · · Score: 2

    Whatever. When you can write an FPS game in Java then it will be a real language. Otherwise it will forever be an academic tutorial, just like Pascal, or a langauge for quick hacks, like Perl.

    Not teaching proper C/C++ in college just means there will be fewer good programmers in the world and buggier applications as a result of hiring mediocre coders.

    --
    https://www.accountkiller.com/removal-requested
  62. And the mafia shot kennedy.... by catseye_95051 · · Score: 2

    Explain to me exactly and with what mechanism the JCP "Quashes bug reports?"

    The JCP is repsonsible for the spec. The spec by definition has no bugs.

    Various vendors license the spec and put out implementations. Each is responsible for ist own bugs.

    Now doesn't that make more sense then martians are wathcing through your peephole? If not I have some preforssionals I can recommend to tyou.

    Honestly, this kind of unsubstantiated and illogical raving is worthy of a poltiicain, but not slashdot. Or whoudl you rather I not confuse you with the facts?

  63. Not just the libraries . . . by Goonie · · Score: 2

    C also has better facilities for bit-twiddling, and mixing itself with assembler than Java does.

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
  64. Re:Really ?? by catseye_95051 · · Score: 3, Interesting

    "C... i think I love you... but I want to know for sure...

    come here and hold me tight... oh you move me..."

    Showing my age, but its so ncie to see someone blindly in love :)

    For the record and FYI, the defintion of Java is controlled by the JCP, an open standards organization that anyone can join.

  65. Re:Less Visual Basic Programmers by ackthpt · · Score: 2
    Spent hours on msdn, searching for examples on the web, and checking all the MS references we have, plus the few books I got, including VB in a nutshell. Problem was attempting to create an object holding a user defined type to stuff into a collection. It kept giving me error messages which ran me in circles. Gave up when the project had to move on and did the thing I wanted to do far less elegantly. As user defined types are fairly new, even msdn seems to have a bit of a time trying to offer code examples that are focused on one topic rather than trying to cover several.

    Seen bad java code, too. Worst example was an entire app written as one method within one try-catch. Sad.

    --

    A feeling of having made the same mistake before: Deja Foobar
  66. C vs C++/Java by Skapare · · Score: 4, Insightful

    There are two kinds of developments: those that need object oriented, and those that don't. If course the real distinction is always fuzzy. OO is not a universal method for everything, but it certainly proves its worth for a lot.

    That said, I think the difficulty people will have in understanding the shift to Java is because of the continuing confusion of referring to C/C++ together as if it were one language. C and C++ are not the same language for any practical consideration. Sure, you can write C and call it C++ and it will compile. But C++ is supposed to be something different than C, while giving you stuff C also has. But the distinction between the two kinds of developments mentioned above fall between C and C++. If you don't need OO for your project, then you write in C. Even if you compile it with a C++ compiler, it's still written as C.

    I believe that Java is taking more from C++ than it is taking from C simply because more and more of those kinds of projects (applications) that need OO, do not need the facilities of C. While C++ has good abstractions, it's always been too easy to do it wrong and code like C. Java doesn't let you do that (as easily).

    During the next economic boom cycle, more application projects will begin. Java will be more favored (if you believe all this, and I do). But that won't mean there will be a lot fewer things that need non-OO C ... there will just be a lot more new needs for which Java is an excellent choice. The thing is, those are projects that would not have been done in C anyway; they might have been done in C++ or one of those proprietary languages.

    For me, the biggest reason I stay with C programming, as opposed to going with C++ (for some, not all, since not all projects I do would benefit from OO at the coding level) is because C++ is C with the pluses. While some certainly see that as an advantage, I don't. I see C++ as some kind of hack and fear that what I might have coded in C++ would still be tainted with too much C-ism. It's not the OO part I'm worried about; it's the C part.

    I look forward to taking the plunge into Java. I'll skip C++. Some things will still be done in C. The big reason I have not done so before, or used some other strongly-OO language (like Smalltalk) is because the environments those languages work in have been too "academic". Look at the early hacks just to run Java programs to see what I am referring to. With advances like gcc support for the Java language (and Sun effectively losing pedantic control over it), I'll be able to fit a project developed in Java into a production environment more easily. These advances are shifting the line which determines whether a project benefits from using Java, and improves the margin in favor of OO where C++ wasn't enough to do it.

    In summary, Java will take some from C, more from C++, and it will do this mostly in all new large scale projects for which it is far better suited. The gains will be seen more in percentages, rather than in absolute numbers.

    --
    now we need to go OSS in diesel cars
    1. Re:C vs C++/Java by Skapare · · Score: 2

      I haven't tried GCJ yet, but I don't see why it can't have include files, pre-processing, and make files. This is probably going to be the way I head into Java, because it will allow me to be productive.

      --
      now we need to go OSS in diesel cars
  67. What about project size? by Daniel+Dvorkin · · Score: 4, Interesting

    I don't see number of developers as being all that meaningful a measurement. I'd guess that the vast bulk of Java development is for relatively small applets and servelets, and since that sort of programming is considerably easier than serious application and OS development, the bar for being a Java developer is lower than for being a C/C++ developer. Developer hours, though harder to measure, would probably provide a more meaningful representation of how "big" a language has become.

    That being said, unlike a lot of posters here, I don't see speed as being a permanent impediment to Java's growth. We're already at the point where some serious Java apps are fast enough for everyday use, and I expect that to be more true over time as a) hardware continues to get faster and b) OS support for Java gets faster and more integrated. Mac OS X does a truly beautiful job of integrating Java support into the OS (ironically, better than anything from Sun itself) and some Linux solutions aren't far behind.

    And it's nice to hear that it's taking market share from VB. Java may never live up to Sun's early visions of taking over the desktop, but if it helps slow down or even stop the progression of VB/C#/.NET (and yes, I know these are three different things, but they're all clearly connected as elements of Kaiser Bill's Evil Plan) then that's a good thing.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    1. Re:What about project size? by sql*kitten · · Score: 2
      We're already at the point where some serious Java apps are fast enough for everyday use, and I expect that to be more true over time as a) hardware continues to get faster and

      Amusing that you make this point in support of Java, but were it Microsoft products needing ever faster hardware, you wouldn't hesitate to criticise them.

    2. Re:What about project size? by MSBob · · Score: 2
      That being said, unlike a lot of posters here, I don't see speed as being a permanent impediment to Java's growth. We're already at the point where some serious Java apps are fast enough for everyday use, and I expect that to be more true over time as a) hardware continues to get faster

      This gets said over and over again by Java zealots. Speed is of no concern because the hardware keeps getting faster. If the hardware keeps getting faster imagine the kind of cool stuff people could do with an efficient language instead of the Java bloat. No matter how optimised the VM will always be a speed killer. M$ will keep releasing more powerful and snappier desktop apps while the java zealots will keep coding stuff that's slower and less featureful. That's how it's been for the last five years and that trend seems to remain unchanged. JBuilder and Forte suck ass compared to Visual Studio. Have a nice day.

      --
      Your pizza just the way you ought to have it.
    3. Re:What about project size? by greenrd · · Score: 2, Informative
      No matter how optimised the VM will always be a speed killer.

      Not true. Have you ever heard of dynamic optimisation? A dynamic optimizing VM like Hotspot can actually run some code faster than native code, because it tunes the code to actual runtime conditions.

  68. Java Servlets by Bonker · · Score: 2

    While I personally dislike Java, I think one of the reasons it's doing so well is the ability to create Java servelets on almost all platforms.

    Really these are just overblown CGI applications, but really shine when you're doing something like online reporting or database manipulation.

    --
    The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
    1. Re:Java Servlets by TWR · · Score: 3, Interesting
      Really these are just overblown CGI applications

      No they aren't.

      The last time I used CGI (which was many years ago), each CGI request required a new heavyweight process to be spawned. I don't think this has changed, but I could be wrong.

      Servlets don't work that way. They are part of the same heavyweight process, and you don't need to keep re-instantiating them anyway. Session state is kept per connection, but you can have far fewer than N threads to manage N users.

      A CGI written in C is almost certainly vastly slower than simiar code writen as a Java servlet. Deal with it.

      -jon -jon

      --

      Remember Amalek.

  69. Other languages and bytecode? by thinmac · · Score: 2, Interesting

    The bytecode idea is a really good one, especially with the large (although shrinking) number of platforms you have to support these days, and the possible rise of VLIW processors on the horizon. I don't really like coding in Java all that much, though. Is anyone working on a compiler for another language that compiles to bytecode that will run on a JVM (rather than a internet-c or c# vm)?

    1. Re:Other languages and bytecode? by gkatsi · · Score: 2, Informative

      Quite a few actually:

      http://grunge.cs.tu-berlin.de/~tolk/vmlanguages. ht ml

    2. Re:Other languages and bytecode? by skullY · · Score: 3, Informative
      The bytecode idea is a really good one, especially with the large (although shrinking) number of platforms you have to support these days, and the possible rise of VLIW processors on the horizon. I don't really like coding in Java all that much, though. Is anyone working on a compiler for another language that compiles to bytecode that will run on a JVM (rather than a internet-c or c# vm)?
      Jython (Used to be JPython) does exactly that. Jython is a python intrepreter written in Java, that can compile your script into Java bytecode if you want. And, according to the preface of Programming Python, there's a company that's building yet another python compiler for the .NET framework.

      Not to meantion that python is OO, and being Free Software will probably overtake Java in a couple years anyway. ;=)

      --
      When I was able to do my own spam-armoring, you got a chance to email me. Now you can only hope I see your reply.
  70. Re:Java as a teaching language by Craig+Maloney · · Score: 3, Insightful
    Well, I too did some Java programming, and liked it to a point. This was back around 1998. The problems I encountered were mostly cleint related (Sun hadn't created their now mandatory plugin). I would never consider using Java for a client-side application, and quite frankly lost my appetite for programming in Java. True, it may be approaching C and C++ speeds, and it does get rid of some of the headaches of C and C++, but then again, I've found that Object Oriented programming isn't the complete answer to programming... you need a balance of both function and objects. Not everything can be represented by objects.

    To each her own, I guess...

  71. Playing with statistics by Anonymous+Brave+Guy · · Score: 3, Insightful

    I can't help feeling a bit skeptical here. Who counts as "Developers using Sun Microsystems Inc.'s Java programming language"? I program Java, but I'm no expert. My professional work relies principally on C++, with odd bits of Perl or Python used on the project where they're convenient. Do I count as a "Java user"?

    I suspect that the reality is that more programmers may now know Java, at least to a "competent" level. This is an inevitable result of the current trends in academia, and of course the hype of a couple of years ago. On the other hand, how many developers actually use Java as one of their primary languages is a different question, as is how much production code is actually developed using that language.

    Reading between the lines of the article, I don't see anything to dispute this theory. And how can Java be rising "at the expense of" C, C++, VB and such anyway? Surely programmers who use these languages aren't just forgetting them in order to learn Java! This whole thing smacks of misleading statistics -- anyone know who sponsored the survey?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Playing with statistics by tswinzig · · Score: 2

      I program Java.... Do I count as a "Java user"?

      Uhhhh, yes.

      --

      "And like that ... he's gone."
  72. Re:One more misconception to fix by catseye_95051 · · Score: 2

    Because, first off you obviously don't WANT to find them since I told you were to look for 3 good examples.

    Here's another, a very sophisticated UML tool -- IMO better then Rational's Rose.

    www.together.com

  73. Re:really? by WolfWithoutAClause · · Score: 2
    The current Java technology is plenty fast enough.

    DVD can be done. Java is actually as fast as C++ for numeric intensive applications such as that.

    CD-R is quite doable in Java if you code it carefully; you don't get garbage collection pauses if you don't generate any garbage...

    Java isn't you're fathers Java any longer, it's not quite as fast as C++, by and large, but it's often within a small percentage; and with current processor speeds, but mostly who cares about even a 50% hit?

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  74. Nice Applet, but JAMID is a full screen game by catseye_95051 · · Score: 2

    JAMID has been favorably compared to Quake2/Unreal by EvilJohn, the organizer of Quakecon. (You can see the comments at javagaming.org).

    And it was written in 1 month by 3 guys.

    How long did Quake 2 and Unreal take to write in C?

  75. Java is more than you think... by Glock27 · · Score: 3, Interesting
    Maybe I have entirely missed the point, but compare C/C++ to Java is like comparing apples to oranges. C is not generally an interpreted language and therefore has completely different applications. Perl, Python, C#, and BASIC are usually interpreted languages and are comparable.

    Yes, you missed the point. First, the VM based versions of Java (using adaptive compilation as opposed to simple interpretation) are now very competitive with C++ speedwise. Sometimes slower, sometimes faster with usually a fairly small delta.

    C is generally more efficient, but you lose object orientation.

    Finally, there are traditional ahead-of-time compilers for Java like gcj (which shipped with gcc 3.0).

    Java is well suited to a large percentage of programming tasks. For those areas where its not appropriate it can (fairly;) easily call C/C++.

    Java is open, productive, fast, cross-platform, widely taught, supported by every significant software company, and somewhat future-proof. What other language/platform comes close?

    The real proof will be forthcoming - when many anti-Java Luddites are in the unemployment lines, still complaining about it... ;-)

    186,282 mi/s...not just a good idea, its the law!

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  76. Actually, if you think about it by Zecho · · Score: 2, Interesting

    Hardware designed to run Java seems to run it fine and with a huge amount of speed increase over normal pc hardware.. By that line of thought, all that needs to happen is for SUN to get with the hardware mfgs, spread around a little bonus money , and get them to better support java apps. Java's a little complicated to program in, I'll admit I tried it, didn't like it, but I'm a little cpp biased.

    1. Re:Actually, if you think about it by egomaniac · · Score: 2

      I'm truly not sure how the "Swing is slow" bandwagon got started. Maybe Java2D (the graphics engine powering Swing) has performance issues with some video card/driver combinations, but I've used Swing on everything from a PII/350 to an Athlon 1200 and never seen any such problems. Admittedly, Swing *was* quite slow in the really, really early days back when it barely even worked, but no reasonable version of it (IMHO) has ever had a serious performance problem.

      For the record, I'm currently working on a massive enduser Java application using Swing. Resizing JInternalFrames is slower than I'd like, but I have no complaints about anything else (I can even make half the components partially transparent without affecting rendering speed at all). I hope to have it in beta late this year.

      --
      ZFS: because love is never having to say fsck
    2. Re:Actually, if you think about it by Fly · · Score: 3, Insightful
      How can you possibly say that "Java's a little complicated to program in?" If you're using C++ (I assume you are not referring to the C precompiler by "cpp"), I cannot understand how Java is anything but SIMPLER than C++. Java has a single, consistent object model. You don't have to worry about objects on the stack versus objects on the heap. Java doesn't have all of the funkiness caused by mixing class types with typedef'ed other stuff; there is just the simple reference type for all objects, including arrays.

      After programming in C++ and Java each for several years, I can only say that C++ is the more complicated of the two. I do not like using Swing (Java's standard GUI components), but I haven't tried them for just over two years now, and it may now be much improved. For the server-side work I do now, Java beats C++ hands down for ease of use.

      All of the following and more make Java simpler, though they cost a little bit in flexiblity and speed. However, server-side Java (forget about Swing and how slow it is) performs quite well for me. Today's PCs seem to do a good job running Java. I've been pleasantly surprised by just how much better JIT was over non-JIT and again by how much better Sun's Hotspot JVM and IBM's JVM are than earlier JIT JVMs. Special hardware might be useful for embeded devices, but mainstream CPUs work quite well for server applications.

      • single reference type
      • no operator overloading
      • garbage collection
      • no parameterized types
      I've often wished for some of the items above, but in the spirit if KISS (keep is simple, stupid), Java wins for me.

      end of line

      --
      end of line
  77. Re:Really? by WolfWithoutAClause · · Score: 2, Informative
    Basically, all benchmarks comparing different languages should be taken with a sackload of salt. These are some of the more reasonable comparisons I could find in about 10 minutes. As a rule of thumb I think that any benchmark older than 12 months should probably be ignored; there's been too many improvements since then (many of these benchmarks are slower than gcc but some are faster):

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  78. Heheheh. by Nevrar · · Score: 2, Funny

    Someone forgot to moderate the article as Flamebait...

    --
    Nevrar
  79. Further evidence against Microsoft... by sterno · · Score: 2, Troll

    So Microsoft is not including support for Java in .Net and Windows XP. Isn't that interesting? You'd think that a language, soon to be used by 60% of developers, would be worth supporting. I mean if they are not going to support Java, why are they supporting C++? I mean less people are using that, so why support that if you won't support Java?

    Of course it's real simple, C++ doesn't threaten Microsoft's monopoly. They'll even support perl because they don't see it as a threat. It's certainly not that Perl has some broader base of developers.

    --
    This sig has been temporarily disconnected or is no longer in service
  80. FUD alert by Anonymous+Brave+Guy · · Score: 4, Informative
    I recently read an article where Bjarne outlined many of the things he had on the C++ wishlist, which more or less were the steps to make C++ into Java.

    Stroustrup's presentation notes can be found here (PDF format). I invite anyone interested in knowing what he actually said to take a look. It certainly doesn't sound much like Java to me.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  81. But what is "speed"? by e2d2 · · Score: 3, Informative

    Well I guess it depends on how you measure "speed". Do you mean perfomance time related to the application itself or do you mean time to market? Which is more expensive for a company - hardware or humans? The human cost is often overlooked when we speak of how "speed is of the essence".

    I know plenty of developers that like Java simply because it's easy to program and you can roll out applications relatively quickly when compared to C++. Now I know that statement is opinion and everyone has an opinion, but saying that Java is slow is misinfomed. Given that applications are so network-centric these days, Java can truly shine in a server environment where the resources are plenty.

    But to be honest, comparing these two languages is not fair. Here is a good article on why they are apples an oranges

  82. Not Scientifically valid by ClosedSource · · Score: 2, Insightful

    There's no margin of error quoted so this is obviously not a scientifically valid survey.

  83. Sweet Fucking Christ by szcx · · Score: 5, Interesting
    So Evans Data Corp. presented a "study" that was funded by IBM at an IBM conference that said Java is going to take over the world and that Linux is swell. Well color me the suprised.

    Seriously, folks. Does one avoid taking this kind of study with a grain of salt simply because it supports a Slashdot Approved Technology?

    If this had been a study sponsored by Microsoft presented at a Microsoft conference supporting Microsoft technologies, people would be gathering up the pitchforks and flaming torches.

    Feel free to mod this down to the pits of Hell, but we both know it's true.

  84. Why do they mention C with C++? by stikves · · Score: 2, Informative
    What about C? Many "serious" work is done with C, and it seems it will take more than one year for this to change.

    Look at all those OS kernels and low level software. Is there there any way that Linus will throw away his kernel for a Java replacement?

    Ok, I hear your arguments. But it is not about choice of language. It's about choice of model.

    In C, you're developing in structured programming model. In C++ you're developing for object oriented programming model. C is the best known language in its model. It has easily killed BASIC, PASCAL or any other competitior. And Java is a very strong language in its arena it seems like it will be able to kill C++ in a year (as the article says) and any other competitor (Smalltalk, ObjectPascal) is already out of the way.

    But until we change the way this machines operate object oriented model will not dominate. Thus in a few years we may see KDE replaced with Java version. But it's unlikely to see Linux replaced by JOS (http://www.jos.org) in even twice that period.

  85. Re:Less Visual Basic Programmers by scott1853 · · Score: 2

    If MS writes good documentation then they can't charge you $$$$ for training seminars. C'mon, the poor guys only made something like a measly $25 billion last year. You can't expect them to make enough money by simply screwing you on the OS and the IDE.

  86. office suite by Misha · · Score: 3, Informative

    I don't know about CD-R or DVD (though I suspect most limitations consist of the lack of a hardware speaking interface in Java), but with the Office suite comment, you are refering to the lack of a fast windowing toolkit for Java.

    Believe it or not, that's about to change. If you've ever seen IBM VisualAge environment, you should know that's written in Java. The window speed is just as fast as any office suite. I was surprised just how fast it was.

    The people who wrote VA work for a company called OTI. The windowing kit they used was something proprietary and closed called JFace, but from what I understand, they are ready to release and open-source it to the public in the next few months, although the website is password protected right now.

    Don't sell Java short. it's not system level programming, but it's hardly something to be dismissed as 'too slow'.

    --



    I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
    1. Re:office suite by SlashFrog · · Score: 2, Informative

      VAJ is written in Smalltalk. VA Micro Edition is written in Java. The new version of the VAME IDE is called "Eclipse" or alternatively the Websphere Workbench download. You can get it at http://www.eclipse.org

      --
      --- One world, one chance Doc.
  87. C++ overextended by Proud+Geek · · Score: 2

    This isn't a sign of the superiority of Java or the inferiority of C++. It's just a sign that C++ is way overextended, from the systems and large applications realms into the realm of multi-tiered applications with database backends. There, efficiency and bend-over-backward flexibility are much less important than fully featured libraries and short development cycles are much more important. I'm surprised that VB is suffering, though. That's a product with a place where it is clearly the best. In my Perl niche, I can feel Java squeezing in at times, but I'm pretty safe. C++ still has way too much of the market for me to worry.

    --

    Even Slashdot wants to hide some things

  88. Yep but take a deep breath by catseye_95051 · · Score: 2

    Keep in mind that Slashdot is bastion of C/C++ hackers who really don't want their skills obsoleted.

    It is easier to light one candle then curse the darkness, but its human nature to stand in the dark and curse.

    I found the "Java Quake" comment particualrly amusing siocenw e just SHOWED exactly that at Quakecon last week :)

  89. Re:Good-bye VB! by Pinball+Wizard · · Score: 2
    This means one cannot keep several iterators around at the same time and manipulate them independently

    Actually you can. True, only one iterator per connection(you are using ADO, I'm guessing), but you can create multiple connections to the same database and get multiple iterators(MoveNext, etc).

    There's no reason to do your VB programming in Access BTW, unless your intention is to distribute your app along with an Access database. Use VB proper to connect to an Access database and you'll find less limitations.

    The next generation of MS programming tools looks pretty good. VB will be strongly typed(no more voodoo variables), and fully object oriented, supporting polymorphism and inheritance. I imagine a lot of games will be programmed in VB since it will have hooks into DirectX.

    Also, outside of VB C# looks killer and should serve to do away with MFC, at least for new applications.

    --

    No, Thursday's out. How about never - is never good for you?

  90. Oh and Java 3D is MUCH more then an OGL wrappper by catseye_95051 · · Score: 2

    It s a very sophistcated scene graph system which cooks down to display lists for speed... and all that logic is in (very fast) Java.

    Which is why it took 3 guys 1 month to write JAMID.

    Try doing that in C ontop of OGL.

  91. Not only Sun by harmonica · · Score: 2

    There are quite a few firms creating products based on those standards.

  92. This all makes sense now by Jucius+Maximus · · Score: 2, Flamebait
    "I like it because I don't have to worry about several different OS's and garbage collection."

    As I see it, the sole reason Java seems to be overtaking C/C++ is that it doesn't actually have proper garbage collection. If it did, then 90% of programs would self-delete upon execution.

  93. Re:really? by WolfWithoutAClause · · Score: 2

    I never said you can write it in Pure Java... Java yes, C yes, if you compare, more or less, oranges for oranges then Java is quite comparable to C/C++ which is the real point of this item isn't it?

    i.e. C + suitable libraries -> DVD player
    Java + similar libraries -> DVD player

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  94. Re:Java lacks genericity... by The+Mayor · · Score: 2
    Yes, you can. You need to use the Generic Java (gj) compiler. The resulting bytecode is compatible with any standard JVM.

    Also, Sun is planning to officially add generics to Java for the upcoming JDK1.5 release.

    However, I would contend that most cases where templates are used in real world programming, they shouldn't. Readability and maintainability can go out the window without judicious care programming templates. Templates are ideal for containers, where they assist readability and maintainability. But in many (most?) cases, they result in code that is difficult to maintain.

    This is, in my opinion, the reason Java will overtake C/C++ in popularity/use. Java code, with all its simplifications over C++, is easier to maintain and write. The results in fewer projects that end in failure. It also results in code bases that last longer, due to easier maintenance.

    --
    --Be human.
  95. Java or Javascript? by lseltzer · · Score: 2, Insightful

    I find it's very common for people writing Javascript (or maybe just cutting and pasting) to refer to it as Java. To this day there's incredible confusion over the names.

  96. In 2002 War was beginning... by siegesama · · Score: 2, Funny


    But then out of nowhere in 2004 comes D! D shall over-throw them all!

    --
    what the hell is a 'junk character', anyway?
  97. Re:Really? by Kingpin · · Score: 2, Informative

    As for FPS, the next JSDK release (1.4.0) contains an exclusive mode that allows you to disable the windowing system. See the fullscreen exclusive mode API tutorial. There's already a bunch of OpenGL wrapper API's also, with the upcoming OpenGL 1.3, the JVM just may be the application that ships with games rather than DirectX. This is a very good thing as this means games being just as portable as Java, ie. the very same game runs equally on Solaris, Linux, HP and Wintendo. So gamers install JVM's - who cares about Microshaft shafting Java in XP? However idealistic, it's food for thought.

    --
    Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
    Geocrawler error message.
  98. Re:Really? by bugg · · Score: 2
    C++ is definetly not a low level language. Where did you get that idea? They're both (C++ and Java) in the same ballpark for abstraction- C is only slightly more low level.

    Sure most JVMs suck; cope, that'll get better. Also, has anyone heard of any java compilers that write real assembly for your processor, and not just java bytecode? That'd be a step in the right direction for a lot of things..

    --
    -bugg
  99. Nope, not even. by catseye_95051 · · Score: 2

    BZZZZT

    Wrong answer.

    Java has had hardware support for Java2D (and thus Swing) since JDK1.3 JDK1.4 brought in VolatileImage which allows full access to the card-resident memory and on-card graphcis ops.

    Well coded GUIs havent been slow in Java for a long time. But ofcourse this is typical of the time-lag in your average Slashdot knoweldge of whats goign on in Java.

  100. Re:really? by Jeffrey+Baker · · Score: 2
    Right, so, as I said, you can't write a DVD player in Java. You can write the GUI to control a DVD player in Java, but you can't write the DVD player itself in Java. You can't write it in C either. If you tried to write a DVD player in straight ANSI C, I don't think it would give you quality playback, even on a 1.4 GHz Athlon. Maybe on something more powerful, but I'd be surprised if any CPU can do everything (MPEG parsing, IDCT, motion compensation, deinterlacing, AC3 parsing and decoding, colrospace conversion) in software.

    Oh, how were the Java DVD player people planning to get all that data to the screen? You'll need more native methods to make sure that data can be sent efficiently to the output device. Did I mention that there is no way to write a DVD player in Java without native methods?

    As for the altivec extensions, they are syntactical extensions to the C language. So you can simply say vector aVector, bVector; vecmul(aVector, bVector). It's not really like programming in assembly.

  101. Storming the Bastille? by rkent · · Score: 2
    What, are they rival military forces now? Is java going to storm C++'s Bastille? Land at its Normandy? Make it sign a punitive treaty at Versailles? Enough with the war metaphors already! They're inanimate programming languages and can coexist in peace, damnit!

    (p.s. Yes, I know I could RTFA to clear this up, but it's an editorial complaint)

  102. Re:Really ?? by andyh1978 · · Score: 2
    Stroustrup should be horse whipped for tying his bloated mess to C. I think I'll start working on D.
    That's going from one extreme to the other :-p

    You have to be in an OO mindset to write good C++; but when it comes to compromises for the sacred reason of 'performance', at least with C++ you can fall back closer to the metal. Java doesn't give you the option; it has a laudable aim of being write once, compile anywhere, and pure-OO, but it's simply not true, with the differences between VMs.

    C++ doesn't pretend to do that; it defines a language and the STL that are platform independent, and then you hook it in with platform-dependent libraries for whatever system you're compiling it with. If written well, you can abstract everything enough and have conditional compilation for every platform, which gives you the compromise between speed and platform-independence.

    Java, and dare I say, C#, are going for the 'maximum abstraction, minimum platform dependence' approach by effectively _being_ a platform. When it comes down to it, C and its sucessor C++ have had several years of development by some of the greatest authorities in software engineering, which is pretty hard (not impossible, but hard) to beat.
  103. Re:Depends on your definition of "overtake".. by Prior+Restraint · · Score: 2

    And your explanation of the divorce statistics are overly concise (to the point of error). I won't dispute your idiot theory (having no data handy), but even granting that, then it's the percentage of successful marriers that is actually much higher.

  104. Re:Java as a teaching language by egomaniac · · Score: 3, Insightful

    I do like how paint Java with the brush of religious zealotry with your use of the word 'saved'. Quite effective.

    Back here in the real world, I work at a company with mixed C++/Java development. Primarily C++, with the Java teams (of which I am part) barely tolerated by the old-school management. Amazingly, despite the fact that our code performs better than C++ (true) and we are always far ahead of schedule while the C++ teams running into roadblock after roadblock (also true) we still have to continually justify our use of Java to the C++-loving managers. I also thought it was pretty funny how difficult it was for the C++ guys to upgrade from FreeBSD 2.6 to 4.0 while we can move between Windows and pretty much any flavor of Unix without even noticing.

    I programmed in C++ for many years, and I thought it was a flaming piece of crap the entire time. I'm endlessly amused by opinions like yours that I'm somehow not a "real" programmer because I choose not to flagellate myself with the whips of dangling pointers, stack vs. heap allocation, ridiculous usage of overloaded operators, broken templates and exception handling, inexplicable linkage errors, and who-knows-what-else that I've managed to supress in my subconscious.

    My question is: what don't you like about Java? I've coherently summarized my argument against C++, and believe me I can (as a past C++ developer) get into quite a bit more detail if I need to. What's your position against Java?

    --
    ZFS: because love is never having to say fsck
  105. it's about cost, not performance by jilles · · Score: 3, Insightful

    CPU's and memory are cheap, good programmers are expensive. Your assumption that speed is essential is correct but it applies to time to market more than to performance. Execution speed is not so relevant since hardware is relatively cheap compared to programmers (even lousy ones). The year salary of one programmer will likely solve any performance problems you have when converted to extra hardware.

    Swing is not lightweight but given a decent PC it will run. In fact all development tools I use are written in Java and I'm not complaining about performance. I'm sorry I can't show you a java program that is faster than the C++ version. However most java applications I could show today, you would still be in development if they were written in C++. That's why java is picking up, you get things done in it.

    That's also why Java became popular on the server first. Typically server software is "one of a kind" meaning that each month spent on developing the app adds to the cost. If you have a small development team of say 5 persons costing about 5K $ (good luck finding them that cheap) and you can save 1 month that translates into a lot of hardware. Java development is generally seen as somewhat faster than C++ development so that translates into huge savings on one of a kind software development. Also Java is very scalable, it literally can run on anything from a credit card to a mainframe, so if you have a performance problem, throwing more hardware at it will likely make it go away. And since you develop faster you have something extra to spend. That's why many people creating server software have adopted Java. It works, it works reasonably fast and it scales nicely.

    --

    Jilles
    1. Re:it's about cost, not performance by DJerman · · Score: 2
      All of this explains why my last two clients (think big, big organizations) have turfed Java and standardized on COM+/VB.

      Is this why I'm always getting ODBC errors at Microsoft and other sites, when I try to send in comments? Thanks for explaining how 10x savings makes unreliable systems desirable!

      --
  106. I dont think so..... by Lumpy · · Score: 2

    Let's see. I have an embedded linux device.
    I can write it's app in C and have it take up 100Kbytes or I can write it in java and have it take up 2.3meg.. Yeah, I'll go the java route, oh and I need to upgrade my processor to deal with the huge overhead of the JRE.

    Java is not going to overtake anything except in the cross-compatable on powerhouse platforms. It's too bloated and too slow for anything but.

    --
    Do not look at laser with remaining good eye.
  107. Re:Really? by WolfWithoutAClause · · Score: 3, Interesting
    I'd certainly challenge the assertion that Java is slower in all cases than C++. Some of the performance benchmarks for Java have exceeded those achieved or matched those by reasonable C++ compilers, particularly in numeric intensive benchmarks.

    An FPS in java is not a dumb idea at all; most of the performance in framerate is determined by the graphics drivers, and it wouldn't surprise me if the guts of that isn't assembly anyway- the game logic may have little to do with the frame rate.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  108. Re:Java Portable Apps? by BlackSol · · Score: 2, Informative

    How many different types of cell phones/pda's can you think of? Many, right?

    Wanna write an app for them? which one are you going to pick?

    Portability. Write it in Java and all the units with Java suport can run it despite drastically (or not so drastically) different hardware.

    --
    $sig=$1 if($brain =~ /idea\s+(.*)/i);
  109. Re:Really? by siegesama · · Score: 2, Insightful


    Surprising as this may sound, there's more to the world than kernels and first-person-shooters.

    --
    what the hell is a 'junk character', anyway?
  110. Re:Pascal, C++ and Java. by Craig+Maloney · · Score: 2

    Part of the difference between Pascal and Java is Java is the embodiment of a completely Object Oriented language, where Pascal was another in the long line of function-based languages. Pascal's role n the academic world was more as a training language for other languages like C, Modula, or Ada. Java, on the other hand, is a paradigm shift. That's why Java is gaining ground outside the academic world where Pascal merely floundered.

  111. Re:XP effects? by John_Booty · · Score: 2

    With hundreds of thousands of copies of an OS that won't do Java, that will have a very deep impact on developers. It doesn't do much good to make software that nobody can run.

    Yeah, but how popular was Java on the client side, anyway? I don't see many client-side Java apps. Java seems to have found its niche, and it's server-side development (server apps and server components).

    As for client-side Java web apps... they're usually stupid and frilly anyway. I've seen soem "wow, that's neat" ones but never anything useful...

    --

    OtakuBooty.com: Smart, funny, sexy nerds.
  112. Re:really? by Jeffrey+Baker · · Score: 2

    Sure, and then your DVD player is written in assembly, not pure Java. Remember, pure Java means, in part, that it includes no native methods. Reference

  113. Re:Less Visual Basic Programmers by ackthpt · · Score: 5, Insightful
    We've had to adopt VB at work, and it's easy where problems will crop up and how weak documentation for a One Vendor product can be. When I visited Computer Literacy, in San Jose, I expected to see many texts on VB and related subjects. What blew me away was the plethora of Java texts. If the books didn't sell, they wouldn't have them.

    On a second thought, Java _was_ wildly popular among many of the dotbombs. Possibly the study is based too heavily on that time period. Does it still hold it's proportion of growth, or are IT shops, like us, drifting toward VB and other M$ development languages/suites?

    --

    A feeling of having made the same mistake before: Deja Foobar
  114. Re:really? by Jeffrey+Baker · · Score: 2

    Oh, I forgot to mention something. Its going to suck a lot for the Java DVD player when the GC comes along and and makes everything stop for 50ms. You'd have to write the program such that it generates no garbage at all, so as to not tickle that particular Java feature. Personally, I don't use Java where timing is any kind of problem.

  115. Re:Less Visual Basic Programmers by Floofnargle · · Score: 2, Informative

    I use both Java and VB (and other things) and find it odd to hear that you can't find the information you need for VB, because I've always thought that MS's online docs were well-organized and complete. Usually when people complain about them they haven't explored what's available. It's usually possible to get a very specific answer to a given problem, often with sample code.

    Try msdn.microsoft.com. Don't mess with their site navigation, just do a full text search.

    As for books, quantity is not as important as quality. How many books on VB do you need to read?

    VB does make it easy to write horrificly bad code. But in the hands of someone who knows the tool, it also makes it easy to write elegant software. For that matter, I've seen some awful Java code, too.

  116. XP effects? by wetdogjp · · Score: 2, Redundant

    There was news that Windows XP will not ship with any native support for Java. Certainly, a user could add Java support him/herself, but how many users are going to take initiative to do so?

    With hundreds of thousands of copies of an OS that won't do Java, that will have a very deep impact on developers. It doesn't do much good to make software that nobody can run.

    Granted, many a Java developer's projects are meant for *nix environments, which is just one more pro for the side of good. But I wonder how XPs lack of Java support will affect the number of Java developers.

    -WetDog

  117. Re:Java lacks genericity... by joss · · Score: 3, Funny

    1. your routine is ugly as fuck, given two objects, it would take less code to inline the function than call it.

    2. having to use arrays like this because references don't exist brings up a whole bunch more problems because not only can people mistakenly swap different types of object, they can pass wrong sized arrays.

    3. compile time checking is better than runtime checking, a *real-life* example would have to come from a large program so I can't be bothered, but the fact remains that this kind of programming encourages bugs.

    4. your function won't work on int/float/boolean/etc because they are not derived from Object. Use a real OO language like smalltalk if you want single root done right.

    --
    http://rareformnewmedia.com/
  118. Re:Really? by WolfWithoutAClause · · Score: 2

    >Only a true Java developer could write something as foolish as this.

    Really? Actually I'm a C++/C expert.

    >Why do you think the behavior of enemies in games are so predictable?

    Been listening to you too much? ;-)

    Or, more likely since noone listens to you; the developers had to spend ages trying to get rid of the random crashes caused by wild pointers and array overflows; and they had no design time left to improve the AI.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  119. Programming for Business by whjwhj · · Score: 5, Interesting

    OK I've read a dozen or so posts dissing Java because it's "Stupid" or "Slow" or "None of the apps I run are written in Java" or whatever -- which forces me to say this: Programmers who write in Java are writing code for distributed enterprise applications. They're professional computer programmers, not ether breathing geeks such as ourselves. I say it's waaaay past time that we all collectively pull our heads out of our asses and realize that the world doesn't revolve around Linux/Perl/GCC and Kernel patches!! There's a whole world of programmers out there (who DON'T generally post to this forum because they're too busy getting work done) who don't live and breath everything Linux day in and day out. They work for a living.

    End of Rant.

  120. Java as a teaching language by Craig+Maloney · · Score: 4, Interesting

    Unfortuantely I see Java being used more and more as a teaching language in universities, ergo more and more developers graduating out of schools are learning Java. Very few college programs will teach anything like C or C++ when they can teach object oriented programming using Java. These developers then move into the private sector and recommend developing using Java to their superiors. It's a vicious cycle. this is also the natural progression for those who are "saved" by Object Oriented methodologies.

    1. Re:Java as a teaching language by Craig+Maloney · · Score: 2
      No, it just means that I don't believe that Object Oriented methodologies are the panacaea you make them out to be. A mixture of objects and functions can produce some very elegant results as well. Java does not allow this programming style. This is where I take issue with a complete Object Oriented system. Why limit yourself to one paradigm?

      It's not my intention to debate this on Slashdot.

  121. Specialization is for insects... by ChaoticCoyote · · Score: 3, Insightful

    ...to quote Robert A. Heinlein.

    The hallmark of an excellent programmer is the ability to learn and adapt. When I hire someone, I pay more attention to their attitude, creativity, and intelligence than I do to their list of "I knows". Certifications, degrees, and laundry lists don't necessarily impress me; capability and a willingness to learn always catches my interest. And anyone who comes in as a language bigot (or ignoramus) isn't going to be getting a check from me...

    I might add that I've been quite successful in finding excellent talent.

    As for mechanics -- well, I've spent enough time with gear heads and grease monkeys to know that working on mechanisms isn't something you pick up overnight.

  122. Re:Gotta love that "research" by gnovos · · Score: 2

    Oh, very true. For example, if I were to do a poll here at MY office, I could tell you that 100% of the developers here use Java! 100%! Wow, there are no more programming languages being used anymore! They are also 100% male, which means that the end of the human race is getting close... :)

    --
    "Your superior intellect is no match for our puny weapons!"
  123. Depends on the application... by Svartalf · · Score: 2

    Java, by design, has GC- can't get away from it. (Nor, do you want to- that's what makes some of it's selling points possible in the first place!)

    Garbage collection would slow/stop a system while it was being performed- it doesn't matter how much horsepower you throw at a problem it still will render it non-deterministic. For some things, that could be tolerated- for a vast majority of things out there it'd be obnoxious to downright deadly to be non-deterministic.

    You don't want predictable or unpredictable slowdowns in these sorts of systems:

    Fly-by-wire avionics.
    Industrial process control.
    NC milling.
    Automotive ignition control.
    Military Command and Control (incl. Signal warfare systems- SigInt, ECM, ECCM, etc.)
    Any consumer appliance (How about a microwave that takes a couple of seconds longer to cook something- some of the time...).
    Automotive control computers (try a system that doesn't shift the transmission at the right times because it's delayed a second for GC...).

    No, not all of this is coded in C/C++. Some of it is in assembly, yes. Some of it's in Jovial, ADA, Eifel, etc.

    Pick the tool that makes sense for the job. I don't think a language designed for set-top boxes (That's what Java was...) is suited for much of anything other than things like Word Processors, etc.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  124. Multiple paradigms by ChaoticCoyote · · Score: 2

    One advantage of C++, in my experience, is its support for multiple paradigms. C++ isn't an object-oriented programming language, or a functional programming language, or a procedural language -- but it allows me to use all of those paradigms as needed to accomplish a task.

    Software is like religion in that one solution doesn't fit everyone. Frankly, I'm happier with a well-written piece of Visual Basic than I am with a sloppy piece of C++.

    As for functional programming: I think it is another excellent tool, but much overrated by its adherents. Note that I also have the same opinion of object-oriented programming and other paradigms. Each paradigm brings ideas to the table, providing new insights and techniques. None is perfect, and several can be quite useful.

  125. Depends on your definition of "overtake".. by Bowie+J.+Poag · · Score: 5, Insightful



    The study cited in this article refers to the number of people with Java skills, not the number of programs released. To quote:

    "Java usage is even stronger outside North America, with almost 60 percent of developers expecting to spend some part of their programming time using Java."

    This is one of those misleading statistics, like "Half of all marriages end in divorce".. What most people fail to realize is that the statement is not factually concise.. There are idiot-men and idiot-women who get married and divorced several times, which accounts for a disproportionately high "overall" divorce rate. The percentage of successful marriages is actually much higher, just the same as the number of coders actively writing in C all the time is much higher than the number of coders actively writing in Java all the time.

    Lame article.

    --
    Bowie J. Poag

  126. Them Jafa Beans by RalphTWaP · · Score: 4, Funny

    Everyone knows that java's been underlying program development in all languages. After all, computer scientists are machines for turning caffeine into algorithms, right?

  127. Good-bye VB! by pinkUZI · · Score: 2

    It's evidently taking developers from the C/C++, but also the Visual Basic camps, with strong growth overseas.
    It's about time!
    Die Basic! Die!

    --
    You are receiving this message because your browser supports Slashdot Sigs and you have Slashdot Sigs enabled.
  128. Re:Really? by SheldonYoung · · Score: 4, Insightful

    You are correct. Fortunately, the vast majority of software development isn't about ultra-high performance applications or systems programming. It's about making applications that solve a problem, and the problems are almost never about speed or being low-level.

  129. Re:really? by Jeffrey+Baker · · Score: 3, Informative
    You wouldn't be able to write a software DVD player in pure Java on today's CPUs and today's Java runtimes. Software DVD players rely on the CPU's vector or SIMD processing facilities, like MMX, SSE, and SSE2 on Intel, or AltiVec on PowerPC. Last I looked, there wasn't any way to access this stuff from Java. To take advantage of the hardware, the Java runtime would need to recognize computation loops, unroll them a bit, stuff the operands into right registers, and execute the desired operation. Even then, the C or assembly routines in use today are so fast because they get the instruction scheduling just exactly right. Without precise control over instruction scheduling, you'll stall the CPU and that's the last thing you want in a software DVD player.

    AltiVec's C API is the highest-level vector API I've used. It has unambiguous and standard C syntax extensions for vector operations. Yet, we still don't have C compilers that can automatically vectorize code. I'm having trouble imagining a Java tool that could automatically vectorize code where Java has no way to express vector operations.

    Maybe you could write a Java DVD player that was the equivalent of cat /dev/dvd /dev/hardware-mpeg2-decoder-device, but that's about the extent of what you could do in today's Java.

  130. Re:I reckon the reasons are artistic by be-fan · · Score: 2

    Its a metaphor. Order is truth, truth, beauty.

    --
    A deep unwavering belief is a sure sign you're missing something...
  131. Re:Java Portable Apps? by siegesama · · Score: 3, Informative


    Processor power is up, and cheap. Architecture isn't standard. Write a VM once for an architecture, then you can run all your pretty PDA Java applications irregardless of what you're running them on. You're suggesting that every portable-item have all of its applications coded specifically for it. Even if the only games in the world were solitaire and nibbles, that's a lot of applications to re-write everytime a new device comes out with a slightly different architecture/instruction-set/whatever.

    Oh yeah, and Java is a buzz-word. Makes people happy when they have a buzzword-compliant item. The toys just seem so much COOLER then.

    --
    what the hell is a 'junk character', anyway?
  132. Re:I reckon the reasons are artistic by be-fan · · Score: 2

    Wow. So that's what french crack does ;) Anyway, I take offense to your statement that scientists don't appreciate beauty. Science is all about finding the underlying beauty in the world. As it has been said many times, Truth is Beauty. As for C++ programmers, I find a piece of code that uses hardware 99.9% efficiently to be beautiful. Meanwhile, Java's focus on rapid coding at the cost of efficiency seems merely utilitarian.

    --
    A deep unwavering belief is a sure sign you're missing something...
  133. Riiiiiight by Gruneun · · Score: 2

    I like it because I don't have to worry about several different OS's and garbage collection. It's easy to code in and I can get a string output of *any* data type, which makes it easy to debug.

    It's that easy.

  134. Number of developers? by Alex+Belits · · Score: 2

    The number of developers means nothing -- there are more Macromedia Flash developers or Visual Basic developers than developers that any advanced language and Java combined, yet most of useful software is still written in C, C++ and sometimes perl.

    --
    Contrary to the popular belief, there indeed is no God.
  135. Gotta love that "research" by scott1853 · · Score: 4, Insightful

    Even when it doesn't actually show any true statistics, like how many people were surveyed, or any other minor factors like, did 60% of the people surveyed work at the same company!

    I'm sorry but I tend to like my "research" with some sort of graph, and something a little "meatier" that a single percentage bar.

    Going by Evans Data's "research" they might as well have used the results from a Slashdot poll.

  136. Re:really? by WolfWithoutAClause · · Score: 2

    >You can write the GUI to control a DVD player in Java, but you can't write the
    >DVD player itself in Java. You can't write it in C either.

    What's the point of your DVD example if Java is close enough in performance and has access to all the same speedups as C(++)?

    I mean, sure you'll have to use non pure Java, but then you can't use pure ANSI-C either.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  137. Re:what do you get when you divide by zero? by catseye_95051 · · Score: 2

    In Java, a well controlled exception.

    In C, a core dump.

    Since you asked.

    (Okay, I KNOW this is flame bait but how could one resist?)

  138. Re:2002 Forecast by MSBob · · Score: 2

    Exactly. And pigs will fly don't you forget that one.

    --
    Your pizza just the way you ought to have it.
  139. One more misconception to fix by catseye_95051 · · Score: 2

    For those who think Java today is only suited for slow buisness apss I'd encoruasge you to sdo soem of the following:

    (1) Talk to a bunch of folks who went to Quakecon and plyed the JAMID demo. (You need mroe thena samplr of one obviously as everyone's opinions will vary to some degree.)

    (2) Got to Siggraph in LA NOW and see the Pure Java F1 racer simualtro that is the talk of the show.

    (3) Got to javagaming.org's "Big list o links" and check out some of the stuff there. Of particular interest are "Blastian", "Arkanae" and Cosm.

    Those who want to keep their illusions, just skip all of this :)

    Catseye

    "Ignorance is bliss and boy do we have one happy government!"

  140. Re:Gimme A C/C++ compiler written in Java by catseye_95051 · · Score: 2

    Write one yourself with JCC. You could probably do it in a weekend.

    BTW your standard Java compiler, javac, is written in Java.

  141. Java in Corporate America by alienmole · · Score: 2
    Java is very strong in corporate America (and other countries) for in-house systems development. This is unaffected by the dot-bomb situation.


    The benefits of multi-vendor Java over single-vendor VB are too numerous to list here, starting with the fact that Java is a decently designed language (although certainly not perfect).

  142. Re:Really? by WolfWithoutAClause · · Score: 2

    Hint: the lack of homogenous arrays are no big deal in Java; you get an exception during testing (you DO test your code?) and its pretty obvious what's going on. In C++ homogenous arrays can cause somewhat difficult to debug crashes unless you use templates to prevent them. Thus, this 'hole' in Java isn't a problem in practice; but it was in C++; and was fixed in the normal way- crufting on new features to the language and bloating the specification.

    In my experience the C++ typing scheme is still very bad, worse than Java. Automatic type coercion? Just say no. Garbage Collection (not reference counting) is incredibly useful. C++ what a nightmare, gothic language with a truly epic specification. Someone needs to explain the concept of 'elegance' to Bjarne...

    Oh, yeah, you claim that the auto_ptr stuff is going to fix all known ills. I'm sure it will make the language more predictable- a GOOD thing. However library add ons typically run more slowly than compiler visible features. Therefore C++ may well end up slower than Java, ironic in a language that was designed for speed at the expense of elegance.

    As for Cecil- there is some evidence now that runtime typed languages (e.g. scripting languages) are quicker to write in, including debugging. Still, for somewhat rare applications I think that typing is important.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  143. Re:Proposed Java generics by Anonymous+Brave+Guy · · Score: 2, Informative
    For number five, what are you saying is not allowed?

    What I'm saying is allowed is being more specific about what types of class can be used for a type parameter. In C++, all you can do is write template <class T>. Here T can be any type, and you have to jump through hoops somewhat if you want to say "only things supporting MyInterface are allowed". The proposed Java generics seem to have this built in.

    For number two, of course they were not going to add operator overloading. Frankly I don't miss it, I think it's dangerous, and I think of it as a convienience mechanism, nothing more.

    But this is the problem. It's not just a convenience mechanism in the context of generics, it's essential. Suppose I want to write a generic summing algorithm, iterating over an array of values and producing values[0] + values[1] + ... + values[n]. I'd like to write something like the following.

    T total = new T(0);
    for (int i = 0; i < values.length; ++i) {
    total += values[i];
    }

    Unfortunately, while that works with arrays of int or float, it's no good with arrays of, say, BigInteger. Effectively, because user-defined types can't use the normal notation for addition, I need to have two versions of my "generic" algorithm, one for fundamental types and one for UDTs.

    Even then, I run into problems if not all UDTs use the same semantics for their add (or whatever they choose to call it) method. For example, since a BigInteger is immutable, I'd have to write a custom version of my "generic" algorithm to deal with this restriction, since the existing one breaks down in the way it stores and updates total. None of this would happen if UDTs could follow what is, effectively, the normal interface for addition.

    Incidentally, this code also provides an example of point 4 (inability to differentiate between value and reference types). As far as I'm aware, the line

    int total = new int(0);

    isn't valid Java. So, again, my "generic" algorithm breaks down because fundamental types need one style of initialisation, while user-defined reference types need another.

    Both of these points come down to the same thing: in Java, you can't write a class that looks like a fundamental type. As long as there has to be a distinction in the syntax used with these types, you can never write completely generic code, which is the obvious goal here.

    What techniques of metaprgramming do you feel will fall foul of points 1, 3, and 4?

    Aside from the lack of complete generality noted above, without the ability to parameterise on integral values, it's effectively impossible to do compile-time induction via generics. That particular technique is used by high performance math libraries for things like automated loop unrolling, generating matrix code, and so on.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  144. Please by delmoi · · Score: 2

    C++ coding is no more difficult or time consuming then VB, and in many cases it can be easier; both to design and maintain, due to the more expressive grammar. The problem is that Most VB programmers are stupid and don't know how to design software.

    The fact that the windows C++ API is terrible dosn't help either...

    --

    ReadThe ReflectionEngine, a cyberpunk style n