Ruby Is on the Rise
SAN FRANCISCO -- With Java now a very mature language with millions of developers, the Ruby language is among the fastest growing programming languages, and the number of Ruby developers is expected to quadruple over the next five years.
In a panel discussion at the Sun's CommunityOne day preview to JavaOne here on May 5, Mark Driver, an analyst at Gartner, said, "There are under one million professional Ruby developers now and we're projecting there will be four million plus by 2013." Driver later told eWEEK that Gartner's research shows "strong interest" in Ruby and that the percentage of developers that will be creating commercial systems versus those that are hobbyists will be even greater for Ruby than for other languages. "Ruby will be more interesting to commercial developers," he said.
The panel discussion featured a variety of participants, including some core contributors to the JRuby project and a trio of Ruby developers. In addition, while broaching the issue of Ruby's growth, the session also at times compared Ruby to other languages such as PHP and Java itself. JRuby is an implementation of Ruby that runs on the JVM (Java Virtual Machine).
Charles Nutter, a Sun engineer who is a core committer to JRuby, said one reason developers are beginning to look at Ruby is that "Ruby is the flavor of the week, and there are a lot of ways to solve the problems of the Web."
Nutter also commented on the progress Sun has made with JRuby. "We've got the compatibility thing under control and the big thing is to continue to improve performance." One of the biggest complaints about Ruby and other dynamic languages is that they are slower than statically typed languages such as Java and C++. "We've got to make Rails [Ruby on Rails] run better [on the JVM] and we're focusing on integrating well with Java libraries and make it [JRuby] fit better with the whole platform."
David Koontz, president of Happy Camper Studios, a Phoenix-based product development company specializing in JRuby-based GUI (graphical user interface) applications and training applications, said one thing developers -- Ruby developers in particular -- must remember is that "there are two Javas: Java the language and Java the platform. We love Java the platform and we like using Ruby on it."
Sara Mei, a San Francisco-based independent developer who codes in Ruby a lot, said, "The big appeal of Ruby is it's a nice programming language to use, with a lot of nice meta-programming features."
Koontz said JRuby enabled his company to "take some of the complexity out of Swing."
Swing is the Java user interface API and widget toolkit. Happy Camper Studios' Monkeybars is a library that enables developers to use Swing from JRuby. It allows Java developers to continue using the GUI editing tools they are used to but makes it easier to write all their application logic in pure Ruby, he said.
But why move to Ruby over other language options like PHP, an observer asked.
"I think in terms of productivity I've done a lot of Web scripting languages and there is a learning curve involved," said Mei. "And I've worked with some pretty large programs. But with Ruby I can do the same application with about half the developers that I'd need for other languages."
Driver called PHP "the epitome of a niche language" and said it is "ridiculously easy to learn," but he noted that PHP is like a specialist language while Ruby is a generalist.
When asked what their favorite IDE (integrated development environment) for Ruby was, Nutter and his Sun colleague and fellow core committer to JRuby, Thomas Enebo, said they prefer Sun's NetBeans IDE. Koontz said he likes TextMate for Mac OS X. Rich Manalang, a Ruby developer and product strategy director at Oracle, said he prefers Vim; and Mei said she prefers jEdit. However, Driver said he thought NetBeans was a good IDE for Ruby as is CodeGear's 3rdRail.
Meanwhile, Mei said despite what Driver described as an anti-Microsoft backlash amongst many Ruby developers, "you see a lot more people developing Ruby on Windows than ever before." A lot of Ruby development has been done on the Mac and other platforms, she said.
Driver said he believes that for Ruby to truly get over the hump it needs more corporate sponsorship from large organizations.
Manalang agreed, but said "Ruby at Oracle is coming up organically. We're trying to figure out how to make developers more productive and give them more choice. We have a lot of people looking at it."
Added Nutter: "Ruby is the classic pattern of how technology gets adopted -- it's not one big company telling you what technology to use. The people using Ruby now are hackers -- it's kind of an organic system."
Yet, in sort of an ironic comment, Koontz said Ruby is more of an applications language, whereas "Java is now seen as a high-level systems language; Java is close to the metal." That claim would not have been made 10 years ago when Java was in its early stages. C++ was considered the systems language close to the metal and Java the application language.
Meanwhile, another disadvantage Ruby has in comparison to Java or other more mature languages is it has no official steward or standards body supporting it. Java has the JCP (Java Community Process) supporting it and guiding its development to the point where the JCP is now eliminating old and redundant pieces of the Java specification.
However, Nutter cited two projects that are positive for Ruby's growth. One is an initiative out of the Rubinius project to create a set of specification tests for Ruby to define what Ruby is today. Rubinius is a project to create a next-generation virtual machine for the Ruby programming language. And the other effort Nutter described is "all the various Ruby implementers are getting together regularly to talk on IRC about where Ruby is going."
For his part, Enebo addressed the issues of scalability with Ruby's killer app: Ruby on Rails. "Ruby on Rails started in 2004 and went through quite a change and it's continuing to change," Enebo said, noting that he does not believe scalability will be a problem for Rails.
Besides, "there are plenty of apps for Rails where you don't really need that massive scaling," Manalang said.
The panel agreed that some of the hardest things to do with Ruby include deployment and re-education developers to think the Ruby way. "Teaching people to think like -Rubyists' and not Java developers is hard," Koontz said.
Meanwhile, in a session about Python and Jython -- Sun's implementation of Python on the JVM, Ted Leung, a Sun engineer working on Jython, said that Sun has brought Jython to be compatible with Python 2.5 and has delivered a native C implementation. Leung also said he expects Sun to have a NetBeans plug-in for Python by the end of this year.
Frank Wierzbicki, Leung's partner on Jython, said he believes Python and Ruby "actually have a lot more in common than they do differences."
However, "Ruby is slightly more focused on making programs quicker to write, and Python is slightly more focused on making programs easy to read," Wierzbicki said.