Java IoT Authors: Pat Romanski, Elizabeth White, Zakia Bouachraoui, Yeshim Deniz, Jason Bloomberg

Related Topics: Java IoT, Industrial IoT, Microservices Expo, Weblogic, SYS-CON MEDIA, IT SOLUTIONS GUIDE

Java IoT: 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
    BollocksToThis 08/13/04 10:03:17 AM EDT

    I''d just like to thank the creators of that website, for their admirable attempt at bringing my browser to it''s knees with load times and flashing animated ads. I especially like the "start transferring something else every ten seconds while I''m reading" feature, and the "put the user comments on another page so that all the ads load a second time and double our adviews" feature.

    Sam 08/13/04 10:01:54 AM EDT

    Googlefight "Java vs .net" is very unfair since ".net" is a top level domain and very present in the internet.

    You should try "Java vs c#" to be more realistic.

    HACKEr99 08/13/04 10:00:00 AM EDT

    hey Redsolo, remember there was a time when C++ was considered bloated and slow too. (Even as recently as when GNOME was being started.)

    bstarrfield 08/13/04 09:54:18 AM EDT

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

    Marty Scrotie 08/13/04 09:48:43 AM EDT

    Incredible! I''m so under whelmed.

    Schwartz has been making noises like this for years. It''s his job to do that. Hardly noteworthy. Then someone else comments on Schwartz''s comments. Finally, a bunch of rich folks who know nothing about Java discover that they can make a mint from selling cell-phone games: they are not interesting in the technology, just the payoff.

    So, nothing in the article signifies change for Java.

    I develop commercial software using Java because:
    - it provides good performance over many platforms,
    - it is much easier to write than C++ (which I used to develop in for ~8 years) => greater productive
    - provides wide-ranging application support through JCP initiatives
    - is the de facto language for open-source => many good solutions from Eclipse to Bouncy Castle
    - doesn''t incur runtime license fees or other costs if you use open-source
    - etc., etc.
    - oh, and it isn''t merely a programming language, it''s a rich software platform.

    Software languages/platforms/tools are discussed at the level of beauty contests by many journalists but popularity is no measure of quality (Apple and NeXT proved that). Most applications are of the GUI <-> DBMS variety that any granny can write with VB (although employers need to be aware that hardly any VB programmers know the difference between pass-by-value and pass-by-reference...ha, ha, ha). It''s difficult to care about such stuff.

    I suppose nothing happens in the summer but idiots who dream up non-stories would be better off taking a vacation (or, better, a permanent hike).

    It is disturbing that most journalist spend most of their time attending press conferences and reporting what people say rather than what they do. That?s how fascist Republicans get elected: say one thing, do another and the journalist idiots will report only the words.

    jabberwocky 08/13/04 09:47:26 AM EDT

    Considering the "College Board" http://www.collegeboard.com/
    has made Java the new language for the AP Computer Science test, replacing C++, I''d say Java isn''t going anywhere...

    Personally, I think this was a bad move on the College Board''s part, but I also love my C++...

    tonywestonuk 08/13/04 09:45:54 AM EDT

    There is this concept called MVC (or model view controller) That is regarded as the way to develop OO based GUI apps. However, pure MVC is the biggest stumbling block to performance.

    The idea is, you have a VIEW (The actual GUI Code), that reads it''s data from the MODEL, ( a data structure modelling the data that is viewed, and a CONTROLLER, that the view notifies when something happens, and then the controller updates the Model.

    This, though well suited for a Web application, does not work well in a windows type environment. Consider for example an order entry screen consisting of 10 dropdown combo boxes, Buttons to add an order line, Tabs to show different areas of the order, (delivery address, customer credits, etc). Now the data model for this screen will be massive - each combo box''s entire list of values will be stored within the single Model. On start-up, first the view will be rendered, then the data contained within the model copied into it. This process takes time, and makes the guy unresponsive and sluggish. In a Web application, this is not a problem , as the data has to get to the browsers some way or another.

    With Java Swing, there is an alternative - Encapsulate the individual components with the data it requires to display, and only store within the external Data Model, the actual value that the component is set to. Eg, if you want a combo box with a 100 or so currencies to be selected, store the list of currency information, together with the combo box..... Call it a currencySelector or something. The ''Data Model'' is still there to contain the actual chosen currency, just not everything else!

    This way, you can cache up these components, so when added to the screen, no time is wasted moving all this data from the data model into the component. The data model becomes much smaller, and the components become fully re-useable.

    The Swing applications I have written use this technique, and are easily as responsive as a native Windows Application....

    Untill industry realises that MVC is not all its cracked up to be, we will be stuck with slow gui''s.

    As a Side note, Mac OSX uses MVC throughout , maybe this is why Aqua is view to be so slow.

    hsoft 08/13/04 09:42:38 AM EDT

    We can all see that this is an astroturf campaign from Sun :)

    bstarrfield 08/13/04 09:39:12 AM EDT

    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. It''s 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.

    Akimotos 08/13/04 09:36:18 AM EDT

    I never thought of Java as something worth following, because it was my personal experiece that: - it is slow - files are biiiiiig I mean, running some Java app makes the fan of my Powerbook spinning. Face it, only Photoshop and Imovie do that to me ...

    But in Europe Java is really strong in the mobile phone environment. I have this SE 900 and it always draws lots of attention and things that strike me most are remarks of non-technical people, like the 16 (or something) year old girl at some fast food joint: "Does it have Java?" Even my sister (30, knows shit about computers) has it on her wishlist: a Java enabled mobile phone...

    The fact alone that it is seen as some ''special'' thing ... Sun (or Nokia, or whoever) has done a great job there.

    ChangeOnInstall 08/13/04 09:34:43 AM EDT

    All good but overhyped technologies do this. It works like this: The sponsor of a technology hits a home run in the media with hype, and everyone jumps on board thinking it''s the silver bullet they''ve been waiting for. Then reality shows up, and all those who bought the unrealistic expectations generated by the hype jump ship, and the media reports on the mass exodus from the technology as though the technology has failed. Meanwhile the technology is still growing steadily as the real users find it suits their needs well. Its capabilities expand and it matures, and then it starts to become widely adopted. And then finally it''s good enough to live up to the former hype, and everyone thinks "it''s back!"

    It''s not living up to the expactations we have for it five years from now today: it''s dead.
    It''s finally living up to those expectations after five yerars: it''s back.

    Java, Linux-on-the-desktop, XML, and many more fit this pattern.

    kahei 08/13/04 09:34:12 AM EDT

    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.

    nysus 08/13/04 09:33:12 AM EDT

    He bases part of his argument that Java is less popular than .NET by doing a Google fight between "java" and "net"???

    Java can be a coffee or an island in the Indonesia. Net is a device to ensnare animals and is a verb as well.

    And he cites a blog item from a Sun executive as proof that Java is back? Please. The article is nonsensical.

    Terry An 08/13/04 09:31:03 AM EDT

    Miserable, that''s it.

    VoOk 08/13/04 09:30:16 AM EDT

    I''d win hands down. .NET
    (386 000 000 results)

    versus .COM
    (1940 000 000 results)

    Baki 08/13/04 09:24:44 AM EDT

    No it won''t. Server-side programming (i.e. "enterprise") means backwards compatability is very important. MSFT cannot afford to break it in .NET either.

    SUN has done an amazing job in extending Java even to include generics without breaking backwards compatability. Yes it did not lead to the solution that is technically and internally the most efficient (it would have required changes to the JVM), but the developer is not affected. Internally it is solved by typecasts, but who cares? The compiler, it cares and verifies and tat is what matters. .NET is years behind and plans to bring similar features only in 2007 (generics). It remains to be seen if they can do it without breaking backwards compatability. They already have a very hard time to convince their current developers to switch to .NET, they cannot afford to make their developers have to migrate once more in the next 10 years. .NET being so poorly designed I truely wonder if they can improve it without disturbing compatability. I cannot see it being a threat.

    I work in a large company, and all new development is done 100% in Java (except the mainframe parts, in PL/1 but that is declining rapidly). .NET would only be considered for fat client GUI''s which used to be done in MFC. So even if .NET becomes a success, it will only replace parts that were already done in MSFT technology before, it has zero chance on the server side.

    LarsWestergren 08/13/04 09:21:45 AM EDT

    Java language has stagnated in about 1999 with the release of J2SE 1.2 (dubbed Java 2)

    Oh, what BS. Like that is the only thing that has changed .Java has become big enough to come in three different version, enterprise, standard and micro edition. The micro edition is extremely common in mobile phones, enterprise very common in banking etc.

    Some of the new things in Java 1.3:
    Java Naming and Directory Interface (JNDI), 20% faster RMI serialization, improvements in AWT/Swing/JavaSound, security enhancements, HotSpot optimization of client and server VMs.

    In Java 1.4:
    Secure Sockets and HTTPS, IPv6, cryptography extensions, LinkedHashMap, NIO (FileChannel, Non blocking IO), builtin regexp and logging (though there are even better open source libraries for those), assertions, XML processing, hardware acceleration of Java2D, image I/O framework, java Web start, Unicode 3.0 Support, Currency class, Accessibility improvements, Math improvments, Itanium support

    In Java 1.5:
    Generics, enhanced for Loop (for each), autoboxing/unboxing, typesafe enums, varargs, metadata annotations, class data sharing (improved VM startup time), launching apps under inetd in unix/linux, loads of security enhancements [sun.com], Unicode 4 support, hyperbolic transcendental functions (sinh, cosh, tanh), cube root, base 10 logarithm, AMD Opteron support....

    Sun is not letting MS win without a fight.

    Cyberax 08/13/04 09:20:40 AM EDT

    It''s just a marketing.

    Java language has stagnated in about 1999 with the release of J2SE 1.2 (dubbed Java 2); new J2SE 1.5 (Java 5) is just a cosmetic change of language (yes, I consider current implementation of generics/annotations to be ''cosmetic'').

    It''s quite OK to be conservative, but you can''t conquer the world of IT being conservative. Java''s position on server-side is still pretty firm, but desktop apps in Java (apart from Java IDEs) are non-existant.

    And Microsoft''s position on server-side is strengthening. So Microsoft will prevail if nothing changes in the recent future :(

    SuperKendall 08/13/04 09:10:35 AM EDT

    Way to screw yourselves over. Voting to oust Java is the surest way to become the McDonalds workers of the IT industry - if you can even find the jobs.

    Guillaume 08/13/04 09:10:01 AM EDT

    I''ve run the google query, the numbers are correct, but ...
    If you really take a look the first page returns:
    - MS of course
    - a search engine
    - sourceforge.net
    - the PHP home page
    - CNET
    and so on so I do not think that they have any meaning !
    Cheers, Guillaume

    BegToDiffer 08/13/04 09:09:03 AM EDT

    maybe so but students at other Universities are petitioning to have Java removed as the core programming language as they are complaining that is just not applicable enough compared to other languages such as C#.

    rythos 08/13/04 09:07:20 AM EDT

    In Vancouver the University of British Columbia just finished re-working all of their first and second year courses to be run with Java instead of C++ and Scheme.

    Why only Java? 08/13/04 09:03:55 AM EDT

    I think there is great value in teaching people Scheme first instead of Java or C# to start with.

    CountBrass 08/13/04 09:02:03 AM EDT

    Seriously, this was a 100% fluff article. The foundation for the article was based entirely on the assertion that a Google for "Java" brought back far fewer hits than "NET": well no shit Sherlock- perhaps if you''d tried ".NET" instead?

    The major problem Java has is EJBs: everyone in Java-land seems to think that their problem requires solving using this pile of crap. A web application with persistence- ooh we''d better use EJBs then!

    A secondary issue for Java is the barrier to entry is extremely high: sure you can learn the language quickly but it''s Java''s libraries that add the real value. And there are an awful lot of them. I''ve been using Java for 10 years (yeah I developed using the AWT and cursed it every day: if it hadn''t been for the AWT being so awful I''d never have thought Swing was any good). Anyway, I''ve been using Java for 10 years and I would hate to have to learn it from scratch today.

    Eberlin 08/13/04 09:00:46 AM EDT

    It''s not that Java left, it''s all the attention it''s now getting from the .NET crowds. I''m sure Mono has a few things to do with it, too. Oh, and that whole Eclipse project thing -- I must admit all the talk of Eclipse made me take another look at Java.

    Maybe it''s also the improvements (and lower price) of hardware that makes Java attractive again. That may compensate for any speed loss in the desktop java apps.

    Then again, maybe we''re just falling victim to the Sun Microsystems re-hype.

    raffe 08/13/04 08:59:16 AM EDT

    Yeah, CxO talks about own technology, journalist writes about technology and VCs are investing in technology. Does it qualify as first page news?

    Java and Linux is the next thing.
    Come on, this isnt news.
    No, we didnt read it at JDJ first. We knew it long a go.

    Not intended as flame but this is just stupid.

    plumby 08/13/04 08:57:50 AM EDT

    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.

    Not that it really matters, but this is one of the most stupid comparisons ever. The .NET search pulls back just about every site with a .net extension. Out of the first 10 pages, only one seems to be directly related to the .NET framework (the 4th entry is php.net! ), whereas all of the first 10 Java searches is relevant.

    VoOk 08/13/04 08:56:15 AM EDT

    Java is a nice choice for embedded platforms. It runs several times faster than on PCs (it''s native for the hardware, not "emulated" through JRE), the hardware is inexpensive and can perform really sophisticated jobs. I think it may be one of major reasons for Java to take up so much.

    Roger Jacques 08/13/04 08:55:18 AM EDT

    I am sure JDJ news desk is already in touch with James...

    SJW 08/13/04 08:53:55 AM EDT

    Let''s look at a relevent Google search :

    "Microsoft .Net" returns 1,980,000
    "Java" returns 63,800,000
    ".net -site:.net" (Remove any site/domain that ends in .net) 16,800,000

    So as we can see java by far has more hits that the "Real .Net".

    Anonymous Coward 08/13/04 08:52:14 AM EDT

    Do a user driven (10 questions, you know) with James Gosling. Java/Sun takes a lot of flak these days, it would be genuinely interesting to get Gosling respond to some good questions.

    mosel-saar-ruwer 08/13/04 08:51:07 AM EDT

    Seems like the client might as well stick with a 32-bit Win32 platform running on 32-bit hardware.

    Or, better yet, upgrade to a 64-bit platform (Win64) running on 64-bit hardware (AMD x86-64) with a true 64-bit interface (C# & the CLI).

    All at a tiny fraction of the cost...

    latroM 08/13/04 08:48:54 AM EDT

    >>The prepondereance of GNU fanboys means that Java >>gets dissed for not being Free(tm).

    The SUN''s java implementation is non-free but there are other free implementations of the java standard, look at http://www.kaffe.org/ [kaffe.org] for one.

    Moraelin 08/13/04 08:47:43 AM EDT

    Java is pretty popular on the server side, but client side it was always one monumental flop.

    As applets go, for example, nowadays the whole program-inna-browser market is owned by Flash, followed by ActiveX. And for good reasons.

    Starting with the fact that Java 1.0 was indeed a slow piece of crap for anything but the most trivial applets. Try displaying a complex table without a JIT, and you were talking about response times you could measure with a stopwatch, not with System.currentTimeMillis().

    The initial lack of support for packing everything in a jar didn''t help that cause either. Downloading 50 classes as separate files isn''t particularly fast. And that''s a very small project.

    And for all the multi-platform hype, wasn''t particularly portable either. If you tried running even a trivial AWT applet on different platforms, you wouldn''t even get the same events. Or for something which required you to give a size in pixels on the web site, you wouldn''t even get the same font sizes.

    And by the time it caught up... meh. Flash is _still_ the better choice.

    Not the least because of download size. Sun now includes all the crap they could think of as standard libraries. Do I need an XML parser to make a simple game applet? Not really, but Sun wants my users to download that crap anyway.

    (No, it''s not a made up problem. I''ve had modem users tell me literally "whoa, I''m on dialup. Is there some smaller version I can download?")

    That''s just a small slice of the many ways in which Sun started it on the wrong foot.

    LarsWestergren 08/13/04 08:46:00 AM EDT

    >>It's strange how so many people say "Java is >>dying" or now that it patently isn't, they're >>saying "Java''s back".

    I think a lot of the people who keep saying that Java is dying say it because they wish it was true.

    And of course, if you keep repeating a lie often enough, the sheep begin to believe it. Just like on CNN, turn it on and watch a "reporter" frown in mock gravitas and ask things like "A lot of people are saying that the Kerry campaign is floundering and the Democrats are beginning to feel desperate, we ask the experts 'can anything be done, or is it already too late?'"

    No one had said any of those things, but since CNN keeps saying that people say it, it becomes truth...

    gnovos 08/13/04 08:44:14 AM EDT

    Sure, the same thing written in C or C++ probably would be faster - but when you literally can''t tell the difference, who cares? A modern PC spends almost all its time waiting on user input or IO bound anyway.

    For a long running enterprise application, it would probably be SLOWER in c/c++. No matter how good you are at programming c/c++ you can''t anticipate every little bottleneck and write it in perfect assembler... but the hotspot compiler can do that rathar well.

    TimC 08/13/04 08:42:51 AM EDT

    You forgot a couple:

    despite entry level PCs now having specs along the lines of 2.5GHz processor and 256MB of RAM, lots of people on such sites are obssessed with perceived bloat

    lots of (but by no means all) people dissing Java are actually sysadmins, rather than programmers, and do all of the coding that they do do in perl, shell script, and similar

    It always amuses me when I read "Java is teh suck because it''s so slow and bloated!" comments. I''ve been doing server-side Java development for a little over 4 years now, and we''ve never had a performance problem. I use a number of client-side Java apps everyday, too, and they''re perfectly responsive and usable. Sure, the same thing written in C or C++ probably would be faster - but when you literally can''t tell the difference, who cares? A modern PC spends almost all its time waiting on user input or IO bound anyway.

    LizardKing 08/13/04 08:39:42 AM EDT

    It''s strange how so many people say "Java is dying" or now that it patently isn''t, they''re saying "Java''s back". If you go to any of the recruitment websites in the UK, the most popular requirement is Java Enterprise experience, hardly the mark of a development system that''s been in decline ... The only explanations for this misrepresentation of Java that I encounter on sites like Slashdot and Linux Today is the following:

    A large part of the readership are students, and therefore don''t really know what''s going on in the software industry.
    The prepondereance of GNU fanboys means that Java gets dissed for not being Free(tm).

    redsolo 08/13/04 08:38:14 AM EDT

    Im amazed that MS (or other firms) have managed to let these rumors become facts. Java is not slow, at my last job we created an image viewer for professional photographers which was running on Java. The system had no problem showing 2000 thumbs (not at the same time, but scrolling was instant), zooming into 10mbs images was a breeze, you could play with the mouse buttons and it would instantly zoom to the 1:1 layer and back again. And this is something that Java has been known to be very bad with GUI and images. But we managed to pull it of anyway, and it was even quicker than the defacto industry standard application, which was written in C++.

    So, please dont come with those crap arguments, because they are not true.

    But what is true; c++ will always be faster than java, .Net might be (but thats because of the infamous shortcuts than only MS ppl know of). But is that the really point, when you are creating desktop applications? If you want speed, try develop a desktop app in Assembler. Now it will be the fastest around, but probably look like crap.

    What must be really annoying, is that .NET has borrowed so many classes from Java so they should call it J--.

    Coppertone 08/13/04 08:35:54 AM EDT

    Java is "slow" because Sun has give us a brain dead GUI components. If you are looking at server side running things like EJBs, JSPs and servlets it is just as competitive as .NET framework.

    There are a lot of pending improvement on Java GUI front, like Eclipse Rich Client Framework using SWT and hopefully it will not be "slow" anymore

    mcbevin 08/13/04 08:34:40 AM EDT

    I agree with what you write in general - that the article was unduly harsh / biased against Java. However, I differ on a few details ...

    Well, you must be pretty hopeless not to be able to install the Java runtime. Last time I installed it on Windows, it took half a dozen mouse clicks and a couple of minutes tops.

    We''re talking about the average Joe here. The average Joe just wants to double-click the installer for a program, click OK a couple of times, and have it work. I know from experience that such a requirement can be a great hinderance to adoption of a software application. I released a program with a .NET frontend, and a large portion of end-users weren''t interested in downloading the .NET framework (why this wasn''t made part of XP or at least XP SP1 I don''t know) and would quite happily write the program off as broken despite it having informed them they need to download the .NET framework for it to run.

    That''s strange, it must be their inability to code an interface and data models in an efficient manner. I write warehouse control software, where we are dealing with vasts amount of data that must be collated and displayed to the user. Very rarely do we have to resort to doing major grunt work on the server as opposed to doing it in the Java client.

    Swing _is_ rather unresponsive and slow unfortunately, due to it using no native widgets. This is solved by SWT, which mixes platform independence with use of native widgets where they exist. For this reason for example the popular Java IDE Eclipse (written with SWT) is much more responsive than Sun''s IDE NetBeans. Swing in general is one of Java''s major weaknesses (and its not ''excused'' on the basis of platform independence) - not only in terms of speed but its layout managers for example are also a joke - and is the main reason why Java is used far far more for websites than application programs.

    This could be rephraed as "bad Java programmers leak memory". I have client-server Java applications that run 24x7 without leaking memory.

    I agree with you there, and would also add that ''very bad java programmers leak memory'' while ''even pretty good C/C++ programmers leak memory. While one can leak memory in any language, Java does make it a lot easier to avoid. I have C++ programs where I''ve never found leaks despite a fair bit of work trying, yet I can''t recall testing a single Java program for memory leaks (and I''ve written and tested a lot) and ever actually finding such a leak.

    If this is really an issue for you, then you can tweak the runtimes environment. Yes, Java does requisition a lot of memeory when an untweaked JVM starts up, but the inmpact depends on the machine running the program.

    Unfortunately for the average user with ''just'' 256/512mb RAM on their machine, thrashing is almost an unavoidable consequence of using any non-trivial Java application. For development I find 1 gig RAM is a minimum for devloping with Java, whereas for .NET development I have no problems using ''just'' 512 megs.

    I might also add a thought relating to the actual editorial - comparing search results for ''NET'' and ''Java'' is hardly an accurate comparison, given that ''NET'' is liable to find a lot more pages than just those relating to .NET. That said, .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).

    RAMMS+EIN 08/13/04 08:32:24 AM EDT

    I am almost at the point that I''ll promise not to engage in this discussion again. Ok, one more time:

    "Well, you must be pretty hopeless not to be able to install the Java runtime. Last time I installed it on Windows, it took half a dozen mouse clicks and a couple of minutes tops."

    And a 20 MB download that takes dog knows how many megabytes after installation. Also, the whole process will have to be repeated at the next release, as chances are software developed on a newer version won''t run on an older one.

    "Even if there is a couple of seconds wait at startup, the JIT compiler means a well written app will run without being appreciably slower than a "native" app once the JVM is bootstrapped."

    Most applications don''t need a lot of speed once up and running, anyway. Startup time is a huge annoyance, to me anyway. Is it really that hard to save the compiled code, so next time the JIT doesn''t have to work again?

    "java applications have slow, unresponsive user interfaces--- on slower machines, using java-based user interfaces can be frustrating (resizing the application window can mean taking a coffee break).

    That''s strange, it must be their inability to code an interface and data models in an efficient manner."

    I don''t know about your systems, but on any system I have used in the past years, user interfaces in Java apps are noticeably more sluggish than in native ones. Perhaps this is perceived performance, but arguably it''s the perceived performance that matters for user interfaces.

    "java applications leak memory

    This could be rephraed as "bad Java programmers leak memory"."

    Yes, but isn''t it symptomatic of defects in the language if many programs written in it leak memory? Besides, isn''t Java''s garbage collection supposed to take care of things? Personally, I believe that there was an issue with old JVMs (at least on Linux) leaking memory, that has now been solved. At any rate, I think that kast''s author is being more bitter than rational when he says things might be better without gc. Gc is a Good Thing, after all, memory allocation and deallocation is excactly the sort of task that machines are good at and humans are not. It can even speed up programs under some circumstances.

    groomed 08/13/04 08:29:36 AM EDT

    Well, you must be pretty hopeless not to be able to install the Java runtime. Last time I installed it on Windows, it took half a dozen mouse clicks and a couple of minutes tops.

    Everything is easy when you approach it from the point of view that it doesn''t actually have to work.

    There are many versions of the Java environment, from different vendors, all with subtly different behaviors and ways of integrating into the environment. Not to mention that the user may be running other Java applications which depend on a particular version of the Java environment, which further complicates matters. This makes it a pain if you want to deliver an application to the user with minimal hassle.

    Or, you can just mandate that the user run such-and-such version of the Java enviroment on such-and-such platform, but then you lose a large part of the write-once, run-everywhere appeal.

    I run Java on very low spec embedded PC''s, and it''s no slouch there. Even if there is a couple of seconds wait at startup, the JIT compiler means a well written app will run without being appreciably slower than a "native" app once the JVM is bootstrapped.

    Java''s "slowness" has at least three components: startup time, garbage collection delays, and the huge footprint which triggers swap activity.

    For server applications, none of these matter much. For interactive client applications, these factors conspire to make Java apps look very bad when compared to "native" competitors. The exception here are applications like Eclipse, which you start when you get in from work and don''t quit until you''re done. But for most other apps, e.g. utility apps which you just want to quickly use and close, or workflows where you switch between multiple apps frequently, Java is just not suited.

    Very rarely do we have to resort to doing major grunt work on the server as opposed to doing it in the Java client.

    You''re missing the point royally. Java isn''t slow at doing grunt work. Few people would contest that. But as a platform to write desktop applications, it is a pig. The Swing UI is slow and prone to memory leaks, data interchange facilities are poor (even the clipboard functionality integrates poorly with the surrounding environment), memory requirements are completely uncontrollable.

    Yes, Java does requisition a lot of memeory when an untweaked JVM starts up, but the inmpact depends on the machine running the program.

    Indeed, and that''s why most Java shops pretty much only run one application on their servers.

    This could be rephraed as "bad Java programmers leak memory".

    The fundamental problem is that you cannot control how memory gets used. For example: the JVM allocates memory from the underlying OS in chunks which it then doles out to your app as necessary. Then at garbage collection time, the memory is reclaimed from your app and returned to the JVM. But then the JVM may or may not ever return this memory to the underlying OS. This means that even if you have a tiny application, when the user opens a mammoth 100MB document just once, the application will continue using 100MB even after the user has closed the document.

    Yes, this is sort of tunable through commandline options and other properties, but then only for some versions of some implementations of the JVM. Which brings us back to the first point, that it''s a hassle to deliver hassle-free Java applications. It''s so troublesome in fact that some programmers choose to simply distribute a JVM along with their apps.

    The bottomline is this: Java is a cool language, but it just doesn''t play nice with others. It insists on reinventing everything, it insists on abstracting everything, and it insists on total control over the environment. That''s fine for in-house apps or web apps, but it limits Java''s adoption on the desktop.

    And ultimately, I think it condemns Java to a perpetual "behind the scenes" existance, growing ever more baroque appendages in its invisible niche.

    RAMMS+EIN 08/13/04 08:26:49 AM EDT

    ``Java is slow, obeist, and heavy.''''

    And anybody who doesn''t believe this might want to take a look at why kast wasn''t written in Java [sourceforge.net]. People have been telling me that I am the only one experiencing these issues, that I simply don''t have enough experience, or that I should take a look at modern JVMs - well, here''s one example of people who tried Java and were disappointed. The same happened to many LimeWire users. The list goes on.

    mosel-saar-ruwer 08/13/04 08:21:38 AM EDT

    Yo, James Gosling - Where''s my 64-bit Java?

    Or maybe I should say: What''s the purpose of purchasing a 64-bit operating
    system like Solaris if its flagship interface is 32-bits?
    Don''t believe me? Try javac-ing the following under Java 1.5.x:
    public class SixtyFourBit{public static void main
    (String args[]){long theLong = 1;theLong <<= 32;theLong +=
    1;System.out.println("theLong = " + theLong);
    double [] theDoubleArray = new double[theLong];}}
    Lotsa luck.

    What is the point of a 64-BIT OPERATING SYSTEM if its FLAGSHIP INTERFACE is only 32-BITS? And will remain 32-bits into the foreseeable future?

    MECC 08/13/04 08:13:41 AM EDT

    I don't know what other people's experiences are with 'Java-powered' products, but every complex application I''ve seen rolled out has problems far bigger than the problems solved. Worse, Java has yet to live up to its original claims.

  • 1) Write once run anywhere. I've yet to see this true of any complex app. It's problably been done, though. I just haven't seen it done.
  • 2) Compatibility problems. I install one version of the run-time environment for a must-have client app, and the rest break. It can be fixed, but it should never have happened in the first place.
  • 3) For reasons unclear, large Java apps seem to suffer from some kind of fragmented UI design illness. Functions that logically belong together end up in totally different places. Its not true for all, but seems to be more frequent amongst complex java products than similar non-Java apps. This, admittedly, is probably due to the fact that I usually am using network analysis and managment tools.
  • 4) Massive speed inconsistencies. Onde PC will run a client just fine, and different PC will barely run it at all. It can be fixed, but I've got better things to do with my time than fix Sun's problems.

    All in all, what often happens is that I end up using non-Java powered solutions, just because they work. I could spend the extra time to fix all the Java issues, but it just never seems worth the time and effort.

  • Gosling 08/13/04 08:10:38 AM EDT

    Billions?? Millions?? Thousands?? LOL! There''s probably 1-2 5 worthy projects on SourceForge.
    I''m sorry I ever allowed McNeely to try and sell Java to the world, please accept my apologies.

    Sane Programmer 08/13/04 08:06:09 AM EDT

    aNo0n: Wow! You have completely swayed me by not putting forth a single valid argument and instead attacking the character of those who choose a different tool to you! I am so impressed by your 18-year-old-style attitude, I''m using it to attack your intolerance right now! You''re an idiot!

    Thanks for putting me onto this useful and unbeatable debate tactic, pissant!

    Jboy 08/13/04 08:04:49 AM EDT

    Sun needs to increase developer awareness of movile Java...I was bemused that while I could find lots of phones touting "support for Java games" ? I couldn''t find satisfactory documentation on what this means. I''ve no interest in games per-se, however given a bluetooth phone with support for Java ? I am interested in business applications. I want to find out if I can use bluetooth phones in cryptographic authentication systems; I want to know what APIs are available to allow my phone to run bespoke messaging software. Hell ? I''d like to see a sample application which amounts to more than a trivial waste of time. I can''t help thinking that this technology holds the key to interesting new systems? but that won''t happen if Java is just a buzzword denoting a more expensive toy.

    TrueEngineer 08/13/04 08:03:37 AM EDT


    Your comments are nonsense. There''s a whole lot more that C and C++ can do than Java.
    On the contrary, Java has spawned a legion of illiterates like yourself you figure it''s easier to write Java then real code in any language.
    The worst programmers I know are Java script clerks, they have no concept of the systems they write on and for, just nitwits that listen to the likes of Gosling and McNeely.

    If you actually knew what you were talking about instead of attacking others you might make some sense. Gosling never invented a VM, didn''t even come up with the idea, and didn''t invent the concept of an English like language, that?s called BASIC.

    However, he did invent a language that can''t decide if a String is a primitive or an object. Therefore, a String is in no-mans land. Strings are one of the most used tools in any language yet, Java assigns incredible overhead to simple operations using Strings, no other language does this. And don?t start this OO and ?run on any system? BS, Java script clerks haven?t a clue.

    Languages and engineers were around long before you nitwits came on the scene. Gosling knows he goofed and never really intended Java to be more than a basic tool. Fools tread where angels fear to go. Whole teams of scientists agonize over OS performance yet Sun produces a language that in one fell swoop sets everything back decades but still can?t create a simple application that performs properly, whether it?s on Unix, Windows, iSeries, mainframes, etc.

    It is clear through your diatribe that you haven?t a clue nor does the Java ?community?. The last nail has already been hammered.

    IoT & Smart Cities Stories
    CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
    DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...
    All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
    Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
    Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
    The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
    Cell networks have the advantage of long-range communications, reaching an estimated 90% of the world. But cell networks such as 2G, 3G and LTE consume lots of power and were designed for connecting people. They are not optimized for low- or battery-powered devices or for IoT applications with infrequently transmitted data. Cell IoT modules that support narrow-band IoT and 4G cell networks will enable cell connectivity, device management, and app enablement for low-power wide-area network IoT. B...
    The hierarchical architecture that distributes "compute" within the network specially at the edge can enable new services by harnessing emerging technologies. But Edge-Compute comes at increased cost that needs to be managed and potentially augmented by creative architecture solutions as there will always a catching-up with the capacity demands. Processing power in smartphones has enhanced YoY and there is increasingly spare compute capacity that can be potentially pooled. Uber has successfully ...
    SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
    When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...