Ruby experts compared the scripting languages of the rival PHP (Hypertext Preprocessor) language and Java during a panel session at the CommunityOne conference in San Francisco on Monday.
After an audience member asked why he should choose Ruby over PHP, panelists cited benefits such as test-driven development.
"There's a culture that's sprung up around Ruby," and the companion Ruby on Rails framework that is different from PHP, said Charles Nutter, a Sun engineer who has worked on the JRuby project. JRuby provides a version of Ruby to run on the Java Virtual Machine.
"You are pretty much ostracized from the Ruby world unless you're doing test-driven development," and writing good tests, Nutter said.
With PHP, everyone has his or her own way of doing applications, he said. Testing and tried-and-true design patterns are not part of PHP culture, Nutter said.
PHP, said moderator Mark Driver, an analyst at Gartner, is "ridiculously easy to learn." PHP and ColdFusion enable developers to do an "amazing" amount of work, he said.
"But you do tend to hit the limit when your architectural complexity goes beyond a certain space," Driver said.
The panel also pondered whether Ruby could compete with the Java language. Driver said developers he has spoken with have used words like "elegant" and "beautiful" to describe Ruby. These, Driver said, were "things I hadn't heard in the Java world, quite frankly."
Panelist Thomas Enebo, a JRuby core developer at Sun, said Ruby was created to be fun. "If something is fun to you, it is going to end up being productive as a byproduct," Enebo said.
Java, said panelist David Koontz, president of Happy Camper Studios, is a higher level system language whereas Ruby is an application language. A system language is faster when an application needs to be fast, he said.
Unlike Java Ruby does not have a formal design body for the language, an audience member said. Java is overseen by the Java Community Process (JCP). He wondered if Ruby would need a formal standardization process.
Ruby has lured people who want to create their own language features, said panelist Sarah Mei, an independent developer. But Ruby has been attracting more people who want a formal process and that is probably the way it will go, Mei said.
Nutter cited a project that spawned out of the Rubinius virtual machine effort that would create specification tests for Ruby. "That's really probably going to start helping us define what Ruby is today," and help determine what happens tomorrow, he said.
Also, Ruby implementers have gotten together to determine features planned for Ruby via the IRC effort, Nutter said.
Asked about efforts to run Ruby on multi-core systems, Nutter said JRuby is native-threaded, supporting multiple threads. Efforts are afoot for the standard implementation of Ruby to support this as well, he said. Fine-grained locks will be needed around C structures in Ruby, he said.
Panelists also cited NetBeans and CodeGear's 3rdRail as useful tools for Ruby and Ruby on Rails.