Why I didn’t like Java 5 years ago, and why I don’t like it now

Then

I started out programming in C, which taught me a lot about the fundamentals of computer science. I learned about types, memory management, functions, and logic. As I began to evaluate other programming languages to try out, I of course ended up trying Java. My first impression of it was how heavy it felt. Of course, this was when 4GB of memory wasn’t standard in a desktop, and memory allocations and processing power — were still relatively precious.

I remember trying out Swing and that only made me more disgusted with Java, as a Swing application felt horribly slow.

Java users don’t have to worry about memory management (technically), as the garbage collection system takes care of it for the user. I think this was a huge benefit for novice developers, because dealing with memory management definitely isn’t fun — and usually presents issues if not done properly.

The next thing I tried in Java was creating a web application. I bought a book on J2EE and as I began learning the ins and outs, I began to hate it with a passion. The amount of configuration and boiler plate code to get something simple up and running, was a huge turn off to me. I was disgusted with the concept of EJBs and all the various patterns in J2EE.

After a short while, J2EE was gone with the wind for me. I moved on to scripting languages, such as the notoriously shitty PHP, which was still in my opinion, more practical than Java…but I wouldn’t settle on a good web framework and language until Python and Ruby really caught my eye.

Now

Flash forward to today…and I’m still not liking Java.

It is still plagued with lots of configuration, descriptors, assembly, and boiler plate code. And now that memory is relatively cheap and available, Java still eats it like a fat boy eating at McDonalds. PermGen errors, anyone? The JVM has moved forward a lot in the past years, but its still a memory hog, and I feel like it abstracts so much low level coding that developers tend to not pay attention to the performance of a system — just throw more hardware at the JVM.

My productivity in Java is much lower than most other languages — even C. When building enterprise software in Java the complexity of getting it setup and going seems like too much at times.

DAO’s, interfaces, implementations, proxies — its just boring to me.

Ever used a BlackBerry? It feels slow to me…and I bet if it was coded in C it would be a lot snappier…same goes for Android. I’m currently using an iPhone now and it definitely feels the most repsonsive out of all 3.

What do you think about Java? Any recommendations on feeling more productive and not slowed down?

Posted Monday, December 7th, 2009 under Technology.

Tags:

Similar Posts

  • No Related Post

2 Comments 3 Tweets 8 Comments

11 comments

  1. So, he doesn’t like Java for some valid, well discussed reasons and one very wrong reason (memory management is for novices). Waste of time.

    This comment was originally posted on Hacker News

  2. Manual memory management, in most circumstances, is a waste of time. I really don’t enjoy it, but it did teach me that a resource like memory, is finite.I think in today’s world, most people that learn programming in college, don’t really get in depth with C, and in most cases start with Java (and end with Java). That is why I think the concept of memory management can easily be pushed aside (although, not always).

    This comment was originally posted on Hacker News

  3. Java is a pig. A slow, memory intensive, resource sucking pig. The syntax is bloated as well. It is a shame.

    This comment was originally posted on Reddit

  4. Yeah it so cool to hate Java … oh and it is so sloooowwww. Somehow it doesnt bother anybody that C# , python , ruby are not faster at all ….

    This comment was originally posted on Reddit

  5. Chris: never use automatic memory management?The only time I have, after the fact, thought it worthwhile using C/C++ was some Nintendo game development. Well worth the effort to lower memory footprint and get good runtime performance.

    Everything else I have done, in hindsight, would have been better done in a language with automatic GC. Fortunately for me, SAIC bought me a Lisp machine in 1982 and since then I have been able to do a lot of my work in Lisp, Prolog, Ruby, and Java :-)

    This comment was originally posted on Hacker News

  6. I really never do manual memory management anymore, unless I’m doing a performance sensitive project in which I feel like I want to be really close to the metal.I’m usually programming in Python/Ruby/Erlang…GC!

    This comment was originally posted on Hacker News

  7. The next thing I tried in Java was creating a web application. I bought a book on J2EE and as I began learning the ins and outs, I began to hate it with a passion. The amount of configuration and boiler plate code to get something simple up and running, was a huge turn off to me. I was disgusted with the concept of EJBs and all the various patterns in J2EEWho said you need to use EJB’s to do Java web development? At least spend some time learning Java before you start bashing it. Anyone else getting tired of the constant bashing of Java?

    This comment was originally posted on Hacker News

  8. The next thing I tried in Java was creating a web application. I bought a book on J2EE and as I began learning the ins and outs, I began to hate it with a passion. The amount of configuration and boiler plate code to get something simple up and running, was a huge turn off to me. I was disgusted with the concept of EJBs and all the various patterns in J2EEWho said you need to use EJB’s to do Java web development.

    This comment was originally posted on Hacker News

  9. I didn’t say you needed EJB’s. I just said that it was a J2EE pattern which I attempted to follow.Servlets/JSP/SpringMVC aren’t too bad…

    And I’m sorry if I’m part of the constant bashing, it wasn’t intentional, just using Java recently made me dislike it again.

    This comment was originally posted on Hacker News

Leave a Reply

Additional comments powered by BackType