The Source for Java Technology Collaboration
User: Password:



Joshua Marinacci

Joshua Marinacci's Blog

Does Java have a bad reputation?

Posted by joshy on April 26, 2004 at 03:03 PM | Comments (31)

I recently read on Slashdot (something I promised myself I was going to do less) about Miguel de Icaza's comments on Longhorn. It was a pretty interesting read and makes me think I should read up on XAML and Avalon, Microsoft's new technologies for making advanced rich web applications. What struck me as particularly jarring, however, was this thread where someone asked about Java as a webapplication stack to compete with Microsoft or an as yet unwritten opensource toolkit. Most of the readers jumped on this and attacked Java from all sides. What particularly worries me was not that so many of these readers are opposed to Java, but that their arguments are almost completely wrong. Take a look at some of these comments:

Stock Java is not an option because it lacks a few things: the easy-to-build functionality of a web page (XAML) and the advanced graphics and rendering of Avalon.
and this one:
However, it really does not matter what is going on in the java world. Java had its chance, and failed. Java the language has outgrown the Java the (virtual) machine. Java the language is now being extended in weak syntatic ways, think of generics where it is possible to corrupt generic containers because the support is only syntax deep.
and this one
Java is faster now, and computers are faster now, but technical analyses of .NET and the CLR tend to indicate that it is better thought out than Java. No wonder, since it came substantially later than Java, but that doesn't change the fact.

If Sun brings us a Java 3 in the near future which addresses these performance and scalability issues (among others) then this post will be irrelevant (well I guess it is already, welcome to slashdot right?) but right now it makes more sense to emulate the CLR and the non-Windows portions of .NET. Since Java is not open source, and the open source world would like to have something like Java but open, and .NET and the CLR are superior to Java (arguably anyway) why not implement .NET? If Microsoft changes their implementation to a point which destroys compatibility, there is still room for Mono to provide a cross-platform runtime environment which will run on Windows.
and this one
The main problem that I, personally, see with Java-based apps, is the non-native widget set. I have to admit, I honestly detest Swing/AWT stuff. Swing even more. Not only is the default theme ugly IMO, but even if you make it *look* like WinXP or Gtk or whatever, it doesn't *feel* like it.
and this one
Java is a minor cleanup of a horrible set of object oriented extensions of a 35 year old high level assembler. Perl/Python/Eiffel/Tcl-Tk show what Java could have been and where it could have gone. Furthermore, even as a cleanup of C++ it got too many things wrong, as illustrated by the numerous minor bug patches in Java "the next generation", more commonly known as C#
And these were all comments that were rated 2 or higher.

I'm starting to really wonder why Java, or at least Java on the desktop, has such an image problem? If you are talking about rich web enabled applications that run on your desktop and on the web, then Java should be at the top of the list. Do we need a PR agent or something?


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Slashdot is a petri dish
    I ready slashdot about as much as the next IT guy and I also find these comments disturbing. However I feel that they are more an example of A.U.W.D. (Angry Unemployed Web Developers) than anything else. In the real world (the world outside of /.), I find that Java is accepted and embraced. The exception to this rule is pure Microsoft shops. However, those can certainly be explained away.

    Fortunately the people who write these misinformed comments are not the decision makers. If they were, java would have never gotten out of the gate.

    There are a lot of java-haters and java-bashers on /. and on other IT discussion boards (ZDNet is even worse), but I do not feel they are a proper sampling of the work force.

    Just my two bytes.

    Posted by: mzarra on April 26, 2004 at 03:30 PM

  • proof
    i guess most of the people commenting in the slashdot do not really use, or used java in their lifes. Some comments are reflecting merely the FUD spreaded when the .Net first publicised as"java is dead, C# is he java killer etc". Closed eyed Mono crowd also can be considered in this.

    Some are linux zealots with no understanding of real business or enterprise practices who thinks everything must be GPL or open source. Many thinks makes the mistake of comparing scripting languages such as perl or php with java.

    Another crowd has used java 1.0 or 1.1 with a crappy machine and thinks java is still there
    And, last, this is the effect of swing, making people think java is not fast because before java GUI's were not using (even now not eough) hardware acceleration and a crappy metal look and feel.

    After all, i think java is the odd one out without a reason. Backstabbed many times, just like mozilla project..

    What java developers has to do is to show proof, that why java matters. Maybe a good "Java myths" page can be build by community effort, not by sun. (otherwise it backfires). Open source programmers, or people who likes java can proove that;
    - there can be fast and nice looking java user interfaces (swing, swt, xul etc)
    - there are a lot of high quality open source libraries, jvms and IDE's. One can show how Eclipse or IDEA kicks the ass of Vstudio..
    - One can demonstrate the performance issues, maybe several types of applications done under Java, C++, .net etc.
    - one can show the real muscle of java by providing an application running in all Os'es without changing nothing
    - one can show how stupid is a pet store application, and in how many different ways it can be implemented with different variety of tools.
    - one can show the progrmaming methodologies and tools tuned for java, also one can point quality java applications (jira etc)
    this list is endless.. but someone, maybe java.net should start and ask people to prepare material for war, making ignorants shut up.

    Posted by: ahmetaa on April 26, 2004 at 06:08 PM

  • Keith Lea
    I think it's mostly because applets take a long time to load, and for some reason the Java Plugin locks up the browser while loading.

    Also, applets look ugly, especially since most people have the Microsoft VM installed so they don't see the nice Windows L&F in the latest Sun JRE's. Also most things written for the Microsoft JVM are written with AWT which most people think is ugly and hard to use.

    I know someone who thought Mozilla and OpenOffice were written in Java, because they're slow and take a long time to start up. I think half of it is probably misconception, and the other half is that Microsoft is killing clientside Java by bundling their slow, ugly JVM.

    Posted by: keithkml on April 26, 2004 at 06:36 PM

  • typical Slashdot smut
    The problem here is not Java but Slashdot.
    The crowd of kiddos there (no other name fits them, even if there's grownups among them) have this idea that anything that's done by a company is by definition bad.
    Java is not Open Source (the Lord God Eric S Raymond himself proclaimed Java apostate and dead after all not too long ago) and therefore A Bad Thing that should be purged.

    Java is second only to Microsoft in the things these kiddos hate.
    They can therefore hardly be expected to make an unbiassed statement about Java (just as we are unlikely to make a completely unbiassed statement about it, being more likely to gloss over the weaknesses we know there are).

    Posted by: jwenting on April 26, 2004 at 11:40 PM

  • proof
    Were it any channel BUT Slashdot I'd agree that there may be influence of the .NET campaign.
    As it is they hate .NET even more than Java.

    To the kiddos at Slashdot Java is seen as a competitor to the Holy Grail of Perl and C.
    Anything that competes with Perl and C MUST be destroyed.

    Posted by: jwenting on April 26, 2004 at 11:45 PM

  • It is out there!
    Having read the slashdot article I deparately wanted to scream "It's out there! People are doing this!"

    Windows look & feel on the MSJVM out of the box.
    Extentions to XUL as the predicessor to XAML
    Clean, happy, warm fuzzy Java...

    http://www.nexaweb.com

    disclaimer: I recently started working at Nexaweb, but this is why!


    Posted by: jconstantine on April 27, 2004 at 04:21 AM

  • Bad reputation is a big problem
    Actually, some of the points raised there are valid. Java on desktop is still not good enough. Memory footprint is huge, startup is still not good enough (not all of the machines out there are > 1Ghz), and native integration is still not perfect (just look how much guys from WinLF here on Java.net project fixed with their XP look and feel patch). Java fonts, for example, are a complete joke. That become even worse with 1.5. Anyone tried italic fonts on Linux? Swing is still overingeenered, hard to use beast. And I know what I'm talking about, we have complete financial app written in Swing. It was not an easy ride.

    Java could have a nice chance now when most of projects will be rewritten in Java like enviroments (think Longhorn and Mono). But Sun has a lot of work to do to remove some of (sometimes deserved) bad Java client reputation.

    JDNC components. Plenty of them. Easy graphics scripting language. Native L&F integration (looking similar is actually worse that looking totally different. Human brain is tuned to notice subtle differences, and that's what gives that uneasy effect when you look at Java app; something is wrong but one can't say what exactly. Which bothers people. Which makes them go SWT) . MVM virtual machine. Continuing with Java3D. Standardised rich client framework. Quality browser component. JMF that can actually be easilly used. Fonts! Tools. And rich client demo apps. Not SwingSet2, demos that will make people go "WOW".

    Posted by: selendic1 on April 27, 2004 at 05:22 AM

  • Blindsided
    I cannot believe how blind sided the Java community it became.

    Everything with Java is OK. We don't need to change everything, we will take over the world. Swing the best in the world, we just can't understand why everybody is not using. Whatever Sun does it can not be anything else that good.

    Hear your self.

    I am not defending the slashdot community, a lot of times they are zealots. But the problem is with the image problem with Java not with them.

    Swing, is an approach that the split the Smalltak community at one time, it is splitting the Java community now. The fact that SWT even exist it says enough. After playing with SWT and Eclipse, I can tell you is SWT is what AWT/Swing should have been from day one, not after XX years after. Swing had his chance, and Sun blew it. Deal with it. In this moment Sun can not put aside his pride and work with IBM to merge the two of them.

    The Open Source community is discounting Java and instead considering open sourcing C# (aka Mono). I have the impression that they are leaving in a dream world, (M$ can easily shut down the project, but not now, it is in their advantage to let the Mono project discount Java). Here the biggest mistake is Sun's, just remember how long it took to even have a version running on Linux. We now have a Linux implementation, but licensing does not make it easy to package it by default. Sun is so afread of loosing control of Java that they hide between words, instead they should offer a version to be included in every Linux installation.

    Posted by: ahoma on April 27, 2004 at 05:55 AM

  • Bad reputation is a big problem
    Having tried to work with JMF recently, and having analysed for a client why I could NOT use it, I have a few things to say about what turned out to be a useless tool.

    In the last 9 months, one Sun Employee has replied to a total of three threads on the JMF mailing list. JMF is not supporting modern (as in MPEG-2/4) media formats (except for an expansion pack put out by IBM). It should be noted that the Broadcast industry (such as CNN, TBS, PBS, NBC, etc) all use MPEG-2 formats for their electronic formats internally. The source code shipped DOES NOT COMPILE, unless the already shipped and Compiled jars are in the SYSTEM CLASSPATH! Not all of the sources are shipped, even in the SCSL pack!
    And try opening JMF sources up in Eclipse sometimes. Due to the number of unused vars, mishandled source files, unused imports, and other poor coding techniques, Eclipse 2.0 would actually crash (3.0 reports literally thousands of Code issues). And the supposed Applet can't deal with "Native" codecs, unless the appriate JMF binaries are installed on the client machine. How about using some JDK 1.4 optimizations, and getting rid of the native code entirely?

    And my wife & I have once, and only once, seen Java ads to the public. That was in San Francisco last year, during JavaOne 2003.

    Otherwise, what is Java?

    Posted by: gorky on April 27, 2004 at 06:14 AM

  • agree
    I would take any criticism from slashdot with a grain of salt. I'm a regular reader, but I grow weary of the whine fest that is slashdot.

    Posted by: duanegran on April 27, 2004 at 07:25 AM

  • JMF is atypical
    JMF has been effectively abandoned. They haven't done a major release in four years. Unfortunately, since it's from Sun, and not officially deprecated yet, it's in the way and attracts attention away from alternatives (for example, QTJ supports MPEG-2, though it costs extra).

    Still JMF isn't core Java, it's an extension, so it's not entirely fair to use it to typify supposed problems with Java - one advantage of the javax packages is that they allow a means of trying out new extensions to Java and if they don't work out, as JMF didn't, you don't burden core Java with them.

    -invalidname

    Posted by: chrisadamson on April 27, 2004 at 08:11 AM

  • First Thing Is First
    Sun effectively killed off Java being a first generation language on any Linux distribution when they put their foot down and decided against open sourcing the VM. Developers on Linux will pick perl or python over Java because of this.

    It's too bad really, everything else that is commonly used in Java these days (Eclipse, Ant, Jakarta, JBoss, etc..) is open source.

    GNOME started because of licensing issues with QT; what shall start because of licensing issues with Java? Only the shadow knows....

    Posted by: idcmp on April 27, 2004 at 10:58 AM

  • First Thing Is First
    Yep, that one is unfortunate too. Now that Linux community has started talking managed enviroments for their next gen desktops, Java is kinda out of the picture for now.

    Open sourcing Java would turn the tide there, but I can respect Suns decision not to. However, I can't understand why there's no dialog about other possibilities. Simply ignoring the fact that Linux guys WILL choose something to compete with Longhorn is little shortsighted. We will end with Longhorn desktop sitting on .Net and Linux desktop on something like Parrot or Mono (and LOT'S of people are opting for that one. Mono will reach 1.0 on 30. Jun, and it will be interesting to watch what happens next). Which leaves Java client where exactly? J2ME only?
    It would be a great shame for Java to miss an opportunity to become de facto standard in building next gen desktops on maybe fastest growing desktop (linux) out there.

    Posted by: selendic1 on April 27, 2004 at 12:05 PM

  • Slashdot is the land of zealots
    I wouldn't take much of anything on Slashdot at face value. Hell, I wouldn't take much of it at 1/10 face value.

    What's most depressing about Java, or the job market in general, is the vast proliferation of a zillion tools. And if you don't know the tool flavor of the month, you're not what the market is interested in.

    Today it's Struts and Taglibs. A year or two ago it was EJB's. Sometimes it's a particular environment, like Websphere.

    Oh, oh, do you know today's XML flavor, um, XSLT? Or was that so 3 weeks ago? Maybe it's SOAP this month? Naw, scratch that, it's the Spring framework. And do you know how to program an Eclipse plugin?

    10,000 ways to do similar things. Java may not be fragmenting, but the toolset is a vast fragmented mismash. Say what you will about monopolies, but I envy having just a tiny amount of stability in my potential tool set.

    Posted by: ckessel on April 27, 2004 at 12:52 PM

  • JMF is atypical
    It's really sad. Sometimes I wonder if Sun really cares about desktop applications at all. The recent improvements in Swing say that they do, but it's not balanced. We need more work on this front.

    - Joshua

    Posted by: joshy on April 27, 2004 at 02:41 PM

  • In the real world...
    ... most of my customers will be using Windows.

    Perhaps the guys at Sun would like to buy a few Windows PC's and stuff their Solaris boxes away for a few months? Then they might realise that Swing still sucks performance wise, and it doesn't look or feel exactly like Windows (or if fonts, window resizing, toolbars and tool-windows are concerned, nothing like windows). Now how long have you guys been trying? Even the control-panel app comes up in 'metal' L&F. How come Apple managed a fast implementation that had a pretty accurate look and feel??????

    The language is (in my opinion) evolving far too slowly. Operator overloading (yes people can abuse it, but I can name my variables as 'a', 'b', 'c' and Java won't stop me doing that - give people some credit for not being stupid), indexers and structs (go look at C#) all make C# much easier to work with. For the numerical stuff I work on both are invaluable, but I'd rather be using Java if things were different.

    Posted by: andylarder on April 27, 2004 at 03:39 PM

  • Yes, it has a bad reputation.
    Java does have a bad reputation as a tool for desktop applications, even outside the always-whining Slashdot community. In my opinion, the reasons for that can be divided into two

    Java as experienced by an end-user.
    It is ugly and very distinctively so. It is a common choice for people writing freeware, open-source and other low-cost software, lots of crappy software has been written in Java. This is not intended as a flame-bait; these types of projects have many good qualities, but they are usually not usability tested and have poor end-user support, resulting in a bad user experience The usability of open source software. Thus odds are that the worst software that your end user has ever tried was a Swing-application and it looked so weird that he remembers it. I have had users telling me “You won’t expect me to use one of those weird purple applications, do you?”
    In many cases, it needs a weird way of start-up, command-line, or batch file (with a command window flashing in the background) and other strange behavior that just doesn’t look professional.
    Java as experienced by the UI programmer
    The GUI toolkits are difficult to use, they are poorly supported by UI design tools and give the developer limited control. For a C++ programmer, let alone a Visual Basic programmer, UI design tools, with drag-and-drop and click-to-add-code are basic tools. The horror of moving to java and realizing it’s time to start counting pixels again! And for any kind of advanced client-side visualizations – forget it. Java will never be a tool of choice by game developers; it just doesn’t have what it takes.
    As an added nuisance are the problems as experienced by the end user – the application needs to be packaged into a native executable, it must be skinned to look more native, and all the other quirks that you cover so nicely in your “Making your Swing applications go native”, those should really be taken care of in a modern environment, shouldn’t they?
    And the main benefit- the portability – how much does it really matter for desktop applications?

    I think Java is a great tool, but IMO its fundamental flaw is that it is a tool designed by developers for developers. The end-user and his expectations somehow got left out of the loop. And maybe Java’s desktop un-applicability doesn’t matter, because I find that the design question that I feel needs the strongest justifications today is this “We will implement the client as a desktop application”.

    Posted by: helgaw on April 27, 2004 at 03:42 PM

  • Yes, it has a bad reputation.
    From the end-user point, surely they shouldn't be able to tell if it was written in Java or something else, so previous experience shouldn't matter? The fact that they *can tell* gives the problem away...

    Posted by: andylarder on April 27, 2004 at 03:46 PM

  • Some truth to the issues.
    Yes Java has a bad rep. But some of it is earned. In my opinion the best APIs have both a 'deep-end' and and 'medium-end'; so that you can dive into the deep-end if you need to power, but can work productively in the 'medium-end' , using shortcuts and thoughtout defaults. Many of the Java APIs have only the deep-end and the deeper-end; the defaults tend to suck, and it is all excused by the fact that it is "enterprise ready", or "that's left up to the implementors", or "its for flexibiliy". Flexiblity isn't bad, its just that most developers, including myself, just need a clean, simple, API for most work, when that isn't enough its time for the deep-end approach; it shouldn't be required just to send email (for instance).

    Sun also needs to do a better job getting Java as a low/medium end solution for web applications. The JVM doesn't have to be opened sourced; just licensed such that the major linux distro's include it as a default, easy to install, option. Add improved integration w/ Apache and you'd see a lot more small webapps written w/ JSP/Servlet tech. than there are now.

    Posted by: rrsipov on April 27, 2004 at 07:52 PM

  • In the real what world... ?
    O please! No Sparc user will be looking for gui bells and whistles. Most Solaris deployments do not even have monitors attached.
    You live in desktop world so do not mix it with server world.

    Posted by: jsparcs1 on April 27, 2004 at 07:59 PM

  • I love Swing
    I've developed a pretty big Swing application for the past two years and loved every minute of it compared to my previous experience with Visual C++/MFC.
    I am currently porting it to C# and it's a disaster. Value types are more of a pain than a boon. I needed a simple grid (not the database type found in .net) and there is none. Overall, between Swing and Windows Forms, I prefer Swing.

    Posted by: blims on April 27, 2004 at 09:33 PM

  • Nice rant.
    It would help if you had counters; since there are several points in there I have no idea how to counter. I'd go as far as to say some are the truth.

    I'd reccomend taking the negative comments as 'general concensus' and start from there. This means good products are needed; good advertisement etc.
    Lets be constructive and find a way to do that. And don't wait for Sun to do it; it simply will never learn that such stuff is needed.

    Posted by: zander on April 28, 2004 at 01:28 AM

  • JMF is atypical
    Greetings.

    While JMF is not Java, it is unfortunately not atypical of what happens with non-core Java Tech. There is a reasonably active User Community that would be interested in making this work, but Sun won't actually let it go. And it is this insistence by Sun on holding on to stuff that they are not interested in supporting, thereby effectively killing it, that is why many people think that maybe Java should be open sourced.

    And if Sun really does want to push and promote Java, than where are the Ads? They did mention at JavaOne 2003 that they were going to start promoting the Java Brand. But neither I or my wife have yet to see a single Ad. Unlike MS, which is everywhere you look. And even RedHat is visiting Java User Groups lately (but not Sun, at least not in Dallas). Sun really needs to work on Marketing and promotion, as well as letting tech that they are not interested in supporting go.

    Posted by: gorky on April 28, 2004 at 04:28 AM

  • Hmmm
    Thats the real problem with slashdot - its full of "freakin' IDIOTS!"

    Posted by: zoggo on April 28, 2004 at 06:48 AM

  • Slashdot is the land of zealots
    +1

    Posted by: raytucson on April 28, 2004 at 07:50 AM

  • Recent Java sightings
    Recently I was in Ultimate Electronics and had a sales person do and inventory lookup. Looking over his shoulder, I notice the app he used was a java applet using the java plugin. Pretty cool.
    I don't have alot of experiences with other GUI tookkits other than Swing. I really like Swing up in the point where I want very specific behavior out of a GUI widget, then I have to start snooping in the source to see how certain things are implemented and how to extend them. Case in point, I wanted to add a "cut/copy/paste/delete/select all" popup menu to a TreeCellEditor and ended just writing my own due to difficulties getting the editing component at the right time to add the listeners to start the popup.
    However, I do have a feeling that other toolkits are just has unwieldly when a rather specific behavior is desired. I doubt that it's just Swing

    Posted by: tkdalton on April 28, 2004 at 07:58 AM

  • Yes, it has a bad reputation.
    Take a look at something like JDiskReport at jgoodies.com. It is a great example of a Swing GUI and WebStart all in one. Does Java visually look bad? Or do bad programmers make it look bad.

    I have seen more than my share of VB and Foxpro "FrankenGUI's" in my time. Clearly the result of a substandard programmer dragging and dropping components on a form. 99 times out of a hundred, if you resize the window, the components stay glued in the same place (equiv. of Java's XY Layout- or rather, NO layout).

    IMHO Java got popular and everyone jumped on the bandwagon and lots of people started pumping out crap GUIs. It isn't easy to create a nice GUI in ANY language. However, it can be done, ESPECIALLY in Java where you have more control over lots of aspects of the GUI.

    Posted by: bwy on April 30, 2004 at 08:43 AM

  • Yes, it has a bad reputation.
    In many cases, it needs a weird way of start-up, command-line, or batch file (with a command window flashing in the background) and other strange behavior that just doesn’t look professional.

    Not true. There are any number of ways to avoid this. Pointing a Win32 shortcut to Javaw.exe, Using an excellent app like exe4j, etc.

    The horror of moving to java and realizing it’s time to start counting pixels again!

    What? Use a layout manager. Anybody designing GUI's on an XY system is sure to end up with total crap. No wonder your users hate Java.

    “You won’t expect me to use one of those weird purple applications, do you?”

    If you don't care enough to download a freeware library like JGoodies which will have your app looking better than any native Win32 app out there, who's fault is that? Not Java. Not Sun.

    Posted by: bwy on April 30, 2004 at 08:50 AM

  • 2 words
    hahahahahahahahah nooobies!!!

    Posted by: trungie386 on May 02, 2004 at 08:29 PM

  • I love Swing
    The question should not be if YOU (the developer) likes Swing or MFC but whether your end users (aka customers) like what you can produce with it.

    If they like the MFC app better because it performs better and you can't create a performant app using Swing than Swing is at a disadvantage compared to MFC no matter how much better architectured it may be.

    Yes, MFC is ugly. It evolved too far and has grown way beyond what the creators ever envisioned.
    IMO Microsoft should abandon it for something else designed from scratch from the ground up (like Borland did with ObjectWindows and Turbo Vision when introducing the VCL).
    Some form of porting tool could probably be devised to provide at least some level of automated porting of code.

    Maybe it's time something similar was done to Swing, replacing it with another library that performs better and has more advanced features (plus being easier to program against).

    Posted by: jwenting on May 16, 2004 at 11:54 PM

  • 2 words
    theres alway a few in the open source crowd who swear by java. i dont really know a whole lot about it really or feel one way or another about it. i cant see myself running systems on it, but like i said i dont know much. i do know the meaning of 'bad openoffice cvs' though. i have a linux and it runs on source code. its impairitive that this source runs my computer. and the same source code runs many others. this is achived though coherent coding on a fundemental level.
    if you were to "attack" open source, as some have claimed to have been attacked by it, this would probalbly be its weakness. as source becomes more and more streamline it is very frustrating for software to compile 200+ mb of compressed code with exceptions. usually things would be recompiled only when nessessary in this fashion and would not be excpected to compile any better. there may also be resentment for it being compiled with open source software components and then being resold under a different name with the presumsion that its now better software because its not opensource anymore. there are many developers who see the need for such applications but whose efforts are overshadowed, leaving them without enough support. an opensource java-vm would be a means of isolating the platform which is its native enviroment and is where it thrives.

    Posted by: vampares on August 28, 2004 at 10:19 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds