InfoQ

News

Tim Bray compares intrinsic qualities of Java, Rails, PHP

Posted by Floyd Marinescu on Nov 10, 2006 04:00 PM

Community
Java,
Ruby
Topics
Web Frameworks ,
Performance & Scalability
Tags
Productivity
A firestorm was set off on a TSS thread about a slide from Tim Bray's keynote at a PHP conference with a bar graph showing PHP more scalable than Java.  Tim Bray has since put the slide in context in a comparison intrinsic qualities of Java, Rails, and PHP on his blog, as well giving InfoQ his own personal take on it.  The context for the discussion is Web Application Building, which Tim characterizes as a problem space in which "we are not considering general issues of compute performance, because in Web apps, you don’t do much computing. You get some values from the browser, you use them to pull some info out of a database, you report them to the user, maybe you update the database, and that’s about it."

InfoQ asked Tim about some of the more surprising conclusions of his intrinsics comparison:

InfoQ: Why is Rails more maintainable than Java?
Mostly because there's less code.  The fact that Ruby *forces* MVC on you helps too, also the fact that the templating and ORM and testing and application code are all so tightly integrated helps.  Bear in mind that we still don't know how well Rails is going to work outside of the CRUD-centered greenfield app space where it shines.
InfoQ: Why is PHP more scalable than Java?
It isn't, but in the Web-app space, it's a little easier to scale (shared-nothing by default); Java requires you to think.
InfoQ: So which intrinsic is more important to you?
For me, maintainability; but I'm sure there are lots of other people who would make different choices for very good reasons. 
Tim also explained the maintainability point further on his blog:
Out there in the wild woolly “Web 2.0” world, maybe getting it built quick is all that matters, because after you’ve knocked ’em dead and been acquired, you can use the money from the Yahoo! buy-out to rebuild everything right the second time. In the enterprise though, I kind of suspect that smart developers and smart managers know that for real apps, the big development cost starts to happen after they’re delivered.
You can also see Tim Bray on InfoQ's video interview with him on Rails, Rest, Java, and XML.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.