Java Kicks Rails Butt? Are Java developers everything that's wrong about Java?

Discussions

News: Java Kicks Rails Butt? Are Java developers everything that's wrong about Java?

  1. I was reading an interesting comparison between Java as a platform for Web Development and Rails. The author claims Java developers is what's wrong about Java. In his view Java is a elegant language and since the developers never looked for productivity hence it was never found.

    That's an oversimplification obviously but he does have a point. Who doesn't remember the first versions of EJB? Java developers have a tendency to over-engineer applications, I remember 10 years ago I was doing a small Astrology site for someone using JBoss 2 and EJB. I had DTOs, I had remote calls, I had Sessions Beans for business logic, I had Entity Beans (CMP, BMP) for the data access layer, and of course interfaces for everything. What a waste! I am glad I learned my lesson.

    The author of the article missed an important trying to separate the language itself from the culture of its community, which is a huge part of any platform and it should be considered when analyzing or comparing different platforms. Is that the "social" aspect of a programming language or platform? I guess so (although I feel a total cliche saying it). When Java became popular we used to worry about Web Scalability deeply, layers and layers of caching, data replication, etc. Why did we do that? Because we had to! We didn't have clusters and clusters of servers, we didn't have auto-scaling Clouds. 

    Is that something the guys from Rails for example are missing? Is that why Node.js is becoming so popular? I guess like everything in life the answer is, it depends. It depends the size, the audience, the type of application and so many other factors involved.

    Original posted at http://geeks.aretotally.in/.

    Threaded Messages (5)

  2. deja vu[ Go to top ]

    Am I repeating myself...

     

    Am I repeating myself...

     

  3. It was sent here before and I didn't here anything about getting approved, out of my control.

  4. wake me up when it's over[ Go to top ]

    Ah, it's been so long since we've had another boring and pointless Java versus Rails flame war.

  5. Both have their place[ Go to top ]

    I couldn't agree more. Let's remember where Java/J2EE came from. 10 years ago, there was really no contender in building anything that could scale. However - being a Java veteran myself - a gigantic community of developers, architects and real brains turned Java and J2EE into a solution that tries to be everything for everybody. Want to build a large sale medical system processing millons of transactions a day? J2EE is your thing. Want to build the next ecommerce site? J2EE all the way? How about a small blogging system? Of course, J2EE.

    With tham came a solution set and a wealth of framworks that are often overacrhitected for the most basic needs. The Rails community has taught us a valuable lesson: sometimes less is more. Sometimes assuming naming conventions is more productive than XML configs. The Java community responded in its typical fashion: either we came up with arguments why Rails doesn't scale and that it is inferior or new frameworks were created trying to mimick Rails' capabilities.

    Why? Because Rails might be less scalable or robust, it is a much more productive environment. Both are valuable tools depending on what you are trying to do and both have their place. If you can, try to leverage both. Which is what we are doing, if you are interested: http://conta.cc/gVTezB

    There is nothing wrong with Java developers. it's just that some that are unwilling to learn from other approaches and technologies. I find these holy wars amusing.

     

     

  6. I just finished a module for the awesome Play Framework (Java's answer to Rails) to integrate LinkedIn's OAuth Authentication to a Java app (Play Framework based).

    http://geeks.aretotally.in/integrate-linkedins-oauth-authentication-with-a-java-app-using-play-linkedin-module-version-0-2-1