Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Java Programming

Java To Overtake C/C++ in 2002 605

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.
This discussion has been archived. No new comments can be posted.

Java To Overtake C/C++ in 2002

Comments Filter:
  • 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.
  • "Overtake"? (Score:4, Interesting)

    by ajs ( 35943 ) <{ajs} {at} {ajs.com}> on Thursday August 16, 2001 @04:34PM (#2112084) Homepage Journal
    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....)
  • by cansecofan22 ( 62618 ) on Thursday August 16, 2001 @03:58PM (#2112346) Homepage
    Looks like /. can predict the future. A few weeks ago in this article [slashdot.org] 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.
    • 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.
  • 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.

  • by qon ( 445909 ) on Thursday August 16, 2001 @06:25PM (#2118856) Homepage Journal
    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 [limewire.com], 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 [apache.org], 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 [kaffe.org], GCJ [gnu.org], or GNU CLASSPATH [gnu.org]? 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

  • by roguerez ( 319598 ) on Thursday August 16, 2001 @04:03PM (#2122383) Homepage
    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.
    • 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.
    • by Khalid ( 31037 ) on Thursday August 16, 2001 @04:15PM (#2143590) Homepage
      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++
  • 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 ?
  • by ChaoticCoyote ( 195677 ) on Thursday August 16, 2001 @04:42PM (#2123356) Homepage

    "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... ;)

    • "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()....
      • ...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.

    • 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

  • by Midnight Thunder ( 17205 ) on Thursday August 16, 2001 @04:11PM (#2131218) Homepage Journal
    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.

    • 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
  • 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.
  • 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."
  • C++ in decline (?) (Score:3, Insightful)

    by Ars-Fartsica ( 166957 ) on Thursday August 16, 2001 @04:19PM (#2132587)
    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.


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

    • FUD alert (Score:4, Informative)

      by Anonymous Brave Guy ( 457657 ) on Thursday August 16, 2001 @04:40PM (#2135529)
      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 [att.com] (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.

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

    • You mean something like this [valpo.edu]?

      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!
    • 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 :)
  • C vs C++/Java (Score:4, Insightful)

    by Skapare ( 16644 ) on Thursday August 16, 2001 @04:35PM (#2133337) Homepage

    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.

    • Re:C vs C++/Java (Score:3, Informative)

      by scruffy ( 29773 )
      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.

  • by Daniel Dvorkin ( 106857 ) on Thursday August 16, 2001 @04:12PM (#2133536) Homepage Journal
    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.
    • 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 [sun.com] for a good overview of some more complex stuff being done in Java.

    • 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!
  • 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.
    • Re:Java Servlets (Score:3, Interesting)

      by TWR ( 16835 )
      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

      • 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.
      • 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 [fastcgi.com] (supported by Apache with mod_fastcgi [fastcgi.com])... 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?

  • 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)?
    • 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 [jython.org] (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. ;=)

  • by Anonymous Brave Guy ( 457657 ) on Thursday August 16, 2001 @04:19PM (#2133790)

    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?

  • Sweet Fucking Christ (Score:5, Interesting)

    by szcx ( 81006 ) on Thursday August 16, 2001 @04:17PM (#2135655)
    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.

  • by whjwhj ( 243426 ) on Thursday August 16, 2001 @04:15PM (#2145110)
    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.
    • And your point is? (Score:2, Insightful)

      by sid6581 ( 223617 )
      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.

  • by Craig Maloney ( 1104 ) on Thursday August 16, 2001 @04:03PM (#2145301) Homepage
    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.
    • by roguerez ( 319598 ) on Thursday August 16, 2001 @04:23PM (#2111439) Homepage
      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.
    • 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?
      • 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...

  • by Bowie J. Poag ( 16898 ) on Thursday August 16, 2001 @04:07PM (#2154151) Homepage


    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.

  • by RalphTWaP ( 447267 ) on Thursday August 16, 2001 @03:55PM (#2154187)
    Everyone knows that java's been underlying program development in all languages. After all, computer scientists are machines for turning caffeine [thinkgeek.com] into algorithms, right?

  • by scott1853 ( 194884 ) on Thursday August 16, 2001 @04:10PM (#2155433)
    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.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...