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.