Welcome!

Java Authors: Harald Zeitlhofer, Pat Romanski, Mike Kavis, Elizabeth White, Shelly Palmer

Related Topics: Java, XML, SOA & WOA, Weblogic, SYS-CON MEDIA, IT SOLUTIONS GUIDE

Java: Article

i-Technology Viewpoint: "Java is Back!"

Better times lie ahead for the language once known as 'Oak'

Related Links:
  • Exclusive .NETDJ Interview with Don Box - The King of COM
  • "Is Carly Toast Yet?" - Maureen O'Gara on HP's Fiorina, Three Years On

    The best things come in threes, they say. So this month's threefold boost for Java suggests that, in a nutshell, Java is back.

    The three items involve an IT commentator, an industry executive, and a recent development within the software industry itself. After a couple of years off the radar screen of the general public, the language that began as Oak (developed as part of the so-called "Green Project" at Sun started in December 1990 by Patrick Naughton, Mike Sheridan, and James Gosling) and then, as Java, burst onto the technology world in May 1995, is suddenly back on the tip of everyone's tongue.

    Before the inevitable complaints ("But it never went anywhere!") start, let's remember that everything is relative. A "Googlefight" on, say, Java vs .NET tells us that all has not necessarily gone Java's way just recently. A "mere" 66 million "Java" hits...versus 388 million for "NET" - but that may all be about to change.

    First we have Sun's  own president and COO, Jonathan Schwartz, putting Java firmly at the center of almost everything he says, does, thinks, or writes. His now-infamous blog of last week for example, in which he managed to lambast IBM even more than he'd done the previous week, ended:

    "Were I a CIO facing these issues [the technical effort needed to port an app off one app server to another], I'd stay focused on the one thing definitively under my control - keeping the cost of substitution, of at least application portability, as close to zero as possible. How? You guessed it, I'd write to Java."

    One up for Java.

    Then came the influential columnist and IT commentator David Berlind, who wrote this week:

    "I do agree with Schwartz on his final point. Barring a need for simple scripting that could be satisfied by PHP, Perl, or Python, of the development choices that put you in control and that leave as many of your options as open as possible, Java is the way to go."

    Two up for Java.

    Most recently comes a San Jose Business Journal article saying that, after years of virtually ignoring the gaming industry, venture capitalists are finally ready to play - and attributing that readiness to, in large part, Java.

    VCs in the US made just six gaming investments totaling $50 million in all of 2003, the article reports, yet in the second quarter of 2004 alone, there were five largely mobile gaming deals totaling $86 million. While Qualcomm's BREW platform reached sales of 11.6 million units in 2003, up from 3.5 million the prior year, Java-enabled handset sales tripled in 2003 to 95.5 million units. All Java handsets are perfect for playing mobile games.

    Three up for Java.

    There will be further milestones along the way in 2004-5, and far more substantial than these three. But good things do come in threes, so make a note that you heard it here at JDJ first: Java and Linux, it seems increasingly certain, will be critical drivers of the future. Sun has a foot in both camps.

    Java, most certainly, is back. Maybe in 2005 even the Googlefight results will turn Sun's way, who knows?

    Related Links:

  • Exclusive .NETDJ Interview with Don Box - The King of COM
  • "Is Carly Toast Yet?" - Maureen O'Gara on HP's Fiorina, Three Years On

  • More Stories By Jeremy Geelan

    Jeremy Geelan is Chairman & CEO of the 21st Century Internet Group, Inc. and an Executive Academy Member of the International Academy of Digital Arts & Sciences. Formerly he was President & COO at Cloud Expo, Inc. and Conference Chair of the worldwide Cloud Expo series. He appears regularly at conferences and trade shows, speaking to technology audiences across six continents. You can follow him on twitter: @jg21.

    Comments (122) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    /. High school crowd 08/24/04 04:24:53 PM EDT

    Look, the /. High School crowd use ''C'' because that''s what Linux and most open source is written in. A few use C++ (Mozilla). If your going to "hack" chances are you want to get at the OS level so C''s a good choice.

    For the rest of us who get paid for a living, we use what makes our jobs easier: Java. Of course I''ve already did ''C'' under BSD and then moved onto C++ and now Java and frankly the only thing cool about C was that it''s a simple language.

    iPaul 08/24/04 03:45:10 PM EDT

    There are four things that I''ll take issue with in your response (and only two becaue I agree with the rest). The first is that swing is a poor UI framework because it is so difficult to build a good GUI in swing. I think the clearest indication swing needs work is that if swing were a good UI framework developers would find it easy to build good, performing user interfaces in swing. It''s also because swing apps perform so poorly that I think Java gets a bum rap for slow. However, this slowness is also why you don''t see to many first person shooters or video editing software in Java.

    The second has to do with typing. Java is a strongly typed language that forces everyone to cast everything back to object to make collections work. Thankfully, 1.5 will include generics. However, type-safety is lost when everything is re-cast to object, void* or id (depending on what your flavor of a cool language is). C++ stl collections are much more typesafe than Java collections, for example.

    Third, one of the problems with Java is becoming its complexity. The language itself is small relative to other languages, but the libraries, configuration files, standards and all other ancillary junk are daunting. For example, a Java application may interact with a variety of property files (some that are part of the JRE), XML configuration files, and VM parameters. The net result is spending days trying to figure out if the software is crashing due to a bug or incorrect configuration.

    Fourth is that Java is memory intensive. While it is true that Java is in the same performance neighborhood as C, Java has a much larger memory footprint. For example, Visual Studio takes up some small amount of memory (about 64 MB when it runs). When I start NetBeans or JDeveloper - they consume on the order of 200-300 MB of RAM. While memory is cheap, you can''t run too many 300MB applications on your laptop simultaneously.

    Java and C++ programmer 08/24/04 03:43:44 PM EDT

    I think it is clear you are a Java fan.

    Java makes things that should be simple very hard. Writing an array of integers to disk is HARD and therefore SLOW in Java because a complete copy of the array into an array of characters is required. This is just-plain-crazy.

    This, in turn, is because of another thing that Java does: It assumes you will want to be 100% machine portable when (in my career) I have never seen an organization which has this anywhere near the priority list.

    This, in turn, is because Java has FAR outgrown its purpose: To write LITTLE applets embedded in devices (see Oak history) not big-ass CORBA-connected JDBC-driven enterprise services.

    Java is uncool because it makes too many assumptions, doesn''t let you countermand the assumptions, and leaves you with no alternative but to pay prices that your application may receive no benefit from.

    L. A. Rowe 08/24/04 02:49:23 PM EDT

    Gee Hackers could do us a favor and use their prodigious time to generate a couple of native compiliers.

    There is nothing wrong with a few Java JNI c wrapper native classes tossed in if you don''t mind the polution.

    Marco V 08/24/04 02:46:26 PM EDT

    I can''t reproduce the C++ comment. While in some benchmark code, the JITs can really shine due to their runtime advantages, I still find Java slow, resource hungy (rule of thumb: twice the mem) and slow start-up.

    Delphi (which is quite unsexy as compilers go) beats it easily.

    Moreover if you want some performance in a bit scaling Java app, one has to resort to setting references to NULL in exact the place where one used to deallocate. The ease of GC is also a bit overrated.

    Florian 08/24/04 02:43:59 PM EDT

    Most of your uncool reasons are wrong anyway, there''s one near hit however.

    -"Java is a strongly typed": I would not put it to such strong terms, I would rather prefer to say, "strong typing tries to solve problems that are not there 95% of the time". It''s pure myth that dynamic typed langauges can not be guaranteed to be save. I fact I think it''s quite the other way around, but that''s definitily one of the "uncool" points. What goes to other you haven''t mentioned.

    Java is proprietary held by a single company: Bad, realy bad. Feels completely wrong to put a lot of time and work into something that could fall apart anytime by greed or bancrupcy.

    Java requires casts all the time: Goes a bit in the strong-typed issue, but it''s realy annoying to cast your way up and down the ladder only to get something decent running, as a pattern.

    -Download: The documentation weights 35 Mb, jre 14 Mb and the SDK 30-50 Mb. While it does not seem to be much, it does scale up to nearly 100 Mb anyway. It''s with me, I have this feeling. I''m going to install hundreds of megabytes of "something" it''ll likely be stuff I''ll never use, but it has bloated an otherwise nice software. ( compare this to 9 Mb of python complete package, including documentation )

    Jave''s not realy Object-Oriented: Too long to explain realy, but let''s just say that java has it''s ancestors in C/C++.

    Java''s exceptions are miss/overused, and don''t represent themselves in a helping manner: Compare this to Exception use in python, where exceptions help writing exception-less code instead of exception rich.

    Java''s syntax is as noisy as C/C++: I''d expect from a modern language that it realy offers good syntax, instead of copying it from some 30 year old languages.

    There''s tons of other stuff too, modern language features, that are not there to impress friends, but to help write easier code, but your view of language features in itself almost explains why java is "uncool".

    However, here''s an odd fact I''ve encountered. I''ve had two dealings with java developers so far, when not beeing in their field of expertice. They where both bad programmers and code-obfuscators to keep their job. That realy realy sucked.

    Ubergeekcd 08/24/04 02:43:18 PM EDT

    OK the deal is this, if you are talking distributed, platform independant, secure and robust, there is just nothing out there that can even be compared to Java, even Ogres know that, so stop complaining of swing, and slow speeds and all that bullcrap cause face it, JAVA ROCKS....
    And all you .Net guys out there, if Java is sooooo bad how come C# is sooooo similar to the Java language sytax HUH????????

    Frank Haynes 08/24/04 02:22:09 PM EDT

    I was amused that the "Java myths debunked" page ostensibly supporting Java was served as a Cold Fusion page.

    But, seriously folks, it''s just a language, just a job, not a religion. I could not care less what language gets used to perform a particular task as long as it makes sense to use it for that application.

    Just remember, to a man with only a hammer as a tool, every problem looks like a nail.

    Martin van Tonder (Zambia) 08/16/04 02:43:23 AM EDT

    I am probably the hundredth person to tell you about this, but here goes anyway.

    In your article titled JDJ Opinion: "Java is Back!" you mention the "googlefight" This comparison is deeply flawed. Firstly a search for ".NET" returns every website ending .net e.g. sourceforge.net and php.net not to mention all kinds of other hits such as cnet. Hardly any of the hits are related to Microsoft?s .NET framework.

    If you run a more sensible query using google e.g. C# OR DOTNET OR "ASP.NET" OR "VB.NET"

    You will get 6,350,000 hits

    A Java -javascript - indonesia ?island search yields 10,100,000 hits.

    An objective comparison using google is provided by the tiobe index:

    http://www.tiobe.com/tpci.htm

    You will find that C# isn''t in the top ten, while Java is currently in 1st postion.

    regards
    Martin

    isaacxu 08/14/04 12:25:27 AM EDT

    the googlefight is so foolish fight,if you notice the ".net" word,you know it may be another thing, not definited ms .net.
    i.e."Results 101 - 110 of about 386,000,000 for .NET",you can see many ".net",but the ".net" is not ms .NET

    i-newsflash 08/13/04 04:25:04 PM EDT

    In other i-tech news it seems eBay has bought the Google wannabe Craigslist.org, the San Francisco-based international swap meet thay began as a daily e-mail sent out by founder Craig Newmark in 1995 and is now a motley collection of want ads and personals, with a little space left over for rants.

    Pla 08/13/04 04:19:30 PM EDT

    Why are you guys copying comments from slashdot org without attribution and do your advertizers know about it? Who make this decision? Let me guess, a private or janitor or script kiddie or someone trying to smear the good name of JDJ and Java, right?

    Search Me 08/13/04 04:10:12 PM EDT

    Since u mention Google...some background: In 1945, Vannevar Bush wrote an article for the Atlantic Monthly called "As We May Think", detailing the first account of a hypothetical hyperlinking system.

    In it, he writes of a system that keeps track of where a user surfs (not the terminology he uses), and the user is able to make comments about connections about different pieces of media. The more a user traverses the same path of connections between two documents, the heavier the link becomes, so to speak.

    I just reread this article a couple of weeks ago and was shocked at the parallels with Google; particularly how they use established links to figure out the ranking of a page, and then thinking about how they bought Blogger (presumably, so people could make comments about connections on the web). Perhaps Google''s success comes because they have created a system that so successfully mimics the way that we think collectively.

    Jason Halla 08/13/04 03:56:33 PM EDT

    A google fight between Java and .NET will produce sites with the '.net' extension since .net is a TLD, so a more accurate fight would be between Java and Microsoft .NET, or Sun Java and Microsoft .NET.

    Either of these comparisons put Java either worlds ahead or nearly the same (considering most writers refer simply to 'java' rather than 'sun java') in terms of web exposure than .NET.

    http://www.googlefight.com/cgi-bin/compare.pl?q1=Java&q2=Microsoft%20.NET&B1=Make+a+fight%21&compare=1&langue=us

    I think the rest of your article is incredibly poignant, and would hate to distract from your core observations to satisfy my pedanticisms.

    pauljlucas 08/13/04 02:33:43 PM EDT

    If you want to see what real generic programming can be like, have a look at "Modern C++ Design" by Alexandrescu. I''ve been using C++ since the cfront days, but, by only reading through page 14 of the book, I was astonished at the kinds of amazing things you can do with C++ templates that Java generics (as implemented) will never be able to do.

    Matt 08/13/04 02:27:09 PM EDT

    Why is is that all the single quotes such as used in contractions are displayed double in these comments?

    Bush-league. C''mon, you guys (ie, those who run this site) can preparse and postparse data better than that!

    Laxitive 08/13/04 02:10:18 PM EDT

    I don''t think the generics in Java are very ugly at all. The interface - i.e. the syntax itself - is reasonably clean. The implementation ends up being just a fallback to the safe-dynamic-casting functionality of the JVM, but you don''t know that when you actually use the generics.

    I think the major benefit of generics is that developers can structure their code easier. They can tell the compiler that something is a List of Strings, and not a List of Objects. The performance aspect of it is less important.

    Also, you are not considering that there are low-level VM operations that can mollify, to a significant degree, the potential performance hits caused by dynamic casting.

    If you read papers related to Self (a Sun research language, based on smalltalk, using prototype-based OO semantics), you''ll notice that there was a lot of work done on doing fast dynamic type-inferencing. A lot of that work has been rolled back into Java

    Cyberax 08/13/04 02:08:15 PM EDT

    I lost all my respect to Gosling after a clumsy attempt to add generics to Java.

    The right way to add generics to Java is a radical modification of JVM (Java Virtual Machine), but Sun didn''t want to it. So they made an attempt to add generics to Java language without touching JVM. The result of this attempt is a complex scheme of name mangling (just like C++), and some unnecessary overhead. And such implementation _still_ requires some JVM changes and is incompatible with old JVMs. So now we have an ugly generics in Java and Java 5.0 (rebranded J2SE 1.5) incompatible with previous versions.

    brlewis 08/13/04 01:56:36 PM EDT

    I''m surprised to see so many comments that show people actually read the article before posting. Now we just need to get people to skim prior posts before posting.

    SuperChuck69 08/13/04 01:55:14 PM EDT

    Am I the only one that finds it a little biased that the Java Developer Journal is reporting "Java is Back"?
    JDJ "earns" their income by selling their rag to java developers. If Java declines, so do their sales. If Java's on the rise, their subscription base will also be "on the rise".

    dfj225 08/13/04 01:53:07 PM EDT

    Well, according to my research Java doesn''t even exist! There are absolutely no servers existing in the .java domain. However, there are many, many servers with .net. Apparently, Java has much catching up to do if they ever want to pass Microsoft.

    bokmann 08/13/04 01:51:27 PM EDT

    Java isn''t going anywhere. Java has at least reached the status of ''the next cobol'', to quote Stu Halloway. This isn''t a comment on Java''s speed, quality, and such, it simply means that even if all Java development stopped today (which it won''t), there has been enough investment in Java''based intfrastructure that the maintenance alone will be quite a large job market for years to come.

    Java is NOT dead/dying. New, important projects start with it every day. I am the president of the Northern Virginia Java Users Group, and we have a steadily growing membership (now over 1100 members). I am also a speaker for the No Fluff Just Stuff Software Symposiums and the discussions about Java tools, techniques, etc dominate that conference. Why? Because it sells. .NET has been gaining some momentum, and c# is undoubtedly the ''next big thing'', but Java is here to stay. If you are a software engineer, Java is a ''safe place'' to be for new and interesting work for the next 4+ years, at least. (That doesn''t mean software engineers don''t need to have diverse talent - but that is a topic for another rant).

    Lodragandraoidh 08/13/04 01:50:20 PM EDT

    "Were I a CIO facing these issues [the technical effort needed to port an app off one app server to another], I''d stay focused on the one thing definitively under my control - keeping the cost of substitution, of at least application portability, as close to zero as possible. How? You guessed it, I''d write to Java." - Jonathan Schwartz Sun COO

    Ummm - what about python or perl? Both of these are just as portable - requiring zero modification of the code to port to any OS.

    And don''t pull out the ''java is more efficient'' bull scatology. I have a java application right now that my team is rewriting in perl because it runs too slow (and also has a memory leak - code is vendor proprietary, so they won''t let us see/modify the source to fix it). There is nothing I can do with java that I can''t do with perl or python - as much as David Berlind would say otherwise (his statement in the article suggests perl and python are good for ''scripting'', but not robust enough for large applications). As a supposedly impartial journalist/editor for ZDnet - I have to question his motives for jumping on this bandwagon. Also, his primary focus on writing, rather than building apps, hardly makes him qualified to make such an accessment, imo.

    Given that I would have to disagree with this editorial in JDJ.

    The words of the COO of SUN, who has a vested interest in the success of java, and the words of a journalist, who from all appearances doesn''t have the technical background to be taken seriously concerning application development issues, in an editorial on a website dedicated to java development, hardly seems like ''news'' more than a marketing ploy.

    SecondLook 08/13/04 01:49:53 PM EDT

    When Java first came out, a large number of ''web hackers'' and inexperienced programmers flocked to the language and produced applications that were often very weak. The easy access to such a flexible toolkit encouraged first time coders to undertake projects beyond their skills. Even experienced teams of developers found it took a while to get to grips with the issues involved in the new environment. The result was the inevitable disillusionment following the hype. Expect C# to go through a similar slump as people realise it doesn''t solve all your problems.

    However, Sun have done a stunning job in evolving Java, and developers who have taken the time to understand it have been producing impressive software for some time now. The latest version is powerful, fast and addresses an enormous range of requirements that make developing software very much more efficient.

    There will be a lot more about Java in the news this year. Tools are being developed for everything from screensavers to MMORPGs, so why not take a second look before rehashing old predjudices?

    jinxidoru 08/13/04 01:48:32 PM EDT

    It''s time for Sun to make a new version of Java. Java was a seminal creation. It delivered a powerful method of application development with the ability to build once and run anywhere. The problem with being a pioneer though is that you inevitably make many mistakes. It''s unavoidable. Sun made mistakes with Java. They''ve tried to cover up their mistakes, like by hiding AWT with Swing, but it''s still lurking down there below. I don''t wish to go into depth on the deficiences of Java. If you use Java on a regular basis, you know quite a few yourself.

    Now please realize that I''m not trying to bag on Java. I love Java. What I''m saying is that it''s time to quit worrying about backwards-compatibility and build a new system from the ground up.

    This is what Microsoft did recently with C#. C# is superior to Java. Why shouldn''t it be superior? It was made by copying everything good from Java and leaving off the legacy fluff that exists for backwards-compatibility only. It does everything that Java does plus more (the ability to use pointers, structures, native types are instances, etc.) I just wish Microsoft wasn''t in charge of C#, so let''s see Sun do better.

    xcuseMe 08/13/04 01:47:27 PM EDT

    I''ve been doing server side java since ''99. Granted the gui application stuff is dead for the average desktop, but thats been the case since ''99 as well. Micro-java on embeded devices is on fire as well. I don''t see that Java is going away anytime soon. Right now we have our apps running on Windows servers, Solaris Servers and Linux servers, all on webpshere. If we wrote our app on .NET we would have a choice of windows, windows or windows. In terms of enterprise applications things like Python and perl just don''t scale as well as Java does with stuff like EJB''s, JMS, JXTA etc.....

    JustAnotherReader 08/13/04 01:47:01 PM EDT

    Everyone''s talking about how Java requires the user to install a JRE and how Java is slow (I beg to differ) and how Java Swing is to bloated. All these complaints assume that Java''s predominant use is to write desktop applications.

    But that''s not what Java is being used for. The most common usage of Java is for high volume dynamic web sites such as Amazon.com and most online banking systems. The combination of Java servlets, Java Server Pages and Java based web engines (WebSphere or Web Logic for example, or even Apache and Tomcat) are becoming the most common usage of Java.

    I work at a major California bank and have worked on various web based applications for about 9 years. Java is the standard for writing those types of dynamic web apps. For example. When you want to see your financial summary you wouldn''t expect that there is somebody writing a web page just for you every time to make an ATM transaction would you? Of course not. You log in and we identify you. Then we go to an Oracle database or a bank host system and get your transaction history. We load that into a data object and pass it to a JSP which dynamically creates the web page with your transaction history. Java excels at that kind of application. And by the way, I can develop my code in Windows 2000, move it to a Linux box to do some basic testing, and then move it (all without recompiling) to an IBM AIX Unix box and have everything work the same on all these different environments. That makes my job easier.

    So we need to stop comparing apples to oranges and saying things that essentially sum up to "A badly written Java program is slower than a well written C program" or "Java was slow 6 years ago so it''s still slow today" or "I don''t agree with the language designer''s choice of [properties, no operator overloading or whatever language peeve you have]". Look at how the language is actually being used and you''ll see that Java is indeed alive and well.

    mcbevin 08/13/04 01:45:51 PM EDT

    NET and its C# language _is_ a huge challenge for Java. I''m hoping that this competition will cause both languages to improve and thus benefit us developers. Java 1.5 (5.0) is a great start (incorporating many much needed features seen in .NET such as generics).

    CaptainTux 08/13/04 01:45:33 PM EDT

    I''ve been programming professionally since I was around 15 and have a CompSci degree under my belt along with probably a few million lines of code. I know what it takes to develop a large scale application and I''m definately willing to put in the work to learn a new language. I''ve learned solid principles of OOP and undertand where Java is coming from and trying to accomplish. I even took the time to learn it a few years back just to have it under my belt.
    Java is a good language. Yes, there are issues, but they could be resolved by Sun fairly easily. But, in most cases, Java simply isn''t needed. Statistics show that the vast majority of software applications being developed are not "mass market" type apps but rather stuff that is used in house. Most shops have standardized around one platform or another so cross platform isn''t really an issue. And, when it is, it''s usually trivial to edit C code and recompile for the new arch.

    Lastly, let me tell you a little story: I am currently launching a new startup aimed at developing a kiosk for the entertainment industry. Originally, everyone said I simply *had* to write my software in Java because of an infinate number of reasons. Even as an experienced programmer, I was dumb enough to buy into it and try. Within a few weeks the software had become so slow and bloated that I knew I had to find something else. Where do you think I went?

    Python with the WX extensions.

    Python offers me everything Java can (WORA, Speed, Good GUI enviroment, etc) and is absolutley painless to learn. In fact, I am LEARNING the language AS I write the new software and it''s not slowing me up at all. There are times I have to go back and fix things but usually it''s pretty straightforward. Python is, to me at least, a Java killer.

    I think that Java has some strong points. But, ultimately, it''s no stronger that some other languages out ther (think C++, Python) and in some ways weaker. Sun needs to do something to get Java back on track. They can save the language but they need to drop the arrogance and get back down to basics.

    Prometheas 08/13/04 01:36:05 PM EDT

    Uh... guys... is it just me, or are the three things in this article billed as the uber-harbingers of Java''s "return" completely underwhelming? I can''t bring myself to give a flying... well, you-know-what... about any of them.

    The Mono/Gtk#/Cocoa# buzz is exciting... and I don''t even know any C# yet!!

    I love Java, but if these are the three most exciting things it''s got going for it, I''m frankly concerned for her future. It''s a mature language with mature APIs. I find it highly dependable... but let''s face it, there''s no real excitement about what''s to come next.

    Where''s the soul and dynamism?

    Projects like Mono and even the development of the major scripting languages have bright-eyed bushy-tailed communities, excited about working on and improving the capabilities of their respective projects. Java needs to get a booster shot of that kind of energy. I''m not convinced that GPLing Java is the only thing that can produce the effect by any means... but SOMETHING needs to happen.

    I program because I love to program. Luckily I manage to make money in the process. Give me something to get excited about... it''s really been a while.

    bcocik 08/13/04 12:56:51 PM EDT

    I make my living writing server side Java code, and I love it. Several months ago, though, we discovered that there was a massive memory leak on several of our Linux servers running JDK 1.4 (which actually isn''t old at all). An upgrade to glibc corrected the issue.

    I can''t really assign blame to either the JDK or the libraries for it, I think it was just an unfortunate interaction. These things happen.

    sheffy6 08/13/04 12:45:28 PM EDT

    I''m not sure what the author meant by "Java is Back!" Did it go somewhere? I''ve only been in the industry for 5 years and all I''ve seen is rapid expansion of java throughout the industry.

    I get sick of all the debate about which platform is better. They each have their strengths and weaknesses. bstarrfield mentioned all the projects and possibilities associated with java. I don''t consider that a weakness. That tells me I have options on how I can do things and what tools and libraries I can use. In addition, I can choose my OS, I can choose my app server and I can choose my development environment. I know apps aren''t completely portable, but they are a lot more portable than anything .NET. In addition, I don''t see a ton of .NET jobs out there, and if there are openings, they are paid lower. Look at Monster and Dice and you''ll see tons of Java/J2EE jobs and significantly less .NET.

    One last thought: If Java is so slow and on it''s last leg, then why is eBay, one of the busiest sites on the web, switching to J2EE?

    nil_null 08/13/04 11:50:55 AM EDT

    Although I don''t see Java on the client being any different than it used to be; maybe a little better, but not compared to alternatives (or maybe I just haven''t paid much attention to Java client technology). But in any case, Java on the server is alive and well, doing better than ever. I think the arrival of lightweight alternatives to EJBs is making Java development a lot smoother than it has been.

    Take a look at tools like Spring and Hibernate, for example. J2EE is no longer as cumbersome as it used to be. These new developments make Java equally useful as many of the alternatives, if not more useful for many types of server-side software. Web services is also helping making Java a very viable option on the server side, since you remain flexible in your choices for what software interoperates with your web services.

    mgkimsal2 08/13/04 11:07:12 AM EDT

    I think the Beach Boys had a big 'brian is back' campaign in the late '70s. The only thing remotely resembling a hit happened years later in the form of Kokomo (without Brian's involvement).

    I predict this Java is Back hype will have about the same ending. :)

    Necro 08/13/04 10:59:24 AM EDT

    I''m not an expert in the matter, I''m just a common Java Programmer. All of this is just marketing crap. Microsoft and Sun have a very big marketing campaign on .Net and Java. The only thing I know is that the competition is needed. Imagine a World where only .Net, Java or any other language (not that the others are less, it''s just that that they doen''t have monstrous companies behind them) existed. We would be stuck.

    I started out with Java and at least in the near future I''ll stay with Java because I''ve leraned to love the language. It''s just a pleasure to program in it. Who cares who''s winning, the Language is not the answer to all your problems, its the people behind and on the language that count.

    Beware MS 08/13/04 10:54:55 AM EDT

    Beware the Astroturf of Microsoft on campus!

    My school never had anyone intrested in a .NET or MS users group until Microsoft actually PAID some students to start one! Now they are always have events sponsored by MS and bringing in new books paid for by MS to the library or just doing various pro-MS propoganda.

    Now I''m not bitching about extra C# books in the library...what I am bitching about is Microsoft paying students to do things like "petition for the removal of outdated languages like Java from the curriculum".

    MS couldn''t keep up with real grassroots Linux and BSD groups on campus so they actually had to PAY for students to create MS and .NET user groups! That''s like prostitution and shame on the student whores who work with MS on this!

    Dan 08/13/04 10:52:43 AM EDT

    My tool is better than your tool! So childish. I read the feedback and I shake my head in disgust at the utter lack of sensability. It shows how irrational rational folks can be. The author of this feedback stirred the pot, rang the cowbell and the fools came running. The bottom line folks is that as long we want choices in our lives there will always be a Java and there will always be C# and there will always be PHP and many, many more ways to skin a program. And they will all serve a purpose and we will all be productive. So just get used to variety, embrace it, and stop the schoolyard shananigans.

    Donoho 08/13/04 10:47:35 AM EDT

    got bored watching

    Microsoft is a master at switching enough labels to "keep things interesting". New bells and whistles to hold your attention. (I''m a sucker for a pretty interface) Kind of makes it seem like Java isn''t moving at all. Java never left and it''s not going to "die". It is a young language that has survived and grown on its own merits and not through billions in marketing hype and R&D and despite it''s creaters over protectiveness. It''s just getting started.

    Either the tool you''re using allows you to get the job done or it doesn''t. Either the tool improves over time to make your job easier or it doesn''t. If you want to see Java thrive, use it.

    Anonymous Coward 08/13/04 10:45:29 AM EDT

    Yawn. The ''Java is slow, obese and heavy'' arguments are poor, out of date and largely inaccurate. Java''s popularity on mobile phones suggests it is hardly a performance bottleneck, nor is it too demanding for memory.

    When Java first came out, a large number of ''web hackers'' and inexperienced programmers flocked to the language and produced applications that were often very weak. The easy access to such a flexible toolkit encouraged first time coders to undertake projects beyond their skills. Even experienced teams of developers found it took a while to get to grips with the issues involved in the new environment. The result was the inevitable disillusionment following the hype. Expect C# to go through a similar slump as people realise it doesn''t solve all your problems.

    However, Sun have done a stunning job in evolving Java, and developers who have taken the time to understand it have been producing impressive software for some time now. The latest version is powerful, fast and addresses an enormous range of requirements that make developing software very much more efficient.

    There will be a lot more about Java in the news this year. Tools are being developed for everything from screensavers to MMORPGs, so why not take a second look before rehashing old predjudices?

    TimC 08/13/04 10:44:12 AM EDT

    >>the huge footprint which triggers swap activity

    Top 4 processes on my XP Pro machine at the moment, according to "Mem Usage" column in Task Manager:

    1) JBuilderW.exe at 173,700K
    2) mozilla.exe at 84,480K
    3) java.exe (JXplorer, an LDAP client app) at 37,252K
    4) WINWORD.EXE at 33,636K

    So, with the exception of JBuilder (which is very heavyweight, there's no denying), java by no means has a "huge" footprint compared with other typical applications I use. Of course, given that I have a gig of RAM in this machine, and that RAM goes for a little more per 512MB stick than I spend on a typical Saturday night out, it really doesn't matter to me at all. But then, I do server-side stuff in Java, not client side; for that, I''d probably use C#.

    callipygian-showsyst 08/13/04 10:39:12 AM EDT

    I don't use Java because:

    Anonymous Coward 08/13/04 10:36:47 AM EDT

    it's a piece of crap, and until I see a full blown operating system written in the language that actually perform better than a slug crawling up a salt covered wall, then I don't think any one has the right to compare it to languages like C that can be used to create good operating systems. Security and memory boo hooing aside, if you are a good developer then you can avoid those issues very easily. Perhaps all you "programmers" who like java because you don''t have to think about nasty things like memory should reconsider your choice of careers. Perhaps fluffing or amway is a better line of work for you.

    argent 08/13/04 10:32:42 AM EDT

    "it's actually kind of amazing how ill-understood some of the timing is in C?things like malloc and free can actually be awful" -- Gosling on realtime

    If you're doing hard realtime you don't call malloc and free: you use a buffer pool that's sized for the objects you're working on, and allocate objects from that. Not only do malloc and free make a hash of timing dependencies, they make a hash of memory itself. The fragmentation you get from malloc and free are fine for short-running programs or programs that can afford a small slow memory leak as locked-down allocations make chunks of the heap unusable, but for realtime that just doesn't cut it.

    It's much the same as in the OS kernel or in file systems, you have pools of fixed size objects that you stick fixed size chunks of data into, your buffer cache and cylinder groups and clists and things. You can use some of the same tools to improve the behaviour of malloc and free, too, but you get a lot more memory overhead because you rarely have the kind of good sizing information that more or less automatically falls out in the process of designing your memory strategy without it.

    Bringing up malloc and free as reasons why Java's not so bad for realtime is really a red herring. I don't know if Gosling's just not used to a hard realtime environment, or what, but he's definitely muddying the waters here.

    mrsshowtime 08/13/04 10:29:38 AM EDT

    Java Sucks, and I'm not trolling. Everything and anything Java has caused me great pain over the years; system crashes, program crashes, etc. Ebay was using Java pop ups for their system till it became such a bother for the users and Sys Admins, that they simply just got rid of it.

    kahei 08/13/04 10:28:10 AM EDT

    The article notes that a googlefight gives 66 million hits for java and 386 million for .NET (actually, those are the numbers I got just now, but they''re similar).

    Thing is, the .NET hits include EVERYTHING IN THE WORLD THAT HAS A DOMAIN ENDING IN .NET, which makes it A BIT SILLY.

    The article is trying to make out like Java ''went away'', just so it can build momentum for a comeback. I don''t care for Java as a technology, but I''m pretty sure it never ''went away'' at all -- and the fact that Java developers are cheap and common compared to almost every other kind is going to keep Java on the servers for a long long time.

    I wish Mono would hurry up.

    sethg 08/13/04 10:26:12 AM EDT

    ...unfortunately.
    When I was unemployed, I had monster.com and dice.com send me a daily email with every new job posting that contained "Perl" or "Java". For those ten months, I saw virtually no Perl jobs, and almost every Java-related job required J2EE experience.

    So I took a basic class in J2EE, and said to myself, "No wonder there are so many openings for J2EE programmers: it takes a team of five J2EE programmers a month to put together what a good Perl hacker can make in a week." The hoops you have to jump through to get things to work in J2EE--most of which seem to involve working around Java''s static typing and its object model--are absurd.

    I''ve been re-employed for almost a year, thank God, and the group I work with is writing a J2EE-based ERP application. I have seen nothing so far to refute my original impression of J2EE.

    But it still beats being unemployed.

    essreenim 08/13/04 10:16:25 AM EDT

    People thought it was going away because of all the stupid people saying ''Oh, c++ is much faster''
    when in fact Java uses allot of native code that is actually compiled c code. Its often very fast.

    todhsals 08/13/04 10:14:34 AM EDT

    Before the inevitable complaints ("But it never went anywhere!") start, let''s remember that everything is relative. A "Googlefight" on, say, Java vs .NET tells us that all has not necessarily gone Java''s way just recently. A "mere" 66 million "Java" hits...versus 388 million for "NET" - but that may all be about to change.

    With this as a measure of Java''s success it''s amazing it did as well as it did. Java fared pretty well compared to counting the google hits for anything on the net with the term ".net", such as every freekin url in the net TLD. At this point I just stopped reading.

    bstarrfield 08/13/04 10:10:45 AM EDT

    Well, Java may be back for the time being, but I''m concerned that the language may still crash despite its new found momentum. The Java toolkits are fragmenting, Sun''s market position is questionable, and alternative technologies are gaining in both strength and promise.

    Sun''s marketing materials always mentions Java''s strength in enterprise development. But what, precisely, is Enterprise Java? Is it J2EE? Quite possibly, as a theoretical specification. But in real life, the platform is fragmented. On app servers, is Java WebSphere, WebLogic, JBoss, or Tomcat? For persistance: EJB 2, Hibernate, JDO or Cayenne? For Web apps: JSP, Struts, JSF, Tapestry? And just for fun, lets throw in XDoclet, Velocity, Cocoon, AspectJ, and about another thousand or so projects.

    The diversity of new Java technologies is both great and terrible: great in the sense that new ideas are being explored that Sun may find to radical to consider putting in their specs, but terrible in the sense that few, if any, Java programmers will have knowledge of the various different projects. This is a real problem, folks. Someone who knows .Net can reasonably be expected to understand most of the C# related APIs. Its unreasonable to expect even a seasoned Java developer to understand how to program the full spread of Java APIs. Someone with Sun certification, an EJB whiz, may be damn well baffled by Hibernate (I''ve seen this), and may not comprehend why you''d use Tapestry instead of good old JSP.

    I think the Java development platform is fragmenting. Sun''s work, impressive as it is, often seems to be more concerned with being architecturally perfect at the expense of real world application speed and developer productivity (code astronauts). The Open Source projects seem to be trying to be as cool as possible, at the expense of API consistency and, just like Sun, developer productivity.

    The general chaos in the Java world has, thankfully, allowed my development team to finally look at entirely different languages: Ruby, Python, even back to Smalltalk and Lisp. We''ve chosen this route out of frustration with both the limitations of the Java language and the increasing fragmentation of the toolsets.

    As an aside, its fun to watch how hard various Open Source projects are working to emulate a ten year old toolkit: WebObjects. Yeah, WebObjects rules. Object Relational Mapping that works (and Hibernate folks, doesn''t require learning yet another XML dialect to get things working). OO web page design, true components (Tapestry is essentially a copy of Web Objects Framework, made more obtuse). I wish Sun had started it''s development efforts copying NeXT instead of Microsoft. We''d have a better development world today.

    JavaJOB$$$ 08/13/04 10:05:45 AM EDT

    Look at all the job stats and you'll see Java burying every other language out there in terms of actual demand. I go where the money is, and Java is it - not C-Sharp, not php, not whatever.

    Java right now is probably the most widely deployed language in IT history, what with the new cars (BMWs), smartcards, SIM cards, mobilke cellphones, server apps, desktop apps runniung Java.

    I KNOW i'll have a job 5-10 years from now doing Java when non-Java guys are trying to learn the next new language from Microsoft or whomever