Oh, Ruby! What You Do To Me (On Rails)
October 14, 2013 Dan Burger
Why would an RPG programmer have any interest in a language called Ruby and an architectural framework called Rails? I dunno. Why does anyone go where he or she has never been before? Because it sounds like fun, appeals to a sense of adventure, and holds some degree of promise (like Web programming, for instance)? If you haven’t stopped for a look at Ruby on Rails, there’s no better time than the present.
Why now? For one reason, because IBM just announced support for Ruby as part of the Technology Refresh 7 for IBM i. Ruby is on the lips of IBM i evangelists par excellence Alison Butterill, Tim Rowe, and Steve Will, who also happen to be top IBM i executives. So now that Ruby’s on the i roadmap, it’s a lot easier for you to find.
The second reason is because of what RPG expert Aaron Bartell describes as “syntatical sweetness.” It’s what made Bartell fall in love with Ruby and eventually led to a small company called PowerRuby, which is providing the support for Ruby and Rails on IBM i.
Syntatical sweetness, according to Bartell, is really nothing more than coding simplicity. As any programmer knows, coding can be fun and coding can be agonizing. And as any manager knows, a programmer having fun is more productive than one that is being tortured.
“It doesn’t have to be a scholarly effort to accomplish each task,” Bartell says, knowing full well how some languages have well-deserved reputations for inducing brain-freeze headaches.
Some of you who share my well-developed sense of skepticism are quick to point out that reading glowing reports of a language by people picking favorites is nothing special in the pile-on-the endorsements marketing game. So you pick and choose the comments that have a high degree of authenticity. In the IBM i community, Bartell is well known for his RPG acumen and his skills in Web and mobile application development. Like all of us, he picks his favorites. Unlike a lot of us, he investigates many options before settling on his favorite.
In addition to Ruby’s simplicity and fun factor, Bartell says he has been really impressed by the Ruby on Rails user community.
“There’s something special going on with Ruby and Rails,” he says. “Never before have I seen such coordinated community efforts to efficiently produce reusable code in such open and social fashions. We want to introduce that reality to the IBM i platform.”
The “we” he is talking about is the staff at PowerRuby, the company he co-founded with Anthony Avison. It also includes Andrea Ribuoli, the primary architect behind PowerRuby. Avison is the CEO of a software company in the United Kingdom called Dancerace and Ribuoli is from Italy and has worked with Ruby and Rails and IBM i for years.
Bartell, who some of you may know from his sessions at COMMON and the RPG & DB2 Summit, as well as other IBM i tech conferences and local user group presentations, was first drawn to Ruby on Rails almost 10 years ago. That’s how long he’s been interested in graphical user interfaces for RPG applications.
“Ruby wasn’t as well known then as it is today,” he said, “But I kept it on the back burner while I was looking for options. I got into it a bit deeper about two years ago while working on two tech startup projects using Ruby on Rails, but not on the IBM i. They were done on Linux partitions through Amazon EC2. Those experiences led to discussions with IBM i executives that led to the partnership with IBM. There are some like interests at PowerRuby and IBM.”
Although members of the IBM i community working with Ruby are few and far between, there are a couple of prominent programming gurus who are helping to stir interest. Don Denoncourt and Pete Helgren have both gotten more than just their feet wet while working with Ruby. Both have written articles about Ruby on IBM i and both are active with COMMON and have presented topics at the COMMON conferences. Denoncourt and Helgren take a slightly different approach than PowerRuby.
There are several distributions of Ruby, just as there are with Linux and other open source languages. Denoncourt and Helgren use JRuby, a Java-oriented distribution that runs in the Java Virtual Machine environment.
PowerRuby is based on the MRI version of Ruby, which is oriented to C code and runs natively within the PASE AIX runtime environment of IBM i. Bartell says it was chosen specifically for its C orientation. He also noted MRI is the most popular implementation of Ruby. But he is not closed minded to the alternatives and what they mean to segments of the IBM i community.
“We will follow the customers’ needs and eventually, I would guess, we will formally support other implementations, one of which might be JRuby,” he says.
The first priority for PowerRuby is to get people in the IBM i community to try it. Free downloads are available from the PowerRuby website. A request to become a beta partner comes with the download.
“We have produced the ports to IBM i, but we want to do more testing before people introduce this into IBM i production environments,” Bartell says. “With the download comes an agreement that PowerRuby won’t be run in a production environment and that beta testers will provide feedback to the PowerRuby team, so we can respond to issues.”
Four companies have signed up as beta test sites as of October 10.
Finding a spark between the IBM i community and open source technologies and products is important to the future of IBM i. It’s a way of mixing a predominantly young and energetic development community with an extremely focused, business-oriented development community that is closer to retirement than it is to the newest technologies that are driving IT. And that’s not to say the IBM i community isn’t energetic. There’s some big-time innovation going on and the most energetic part of the i community is the most likely portion to look into the Ruby on Rails proposition.
After the initial efforts to make i contact, the second priority for PowerRuby is reaching out to the non-IBM i space. Bartell says his experiences and acquaintances outside of the IBM midrange has shown there are a number of Rails applications that have become prevalent in start-up companies and those applications reach a growth level where the technology stack under the language is no longer sufficient. Linux server farms for databases and applications are common scenarios.
“These companies could use a different platform under their language and Web frameworks. IBM i on Power hardware and DB2 that can scale with relative ease compared to other options. That’s the message we hope to take to the non-IBM i companies. ‘Go big with IBM i.'”
Included with the initial release is a native Ruby-based database driver that directly communicates with DB2 on IBM i without additional proxies such as MySQL. PowerRuby also offers a specially written interface that makes use of XMLSERVICE, the gateway for any and all non-native languages to easily access IBM i resources, including RPG programs.