What is it With the Java Haters?
So this isn’t a rant, it really is an effort to understand why people are so wrong in their assumptions about Java. I follow a lot of Java blogs, forums, newsletters; and sure enough every other day you have some one commenting something along the line of “Java is Dead” and continue to say Ruby is the new king. The thing I do not understand is Ruby and PHP can’t do desktop applications, and a lot of companies, even Fortune 500 companies, use Java on the desktop because of it works on multiple OS’s. In addition: look at your cell phone, Java is used on a lot of cell phones for the same reason.
I understand that there is a lot of buzz around the Internet right now, and that software as a service is the new thing coming down the pipes; but people who make comments like this really just have me wondering what they are thinking. Yes, Ruby and PHP may have passed Java in the web market (I need to check the recent statistics), but that certainly does not mean the language is dead.
When I had some product ideas and decided to release them under BlueCrestStudios, I decided to write them in Java. I made the decision based on several reasons:
1) I have written a lot of Windows applications, and developing in Java was a joy. It’s really simple to do things, especially GUI development. Tools like NetBeans make it a joy.
2) There is a lot of buzz around other OS’s, like Apple’s OS X and Ubuntu, and more and more people are discovering that Windows isn’t the only OS out there.
3) The Java community is very much alive, despite what people think. There are new products, tools, resources coming out daily; and a lot of them are free or have a low cost.
I am not saying that Java is the end all solution, what I am saying is that it is very much alive. It’s really frustrating when I hear comments like “Java is dead, and Ruby is king”. I really just want to understand where they are coming from with a statement like that. I guess the fact that they don’t say anything else means they are a fan boy, and I guess there is nothing wrong with that just let me know why you think that… I am interested to know.
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.
Comments
Well… Actually you you can easily develop desktop applications in Ruby and it’s very easy. The libraries however aren’t installed by default so you have to manually install qtruby or rubycocoa or something like that. I don’t know if JRuby will allow you to use Java’s graphics libraries but my guess is yes.
But here is the thing with Java. Developers like it because they can develop cross platform with ease. Managers like it because they get cross platform as a bonus.
Almost every user I know of hates it. It’s just so slow and clunky. And before you slam me for claiming slowness I have to clarify what I mean with that claim. I’m not talking about how fast multiplies 4 by 3 and other such benchmarking stuff. I’m talking about the user experience. I’m talking about how long it takes to refresh after I resize something or click. I don’t care about how fast it is doing computation stuff. When some process like a compile is going on I go for coffee and it doesn’t matter to me how fast it is. What matters to me is how fast the dialogs come up and how fast it is when I’m actually using it.
Then there is the memory thing. The biggest 2 names i know in java software is Eclypse and Azureus. I find both to be utterly unusable. They work great and they are both pretty impressice piece of programming. But you can pretty much forget using big java software like that unless you have over 1 gb of ram. Opening Eclipse and Photoshop at the same time? Forget about it.
I totally agree with your statement, and I would never slam one for voicing their opinion… especially when I was asking for someone else’s point of view. I was aware that you were able to make desktop applications with Ruby, but maybe I used the wrong words. What I meant was to me (and I have never developed a Ruby desktop application before), it doesn’t seem as feasible as Java… it’s getting there however; I will give them that.
As far as Java being big and clunky, yes that is true in some situations. But it has been vastly improved over the years. I don’t find Azureus unusable, and most CPU’s come with 1GB of RAM by default. A lot of applications demand that much memory these days. Swing has done a lot to help the improvement of Java GUI.
For our applications at BlueCrestStudios, we try hard to make them run fast, in both calculations and usability. In all honestly I would like you to download the demo for BackupSQL Studio, and email what you think about it’s performance. We are debating making a C++ version for users who find Java unusable. It would be great feedback for us.
Thank you for your comments, they are appreciated.
In response to Jon Gretar:
I run server programs, Photoshop, Azureus and Eclipse perfectly fine on a 1.3ghz computer with 512MB of RAM (old RAM). In terms of opening evertyhing together, they normally open up within 30 seconds to a minute (depending how many things I’m running). If I’m not mistaken, the initial load time is merely due to the JVM, which many languages will be going through (some sort of virtual machine that is). I haven’t noticed any problems with Java’s UI or performance, and I have created a few applications myself in addition to using the latter.
I say, choose the right platform for the job.
Quick background: I’ve been a Java programmer almost as long as there has been a Java language/platform to program in. In the last couple of years, I’ve taken an interest in Ruby. A few weeks ago, I took a job where C#/.NET will be the platform.
My point: I’m a programmer. I used to label myself as a “Java programmer”, but I’ve decided that I shouldn’t limit myself to a specific platform. There are a large number of problems for which I’d choose Java. There is also a set of problems for which I’d choose Ruby and/or Rails. And as I learn more about .NET, there is a set of problems for which I’d choose .NET. There’s no single platform that is globally appropriate for all problem sets.
The sign of a good developer is when they can weigh all of the available options against the problem to be solved and come to an appropriate decision.
@Gretar
That’s just more FUD you’re spreading. A lot people use applications without even knowing it’s Java. I’m guessing the great majority of the people you’ve talked to are developers who for whatever reason are disenfranchised with it. I wouldn’t be surprised if they are also Ruby fanatics.
Eclipse on a really bad day takes up 100MB on my machine, while Photoshop can take your entire config. It that such a big price to pay? Ruby makes the horrifying sacrifice of processor power instead of memory, I would consider that instantly an “utterly unusable” platform.
Don’t forget, RapidRails is built on the Eclipse platform, so even the current cool kids are using Java to develop Ruby.
The fact is, Java is doing really well, and for some reason some people just don’t like that. The article is spot on, Java is simply the king. I think when you have something to prove, like Rails does, you need to attack the king.
The sad thing with Rails is DHH is himself a great spreader of FUD. Highlighting horrible code, or claiming the Java platform to be dead; it’s amazing more people don’t call him on it. Those of us that survived Web 1.0 have a name for people like him: Technology Charlatans. We’ve seen rounds of these guys come and go. Anyone who sells you a silver bullet shouldn’t be trusted by default.
phiyan: What OS? I use Macs these days. Java ran a little better on Windows but I have tested on multiple macs and I’m just simply not happy with the performance.
Craig: Totally. I’m not bashing java as a tool. Although I hated developing. Found it to be uncomfortable(that was web dev btw.). But it sure is a powerful tool and the cross platform nature of it puts it in a class of it’s own. However. I will take a native software before java software any day if I have a choice of two with equal features. And the funny thing is I’m pretty sure most java developers would do to.
I have always agreed that diversity is key when you are a developer. When someone says a language is going to die, that’s a very bold comment. Chances are there will always be a need for Java, Ruby, PHP, Python, Delphi, etc. But if I could predict the future, my life would be different ![]()
@Ivan
I thought I was really respectful. And I can only talk from experience.
Java is in no way the king… I don’t know how you get that? In desktop development C and it’s children is the king. In web development java is far from being on the top… Its only in enterprise that java is truly the biggest.
Regarding the Eclypse platform being used for Rails development then sure. It’s used(I’m guessing by around 5-8% of developers). I’m in no way bashing Java. I repeat. It’s a great tool. I just find it uncomfortable to do basic database to web stuff. It’s only when it comes to truly large scale application with freat loads that java shines through. And Ruby developers are actually not bashing Java much. There is actually great respect towards java. We bash PHP.
Just a couple of days ago I created a post about Ruby projects of mine:
http://ralip.com.br/jp/blog/post.rb?p=firstpost
And I use Ruby for the web and for the desktop, using GTK+. My Ruby desktop programs work on Windows and on Linux as well. In my opinion, I try to avoid writting shareware type of programs, but for other desktop programs like internal or using some remote technology like VNC or Terminal Server or… Ruby desktop programs can handle quite a lot of jobs as well. The main exceptions I could make is for shareware type of work, performance intensive 3d programs, and the like, which may need something robust.
Ohh. and DHH has never, never claimed to have any sorts of silver bullets. Actually his claims are so far from being that. Now who is spreading FUD.
DHH is very, VERY clear that RoR simply has it’s place. It’s purpose is to makes easyer most of the things most of us do. the basic stuff we are always repeatig in basic web applications. RoR is NOT meant for enterprise work and it will never be.
I like Java, but I think Ruby is a much nicer language to work in. Java (IMO) made a mistake by borrowing too much ugly C syntax (I know, that was deliberate to lure C++ developers over, but still when you lie down with dogs you wake up with fleas {that will get me flamed!}) . I wish Java had included more advanced features like pre/post conditions a la Eiffel, types with declared ranges a la Ada, and true concurrent programming constructs a la Ada (as opposed to “threads” a la C++). Ruby does not yet have all of these things either, but I think the language has a much cleaner design and it will be easier to add and use these things as Ruby evolves than it will be to add and use them in Java, which is already getting unwieldy IMO even without these features.
Java is not simple. I used to program in it, now I go to the java.net page and its just a ton of confusing j acromynm. J2EE, JAX, Struts, Beans..Not to mention sevlets, and what server to use etc..
I’m trying to get back into it and am almost ready to say enough, and try something else (in my case objective c).
Its hard because its just not just a language its a whole set of libraries.
I think some of the resentment comes from the complexity and the fact that you can often times do things easier in other langagues. The complexity and “vocabulary” of java wall it off from other development groups, and cause resentment. It also doesn’t have much of a “chip in and we’ll help you get through this” kinda feel to the comunity compared with the perls and phps of the world.
@Java Performance: Java can be _very_ performant. Swing apps can be just as performant when written properly. You want non-performant? Run Ruby. Man, I cannot WAIT until Ruby has JIT compilation! Too bad it doesn’t have macros. (Yep, I’m a Lisp and Smalltalk person, and probably always will be.)
@Java Complexity: Of course it has a lot of complicated libraries. It does a lot of complicated things. Rails is great in a very specific niche, but it simply doesn’t work in many situations. The tools are better, too: because they HAVE to be to keep Java people from going INSANE.
@Java Language: Sucks. It takes away too much of my power. Gross and inelegant and has set back mainstream programming years.
Dave
I just re-read my post above and realized my metaphor is badly placed! I do not want or mean to say say C++ developers are dogs! The “dogs” in this context are language design compromises made for the sake of being familiar to C++ developers (switch/break instead of case, “=” for assignment/”==” for equality test) and the resulting “fleas” are code bugs that have tripped up C projects for years (using “=” inside an if() expression, forgetting a “break” in a switch() statement). It seems silly to me to include language design flaws for the sake of familiarity to an existing developer community. I know Java got rid of a lot of these, but I wish they’d gone even further and really advanced the state of the art in programming languages.
It is the “advancement of the state of the art” that I think languages like Eiffel, Ada, and Ruby have done well even if they haven’t been as popular as Java.
And as I said earlier I like Java, it’s the language I use most right now so I guess I’m not a “Java hater,” but I do think Ruby is a better language and I think it will be increasingly favored over Java and others.
I used to be a java programmer. I’m doing residential contracting now and it has way better returns - sometimes I wonder if it pays to do programming for a living.
Java is now a hobby. I’ve done my own project scheduling, basic accounting and cantact management (a la SalesForce.com). I still love it.
What java lacked from the beginning was ‘convenience’. Whether it’s enhanced looping or sending an email java makes you type just one more line; one more step; one more inconvenience.
I believe it was intentional, so that it could attract ‘implementors’ and their creativity. In fact, it created disgruntled programmers and users that look down on the ‘ugly’ interfaces. And I agree. Programmers waste way too many long ours bogged down on interface and presentation issues, whether it’s web or desktop apps. Users have to stare at eye soring GUI’s that really speak shame of Java. Honestly, the ugliness of Swing is so abismal, that the designers need to be spat upon at every street corner - it’s a disgrace. The look and feel designers of Java are imbecils, anachronic presence in the CS history. I really have no limit in my disgust for these retarded decision makers in particular and I have no stronger words to describe their absolutelly abhorent product.
Gosh, I better stop. The best thing that can happen to Java is for jidesoft.com to release their widgets to the community and become and optional api to the jdk. Then something similar for the web. At the same time, someone should develop a convenience api to all major java api’s: i/o, networking, graphics, etc.
Maybe open sourcing java will do.
P.S. If you find a swing lnf designer, spit in his for me - her’s too.
I think you under estimate normal users dislike of java !
Normally the big thing with java programs is they run every where but quite truthfully if they run everywhere slowly whats the advantage?
For example the PHP editor zend is created in java and has always been horrible to use because its slow !
Same as every other desktop program in java !
I’m not saying Java is useless but its permenantly touted as the “language” to use why ?
Alone using the BEA’s JRockit makes a huge difference in speed - why ???
@Keith
Just use the right tool for the job. If the PHP editor is slow, java was propably a bad choice to use it (and C and assembler would be probably faster :-)).
I use jedit.org - it is very good and fast. So if you like java use it, if not just use something else - it is absolutely your choice.
I like Java, but also other languages as well - and I actually do not understand “your” problem.
Ruby is very interesting, but C# is also great… I never had real problems with java in the past 11 years…
JAVA is one of the most over rated pieces of software around.
The whole development process is so heavy weight it is no wonder it is what is called bloat code. Yes it has a huge following but with the idiots at Sun it is time for a change.
To get to do somthing simple requires huge i mean huge amounts of supporting code and libraries from sun e.g jdk/jre all of which are well complicated.
I am an C/assembler person - i get these but looking at java and reusability/any platform has created a ‘government’ process to development.
Sorry, the comment form is closed at this time.

























In my opinion, with decades developmen Java become a mature technology, so many projects choose it. Ruby and other DSL really have something special which we would learn. They will be popular in the future. Just use what you feel good and learn something new~~~