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.

17 of 605 comments (clear)

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

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

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

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

  6. 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
  7. 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.
  8. 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.
  9. 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.

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

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

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

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

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

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