Why I Do Not Use Java
I was talking to a client and we discussed the possibilites for a client management application they want. Beside some implementation details I was thinking of and talking about security aspects we came to a point where my client started asking technical questions. He knows an competitor who has a similar system. They used Java and he asked why I would not use it.
This is no discussion about old, known facts. I think we all agree that Java just sucks, is ugly and bloated. If you love writing XML files for your applications, prefer being spanked while bent over a chair and hope that you will some day be in prison to drop the soap you are welcome to disagree. But this is not the topic of this post.
Sun, which is now Oracle owns Java. And did you ever read the license agreement? You know this long, boring, lawyer written text box which could state that with clicking "agree" you sell your soul, body and everything you own to a church an no one would notice?
To talk about a recent example. You could have heard about the lawsuit against Google. They use Java for their Android phone. Oracle believes that Google owes them 2.6 billion dollar or something like that for using Java.
What happens if Oracle wins and Google refuses to pay? Or if they cannot afford it? Basically Android will just be dead. Of course there will as always be some ways around and of course they would pay since they have enough money but 2.6 billion hurts, no matter if you are Google or not.
How does this affect me and you?
Just imagine Oracle believes that they can make more money with Java if they start selling the SDK now that so many people and companies use it? Oracle showed that they a professionals when it comes down to squeezing the last few cents out of a product. I would have to buy licenses or rewrite all applications I have to maintain.
If you write Java applications you are forced to listen to Oracle. There is just no alternative and they are a company trying to make money. It is that simple.
Why should you choose another language like Python, Ruby or $foo? Take a look at their license, take a look at the community, take a look at the different implementations running on various VMs and try to answer this yourself.
If one of the implementations you use stops working you just take five minutes to port it, if this is necessary, to another one. Try this with a Java application that consists of more than 500 lines of code and this creepy open implementation that has more bugs than Windows ME.
No matter if you like this creepy language or not - you should think about your clients, your work and what will happen when a company that is known for squeezing as much money as possible out of products notices that there is an additional one in their product line.