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/.