Blog



Java is not dead…in fact, it’s got more than enough energy to kick your app in the butt. Too often, critics focus on niche issues and make unfair comparisons to other technologies or languages that do not have the same level of widespread use, applicability or history as Java. It’s like comparing a car to a carpet.

Children today are able to learn Java. It’s widely adopted among Web and Enterprise App producers. It has seen some amazing improvements in recent years and even more good stuff is on the way. But even excluding those latest additions, Java is still pretty darn cool: consider the widespread applicability and excellent engineering behind the JVM platform, the clarity of syntax, the rich ecosystem of tools and libraries and the fact that Oracle says there are over 9 million Java developers out there (and many billions of app/device users). So why do I hear remarks about Java being “on its way out” or, since back in 2007, that it is becoming “the Cobol of the 21st century”?

The Java platform is an engineer’s dream

First there’s the Java platform. The HotSpot JVM is a marvelous piece of engineering. It does stuff the CLR can only dream of and is so heavily optimized that often Java apps can even match the performance of C programs. Also, there is quite a selection of other virtual machines available (such as JRockit, Zing), should your environment have some specialized requirements.

Secondly there’s a multitude of JVM-based languages, which makes the platform even more amazing. It goes way beyond the famous ones like Groovy, Jython, JavaFX and Scala. Java now includes such treats like invokedynamic opcode and the java.lang.invoke package, making it easier to build dynamic languages for the JVM. There’s already a line up of over 50 JVM-based languages, one of the most interesting ones being php.reboot, which aims to keep the philosophy of PHP but remove its shortcomings. And it also works for Android, too.

Java is mature, but not a language for old people

Java as a language has been the target of much criticism, whining and cursing. I say the language is not dying or Cobol’ish either, quite the contrary. When complaining about Java and recommending better alternatives, people often use strange comparisons. Some people seem to think that Java is still in version 1.4, written in Notepad and requires EJB2 to write a simple guestbook. It is then compared to a high level framework or even a CMS!

As a Java developer, this comparison doesn’t make any sense to me. It is wiser to compare how Java measures up to more intelligently-chosen contestants…How about pure Java vs pure PHP, Python or Ruby? Or comparing the Play! Framework vs Ruby on Rails? Or Spring MVC vs Zend Framework? When put in this light, I feel that Java does not seem like a “language for old people” anymore.

Java is verbose? Of course it is!

People say Java is so verbose, and it slows them down. Critics often refer to the strong static typing and lack of bleeding-edge features in the language. However, I believe this is actually deliberate and a good feature of Java.

Dynamic languages are popular when starting a new small project, but consider this – with the help of modern frameworks and proper tools (i.e. consider using an IDE instead of Notepad), creating a “Hello Guestbook” type of application in Java is a simple, 10-minute affair.

If you want to test that, try Spring Roo and use a stopwatch if needed. Now, let’s take a step outside the trivial CRUD matrix used by cool languages and frameworks in their marketing talk.

Imagine you’re building a system for a mobile carrier and want to allow clients to sign up on their website. You will have to collect a lot of data and possibly invoke various subsystems in the backend. Cool frameworks often break down the minute your program model does not match the user model anymore. For more, I can recommend this wonderful post on that topic by Joel Spolsky.

Java is strong with static typing

Strong static typing has many benefits. I love its simple visual appearance. I can glance at a piece of code and usually figure out immediately what’s going on. It’s like the visual feedback in English – the lgnaugae is so esay to raed taht the lettres can be miexd up isinde wrods, and it’s sitll redaalbe.

Some other benefits of the type system include strong IDE support. Dynamic languages will always be at a disadvantage here. Having a simple, no-nonsense language in a huge project with great IDE and tooling support is priceless. Nothing else comes even close IMHO.

Critics have a point that Java may lack some of the expressiveness when reading a file, transforming xml or iterating through a collection, but you can always create a sub method to handle common cases, or use FileUtils.readLines(). There is also a huge number of libraries available for Java that handle most of the “expressiveness shortcomings” of the language.

Java 7 saw some neat enhancements such as auto-closable resources, String support in switch statements and underscores in numeric literals (I urge you to read up on project Coin). Java 8 promises even more (most interesting part being closures).

The takeaway here is that the language is getting some fresh blood. However, the features will not be some experimental ideas which may or may not be around in two years, but proven and mature concepts. This does not mean the philosophy is mutually exclusive with having fun when programming. It isn’t.

A Fanboy Rests His Case

Is everything about pure Java perfect and justifiable? Of course not. And that is why there is Java 8 in the works. And Java 9. What I personally dislike most about Java is the not-so-smooth core API, and there is a debate whether this has actually more to do with the platform than the language. The core contains the evolution of API design spanning two decades, and modernizing it all will break backwards compatibility. Some parts are too abstract, some not abstract enough. Some bits are too fragmented. Some are just plain weird. Looking at the competition, the core API could do well with the unified communications API like .NET for example. Java 8, with the help of project Jigsaw, may change that.

So there you have it. Pure Java, used properly, is an awesome language. Even more so than Klingon. It will continue to improve and will not go away anytime soon. The effort should not be on replacing pure Java, but using it together with other JVM languages where it makes sense. But for my next Pet Clinic, I’ll stick with Java.

***

P.S… An Example of Java in Use

This article, like Java, is a bit verbose, so I’ll leave this example for any readers who want to continue.

Say you need to build a web application and you need control over the html output or http requests. Consider the stack of pure Java, Spring MVC and Hibernate. Yes, it’s an old combination, almost like a cliche, but it works beautifully. It has many benefits and little downsides, most of which can be eliminated with a little help from your tools.

Writing Java code is fast when using a modern IDE (Eclipse, Netbeans, IntelliJ). All of them have code completion and shortcuts that take much verbosity-related angst out of your day. Using relatively modern (i.e. less than 3 years old), versions of Spring and Hibernate, you don’t need to write five miles of xml to have red buttons with rounded corners (it has never been that bad but people love exaggerating). You can use annotations most of the time. Even when you need applicationContext.xml, using a Spring IDE plugin makes that a breeze. With JEE 6, you don’t even need a web.xml. Even if you have to use an older servlet spec, IDE will generate web.xml for you. It can generate a project layout and add servlets just like Grails’s command line console, but better.

The last bit you might complain about is the turnaround. Making a small change and seeing the result has always been fast in PHP, but not so much in Java. Again, tools are there to help you. Without tooting our own horn, JRebel, for example, will instantly reload classes in the running application regardless of your stack. Same goes for refreshing Spring and Hibernate configuration. It goes even further by mapping resources between the workspace and the deployed application. This makes your life easier when working with static resources too – you don’t need to copy jsp’s to the right place or run any build script to see the changes. Just press ctrl-s.

You get to keep all that’s good about Java. In short – you’ll have the best of both worlds.

Arnel Pällo

Arnel Pällo is a Java engineer at ZeroTurnaround. He works on adding support for web-service frameworks into JRebel and is a major fanboy of pretty code. He plays Bioware games and hacks his Android phone on weekends. He also likes salsa dancing and can make a great Mojito. You can connect with Arnel on Facebook.

More Posts

  • http://www.itoctopus.com/ itoctopus

    Hi Arnel,

    There is a word that was only mentioned once in your post above, and that was key to reviving Java, which is Android. If you want to develop in Android, you need to learn Java, as Java is Android.

    Every developer worth his salt knows that the future is smartphones and tablets, and so everyone is trying to learn Java to develop with Android.

  • http://twitter.com/bogomep Bogomil Shopov -Bogo

    I think you can learn programming for android without learning the most of the java it self :)

  • http://willsams.myopenid.com/ Will S.

    I’m a .NET (C# and VB.NET) guy doing more and more Java stuff on my down time.  I simply agree with everything said here and I’ll leave it at that.  When the dust settles, Java isn’t going anywhere.

  • http://codeflow.org/ Florian Bösch

    The old Java is as fast as C myth: Yeah in micro-tests you might reach that speed, but once you factor in realtime application concerns (GCing), a bunch of shoddy written stdlib and framework code etc, that has all but vanished. Heck, I can write Javascript or Ruby code that’s nearly as fast as C, doesn’t mean they’re actually as fast as C.

    The old Java is portable myth: Ask anyone who’s ever written vanilly jdk java, J2ME and Android java how portable their code is (even among android devices) and you’ll find out that the theoretical portability is worth zilch/nill/null/nada because you’re targeting a bazillion of slightly different but same looking APIs that break everytime you plugged the gaping hole for one device/driver/platform.

    The old Java is modern myth: Java doesn’t have proper closure, anonymous blocks, co-routines/continuations, iterators/generators, first class types, and the list goes on and on.

    The old Java is popular myth: once something’s gotten a sufficiently large userbase, it’ll hang around pretty much forever with a substantial amount of users. Even Cobol has a substantial amount of users still, doesn’t mean it’s popular. Same has been said about C++ etc. Just because there are still people to pat themselves on the collective back doesn’t mean anything.

    The old Java is pleasant myth: no. seriously, really? no. You probably haven’t used any other language if you can even say that.

    The old Java has great libraries myth: Yeah, for each task it has about a dozen buildin libraries, all about 80% complete, and about two-dozen other libraries you can download somewhere, mostly about 20% complete. “Java: There should be as many broken ways to do the same thing as possible.”

  • http://www.emitrom.com/ David La Motta

    Very well said. There is one area that Java has been left out of, and that is mobile.  If not for the advent of Android, Java for mobile would still be taboo (lets not mention J2ME).  What about iOS, though?  iOS has a huge junk of the market, and it spits in the face of Java developers who don’t care to pick up Objective-C.

    Enter Emitrom.  The “GWT4″ team is making use of GWT like MacGyver used his Swiss Army knife.  With the GWT compiler we allow Java developers to write in our beloved Java, and out comes [Javascript] that can be interpreted by any webkit-based device.  If we want access to the hardware, we can do that with integration with PhoneGap, again, all in Java.

    In light of not turning this post into a shameless plug, my point is to extrapolate the idea that Java is here to stay, and it has the ability to touch every area one could possible desire to address: back-end, front-end, web, and now cross-platform mobile.

  • http://twitter.com/antonarhipov Anton Arhipov

    Java doesn’t have to be modern. It will get some fancy stuff eventually, but even then it won’t be as modern as the other not-so-popular languages 

  • Mateo Bengualid

    The C/JVM speed debate is sadly unscientific and therefore useless. I’d really like to see a paper on this subject, though. My thesis: it’s so easy to screw up memory management with C that perhaps using a GC actually improves performance.

    I’d like to see a paper about portability, but since I don’t have any, I’ll talk about my personal experience. I’ve done plenty of J2SE applications for Linux and Windows, for different versions of the JVM, and even different manufacturers (at least IBM and Oracle VMs). I’ve also done migrations from J2ME to Android. From my own experience, the only place where portability breaks down consistently is in the UI. Migrating to Android is easy, even if they have different storage models, for everything *except* the UI. But this is nothing new, because every multi-platform environment with a visual library (let’s say Python+GTK) has the same problems. So yeah, it’s as WORA as experience has shown is possible. Compare this with C and C++, which have huge portability issues: Mozilla has a nice page about this.

    The part about modernity really shows how you don’t have a clue, because from this point onwards you mix up the language with the platform, but I’ll ignore that. Yeah, the Java language doesn’t have “proper” anything, but what did you expect? It’s neither a dynamic language, nor a functional one. Why should the syntax allow closures? It doesn’t have “proper” anonymous blocks for the same reasons, although it provides a static mechanism with anonymous classes. Iterators are hardwired into the Java language since 1.5 though, and generators are harder to implement, but not impossible (use Jython if you want those features ingrained in your syntax as badly). Finally… Scheme has provided continuations for over 15 years: hardly new. And first-class types… what the hell are you talking about? Java 1.0 had those: they are called classes. Scala has different first-class types, so has Jython. Deal with it.

    Regarding popularity, I lack numbers. But so do you: you only made a general statement that didn’t supported nor denied the “myth”.

    About pleasantness: it really lies in the eyes of the beholder. I hate CamelCase, therefore C#, but that’s just me; I love Python’s simplicity in variable declaration. But since syntax pleasantness is marred by APIs, I hate Python for its low level I/O routines and the mess the Python Foundation did with cryptography libraries, while the opposite is true for Java. It really depends on your problem and circumstance.

    Finally, a note about libraries (Java platform again, jay!). Sadly, your comment is valid for any platform. That’s why Haskell has Snap, Python has Django and M2Crypto, .Net has NHibernate, and so on. In the case of Java, I’ve rarely needed third-party libraries. If I do need them, they are always provided by: (a) the Apache Foundation, (b) the JVM manufacturer, e.g. Oracle or IBM, or (c) providers from widely used libraries, like SpringSource.

  • Alex

    “lack of bleeding-edge features in the language”

    Or lack of 1970′s features in the language.  When do you think we are going to get some of those?

    “Cool frameworks often break down the minute your program model does not match the user model anymore. For more, I can recommend this wonderful post on that topic by Joel Spolsky”

    Joel doesn’t use the word “framework” once in that article.  It’s an article about user-interface design.

    “strong IDE support. Dynamic languages will always be at a disadvantage here. Having a simple, no-nonsense language in a huge project with great IDE and tooling support is priceless. Nothing else comes even close IMHO.”

    Most of these features of your IDE came from 1980′s Smalltalk IDEs, a dynamically-typed language.

    “There is also a huge number of libraries available for Java that handle most of the “expressiveness shortcomings” of the language.”

    I’m curious to hear what they are.  I would have thought that any “expressiveness shortcomings” of the language would be syntactic issues, and thus, lacking any means of syntactic abstraction, a Java library could not help at all here (besides, say, providing an interpreter or compiler for a completely different language, like Clojure does).

    “Pure Java, used properly, is an awesome language.”

    So Java has some flaws but there are libraries to deal with that, but it’s only awesome if you don’t use any extra stuff?  I don’t quite understand this.  What language, exactly, are you comparing it to?  You mention Python and Ruby earlier, but I haven’t heard you say anything about Java that is better than them, apart from your mistaken ideas about IDEs.

  • http://twitter.com/matjazmuhic Matjaz Muhic

    Yes. If you don’t care what your code looks like afterwards.

  • http://twitter.com/matjazmuhic Matjaz Muhic

    Those who disagree probably didn’t do much Java or did some Java in college… :) 

  • http://profiles.google.com/peter.m.ashford Peter Ashford

    Speed:  I’ve written OpenGL game code in C++ and Java.  The speed is equivalent.  Speed testing various systems implemented in both languages has (since Java 1.5 shown Java to be 80-105% the speed of C++.  Only in some heavy memory allocation tests did I find c++ to have any real advantage – and 1.5 was, what? 5 years ago?  Java is faster since)

    Portable:  I’ve written Java code for Windows and Unix machines on a Linux box.  Ported perfectly.  I’ve written Java code with 3D graphics and low level hardware interaction on a Windows box for a Mac and it work perfectly.  First time.

    Modern: Closures and your other wish-list items don’t constitute “modern” (unless Lisp is modern???)  These features are language choices and just because Java chose not to use those features is not a sign of AGE it’s a sign of DESIGN decisions. You may choose to disagree with those design decisions but characterising those as constituting “modernity” is factually incorrect and pure sophistry.Popular / Pleasant: The author loves Java.  I love Java.  I have developer friends who love love Java.  Again, if you don’t that’s fine, but don’t speak for the rest of us please.”The old Java is pleasant myth: no. seriously, really? no. You probably haven’t used any other language if you can even say that.”  And here we see the typical arrogance of the programming language hipster.  I’ve been coding for three decades.  I’ve used everything from machine code, C and C++ through to Python, Ruby and Lisp.  And I LOVE Java (I also love C and Lisp).  I am SICK TO DEATH of arrogant jerks who assume that the only reason that anyone would like Java is because they’re some programming newb who has no other experience.

  • http://twitter.com/antonarhipov Anton Arhipov

    ” I’m curious to hear what they are. ”
    How about Guava collections library? Or Mokito, or LambdaJ? Those libraries are awesome and really help a lot inferring some eye-candy to the code also.

    I don’t think the author actually compares Java to any language. It is just the fact that Java is a fine language to program with and a freakin’ awesome platform/ecosystem for the community.

  • http://twitter.com/javadeveloping Narayan

    What do i think is java is becoming stronger than ever. I’m a javafx and java developer. I’ve been always using Java and only Java after taking taste from C, ActionScript . The difference I found in Java was it’s more portable than any other langauge. And I feel easy to code in Java as it has good programming features. Day by day it’s increasing it’s users and it’s usage. Today most of the smart devices are all running with Java including Android. After involvement of Oracle in Java I found some progress on GUI and deployment performance. Even twitter is using Java for their searching stream . Java is super fast in comparison to others while doing big stuffs

  • Andrea Del Bene

    I’m happy when someone says “Java is dead”. Java “is dying” (and is  “doomed”) since 1997, but it still rules software industry.

  • http://profiles.google.com/peter.lawrey Peter Lawrey

    There are posts on the web claiming Java is dead every years since it was released.  So many that you can graph the numbers associated with each year.   What I found is that many of the posting are of the form; Java is Dead, Use My Preferred Language instead,

  • http://managing-java.blogspot.com/ Sebastian

    Java is neither dead nor will it be in the next 10 years. According to tiobe and joinvision there simply is no successor on the horizon. See my analyses on http://bit.ly/zWZ5ji (in German)

  • Bobsmith

    Oh, how I tired of arrogant people who think they are so much smarter than everyone else.

  • Dave Stengel

    Wow .. Florian, you really are quite the douchebag.

  • http://codeflow.org/ Florian Bösch

    Which pretty much applies to much of the in-Java crowd singing “la-la-la I can’t hear you” over their wonderful enterprisey import java.lang.foo.bar.enterprise.ncc.1701.d.factory.multimanty.factory.manyways.are.we.there.yet.libraries and all the horrible, horrible gunk you eloquently call “programming” despite that you pretty much have no clue how that looks like if it hit you over the head with a rock.

  • Ramy

    oh you’re a funny douchebag

  • Mikhail

    Java is not dead now like COBOL was not dead 30 years ago. I have done a lot of Java programming but these days I prefer C# - ”proper” generics , WPF, Linq, Rx, await/async, all features Java developers could only dream about. Only doing C# you notice that Java is like a woman in the fifties – reliable but not exciting at all… Sorry guys.

  • Anonymous

    coming from a person who relies one java for their income i am simply not surprised.

    there will always be java programmers just like there will always be delphi and pascal programmers.

  • Sharath Naik

    JAVA is dead.. Long live the ????? I am sorry but when u declare something dead aren’t you supposed to state the alternative? This is a pointless discussion if an alternative is not stated. I can make a statement too here it goes”smart phones are so yesterday, they are practically dead”, you see I look like a fool to myself.

  • http://codeflow.org/ Florian Bösch

    Well C is enjoying some renewed popularity despite having been officially declared dead about once every decade since its inception somewhen in the stoneage.

    A flurry of funny languages like ObjC (which is actually despite the name, just a kind of lisp with pointers and square brackets) is mighty popular these days.

    Of course there’s the Javascript side of things, which is quite messy, but gets made funnier by things like Coffeescript, which depending on which coolaid you drink is the greatest thing since sliced bread, or the incarnation of the deveil (I think it’s cool). Ohyeah, it’s also the only remaining “write once, run everywhere” language that actually runs on your desktop, so that’s a plus.

    Dart, for what it’s worth, may (or may not) turn out to be a lot of balloney, or the second coming. Who knows, at least it has classes (but so has Coffeescript), but it also really has operator overloading and setter/getter properties on your own stuff (which Coffeescript hasn’t).

    If you’re asking yourself “Well, when java is dead, what replaced it?” the answers’s pretty simple. Nothing replaced java, it just never was everywhere to begin with (and it still isn’t), and the few places it has been first (like applets) are long no more and ursurped by a variety of other stuff. Java never held a candle up to PHP (in terms of popularity), and the enterprisey programmers are apparently shuffling back to Cobol.

  • http://profiles.google.com/fenton.travers Fenton Travers

    I started programming in Java, day one it came out.  I’v e been programming in it ever since.  I’ve programmed in a lot of languages, from shell scripts, perl, python, ruby, c, c++, what am I forgetting?

    Now I’m doing everything in my power not to program in Java.  I’m trying to move to Clojure, but often find myself working in Ruby.  I work with a lot of other programmers.  Yes, Java is probably better on big projects than C++, but its too easy to write crap in Java.  Like total nonsense, spaghetti code, that just goes on and on and on forever and is completely un-testable.  To me this is the alpha and omega.  This is the problem with imperative languages: fortran -> c -> c++ -> java.

    I used to be a java fanboy, because I was forced to use something even worse for a time in my career.  Now that I have the luxury to pick which language our team is going to write in, I’m running for the hills from Java.

    Try this.  Try to write some stuff in Ruby, then you can use Jruby to run it on the JVM.  You can hide this from your management.  Just try it.  I think you’ll then begin to understand what it is about Java, that us Java refugees are talking about.  If you don’t like it, you can always come back, and you’ll have added a tool to your toolbox.

  • Jamestthomas

    Do something productive instead of being a java basher.  I’m sure you are most capable.  The Holy Wars are the pitfalls for many otherwise talented people.

  • Jamestthomas

    I hate to tell this self proclaimed expert that Java is widely used in the company I currently consult for and I have not been out of work as a Java programmer a single day since 1998.

  • http://codeflow.org/ Florian Bösch

    I hate to tell this self proclaimed self proclamator that that in 15 years working in the IT industry I never had trouble finding work not involving Java. And the few times that I did accept such work (on some insane impulse thought of “how bad can it be?”) I sorely, sorely regretted that decision.

  • James T Thomas

    I have worked for companies that write Java Code using Eclipse on a PC.  We test it then port it over to UNIX servers, or Linux etc….  We have the site running on windows and UNIX servers with classes compiled on Windows.  Java is portable.  Is it verbose – yes.  Lots of libraries … yes.  Perfect….no.  I do not claim it to be perfect by any means.  It is a tool that works and has been adapted widely.  You can write elegant Java as well as spaghetti code.  Ulitimately it is how the tool is used.  A language will not create good programmers.  Study, practice, and keeping up with technology as much as one can increases a programmers abilities.  I disagree with the intent and content of Mr. Bosch’s ‘expose’.

  • http://codeflow.org/ Florian Bösch

    I disagree with the intent and content of Mr James T (Tiberius, Thomas, Tomatoe?) Thomas ‘expose’.

    I’ve worked for companies that used Java and Eclipse and I found that it usually was a clusterfuck, and that if you took away a Java programmers Eclipse, said programmer just became an inert hunk of protein without any productivity whatsoever (although even with Eclipse some programmers, especially Java programmers tend to be active hunks of protein with a negative productivity quotient).

  • Saxo

    I think java will gain even more momentum with JDK8 when Java will also support closures. Will take quite a while till the average Joe java developer will grasp the power and ease of using closures. But then the masses will somewhen understand closures and like them as all those people did doing Smalltalk, Ruby, Groovy, Scala, etc.

  • James T Thomas

    What a negative reply, off point, insulting, inaccurate, and rediculous.

  • James T Thomas

    There is no la la la going on except in your head

  • James T Thomas

    I didn’t come on here self proclaiming anything.  I answered your proclamations with facts.  Sorry that doesn’t work for you.

  • http://codeflow.org/ Florian Bösch

    Actually it’s pretty accurate, or do you profess to have been along whereever I went and saw one clusterfuck after another to do with Java? Seriously, because I haven’t seen you peeking over my shoulder, so that kinda creeps me out.

  • James T Thomas

    There are always ‘Know it all’ programmers.  I hope for everyone here you do not have to work for a Crusader with a bug up their a…  It will diminish your growth, take much joy out of the work, hurt teams and the ability to work together.  I work with people who respect and learn from each other.  It is the best job I have had in years.  I have suffered working with fat heads and I am particularly opposed to the “shock’ statements that come from MT. Olympus.  What is dead or should be dead is the fat head know it all in an industry where no one knows it all.

  • Vistacalifornia2000

    Please do not use profanity Mr. Florian Bo..sch.

  • http://codeflow.org/ Florian Bösch

    And I reproclaimed your proclamations right back with facts, sorry you feel thats not working for me, but I assure you, it’s not working for you.

  • Anonymous

    Java will never die.  For other programming language, they are really excited about new features on next major version.  Like PHP3 to PHP4.  For Java, most of us don’t care as much after Java 5.  What I’m saying is that Java isn’t just Java.  I look at it as a massive third party code that works on Java.  Anything I can think of is already done by millions of people and often offer multiple solutions to solve a problem.  It gives you CHOICES where other new and hip languages lack.  I’m not saying those languages are bad or not fit for business but code quality comes from a programmer and not what programming language he uses.  For me, I’ll stick w/ Java for long time~~ Not because it’s OO or other marketing stuff.  It’s for all open source that runs ONLY w/ Java. 

  • http://www.facebook.com/hernan.javier.saab Hernan Saab

    Java is a fine language. It works great for certain applications. The bad rap it’s got is mainly because a few years back it was pushed as the language that will solve all problems. It was pushed to be the language of the web for both front end and back end. There is little doubt that it failed at that.
    However, Java is great for creating custom server apps as well as tools. 

    I can’t help to notice the overhead of some java apps that creates overbearing lag. Think netbeans or aptana. Compare these two tools to XCode. There is no question on the responsiveness of both tools. XCode wins many times over on responsiveness and memory footprint.

    Again, Java is great but there is an unnoticed killer called ObjectiveC + ARC that will make java disappear for all new apps

Join the Rebellion Facebook Twitter RSS feed