Java Kicks Rails Butt? Are Java developers everything that's wrong about Java?
I was reading an interesting comparison between Java as a platform for Web Development and Rails. The author claims Java developers are 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.
Originally posted on http://geeks.aretotally.in/
Published at DZone with permission of Felipe Oliveira, author and DZone MVB.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.
Originally posted on http://geeks.aretotally.in/
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Andy Leung replied on Fri, 2011/02/11 - 3:53pm
Reza Rahman replied on Fri, 2011/02/11 - 5:01pm
I agree. I think Java developers should stay away from too much navel-gazing. Its true systems can be over-engineered, but there is something to be said for not sacrificing maintainability in the blind pursuit for productivity. After all, not every Java shop is a startup where short-time time-to-market concerns are all that matters. In fact, I'd contend few Java shops are startups.
Cheers,
Reza
Felipe Oliveira replied on Fri, 2011/02/11 - 5:48pm
in response to:
Andy Leung
Felipe Oliveira replied on Fri, 2011/02/11 - 6:19pm
in response to:
Reza Rahman
Reza Rahman replied on Fri, 2011/02/11 - 7:54pm
in response to:
Felipe Oliveira
From what I have observed, it's mostly about perceptions than reality. Java == (old + boring), anything else == (new + exciting) :-).
Another factor is that Java EE technolgies like JSF 2/CDI/EJB3/JPA 2 is more abstract than for example hacking straight PHP that requires very little up-front learning. Now, that's only partially a factor because after all, things like Rails and Grails have a pretty high abstraction level too. In reality, something like a Java EE 6/Seam 3 stack is comparatively quite agile/beginner-friendly especially with something like Forge: http://seamframework.org/Documentation/SeamForge.
The real problem though is that most developers that opt to work in small start-ups (the basement company, recent grad stereotype if you will) would probably resent the architect for choosing Java because he/she somehow "deprived" them from using the "kewl" technology that they would rather be working with, regardless of what the actual long and short term technical merit actually is :-).
It also doesn't help that Java developers never really seem to firmly stand up against the "Java is dead" tripe that's infested the industry for so long. Maybe blogs like yours' help matters ;-).
Cheers,
Reza
Felipe Oliveira replied on Sat, 2011/02/12 - 1:05am
in response to:
Reza Rahman
Zack Preble replied on Sat, 2011/02/12 - 9:05am
Felipe,
I can assure you that those who have evolved as developers together with JAVA as a platform will agree with you 100%. JAVA can be as complex as you want it to be but if you know enough (and stay in touch with all the latest additions and innovations) it can be as fast, streamlined, and efficient - as much as any other technology. Newcomers will disagree...
Sura Sos replied on Sun, 2011/02/13 - 10:13am
Instant Tax Sol... replied on Thu, 2011/08/04 - 11:37am