Rails TakeFive: Five Questions with Fabio Akita

8/1/08 11:14 AM

FiveRuns Blog
On Rails production performance and monitoring
PO S T S 3 comments Rails TakeFive Tips



Rails TakeFive: Five Questions with Fabio Akita
Published on April 04, 2008 by dean Welcome to the latest in the FiveRuns Rails TakeFive interview series. This week we’re happy to be joined by Fabio Akita, a noted Ruby on Rails developer, speaker, author, and Brazilian Rails team lead for Surgeworks LLC. FiveRuns: Welcome, Fabio. To get started, what is the coolest and/or most innovative Rails project that you have seen in recent memory? Fabio Akita: Github, by far. There are so many great projects done in Rails that it’s difficult to pick just one, but I think Github has the potential to bring the best of the Ruby platform: its community. Unfortunately, the Github code is privately held, but it is mostly written in Rails, with some Merb and other technologies. It leverages on the powerful Git set of tools to bring the first ‘social networking for coders’. I would love to see the Rails Core moving to Github or any other Git based platform because it makes our lives so much easier. That way we can easily fork, create our own branches of change, and still stay up to date with the master repository. Github makes this process even cleaner and easier. Git stands for SCM the way Rails stands for agile web development.
See more FiveRuns tagged photos… FiveRuns tagged photos on Flickr.

Previous Entries
Rails TakeFive: Five Questions with Fabio Akita

Other Categories
Entries are also organized under the following general topic categories. Rails

Updated answer: on April, 1st, FiveRuns kindly invited me to participate in an interview, which I promptly answered in the same day. I responded exactly as you can read in the above paragraph. But given the big news on the day after (!) I want to reiterate that I am very happy to see what I have desired actually happened so soon! Congratulations for the Rails Core Team for their swift move and I do think this will ensure the future development pace of Rails. So, yet again, I think many will concur that Github is hot.
FiveRuns: Let’s talk about Merb – their official language is all about being agnostic—ORM-agnostic, JavaScript library agnostic, and template language agnostic – what does this mean? And what does it mean to be “thread-safe”? Is there promise in implementing Merb alongside of Rails, say, for processing? Fabio Akita: Yes and no. Ezra is a clever guy, no one should ignore what he says. For one, he has the experience of running a real hosting center, Engine Yard. This knowledge alone should speak for itself, specifically given Engine Yard’s remarkable reputation. Another thing that some people probably misunderstand: Ezra is not a Highlander. I do not think he believes that Merb should replace Rails. “There should be only one …”, not. That said, I haven’t tried Merb just yet. I see a lot of value in actions that do not require the full Rails stack. The original use for Merb was as an uploader handler, something that Rails did poorly (and was fixed by Zed’s clever approach to Mongrel handling File uploads). There are several places that Rails is lagging behind Merb. For example, its support for Rack. But given the current state of the MRI, I don’t think thread-safety is that important right now. I mean, both MRI 1.8 and YARV 1.9 have contention problems. For instance, YARV uses native threads but it has that big GIL that prevents it from running threads in parallel for real. This makes thread-safe less important in the Ruby world. So, thread-safe frameworks, by themselves, don’t leverage too much performance just because of that. Right now Merb is faster than Rails. But that’s because it loads much less libraries than Rails. You can customize it in a way that only the exact pieces that you need will be in memory at

Events TakeFive Community Partners Open Source Tips People Announcements Miscellaneous


Page 1 of 4

Rails TakeFive: Five Questions with Fabio Akita
Rails. You can customize it in a way that only the exact pieces that you need will be in memory at runtime. Rails projects assume loading everything. But its higher coupling and overhead comes with additional benefits: a Rails developer can easily switch between Rails projects and know where to look. Flexible frameworks allow us higher customizations at the cost of maintainability. I am not saying that Merb is not maintainable. So far, I think it is doing a good job keeping itself balanced between enough power and enough ease of use. Rails has superior ease of use at the cost of more overhead and less customizations. It’s a choice that we can make. I would just remember that Java frameworks always prioritized customization over ease of use, and that’s why Rails became so famous so fast. Too much customization would mean going back to the problem. Finally, yes, I do believe in using Merb and Rails alongside one another. Github, along with many other Web sites, do the same. If both use ActiveRecord for ORM, they can even share the same models at some level. And there are other promising frameworks as Sinatra, Ramaze, Nitro and others that are also very good, each with their own strengths and weaknesses. Competition is a good thing to have. FiveRuns: What is the best Ruby and/or Rails book that you have read recently? Fabio Akita: My all time favorite is The Ruby Way. Hal Fulton did a tremendous job with this book and it was the one that taught me the many Rubyisms and, as the title says, the Ruby way of doing programming. I recommend it before any other. FiveRuns: Amazon + Rails seems to be a prevalent choice right now, especially looking way back to the first instance we can recall, unspun.amazon.com in 2006, and seeing how far we have come. Can you talk a little bit about the benefits and challenges here? For example, best practices around programmatic access and the Ruby/Amazon language library? What about S3 on Rails and bucket issues? Fabio Akita: The startup doing more aggressive solutions on Amazon technology is probably Heroku right now. Cloud computing seems to be the new buzz. So, everything in the cloud, as a service, seems to be the new way of doing business. Dynamic scaling, infinite resources and storage, shorter offline times. Amazon is definitely leading the way with EC3, S3 and now SimpleDB. Though, deploying Web apps over EC2 is a challenge because of its dynamic nature: a slice is not guaranteed to stay there permanently, it goes down. People have to scratch their heads hard in order to come up with a good architecture for this new model. There is a lot of room for improvement here, there are not enough teams developing easy to use solutions and I think this is a growing market with a lot of potential. Solutions like Heroku’s are promising. I wouldn’t recommend a novice Rails programmer to look at Amazon’s solutions just yet. The tools are still not there for them. We need higher abstractions around these services for them to become really mainstream. FiveRuns: Dr. Wayne Kelly of Ruby.Net recently conceded that IronRuby was more likely to succeed than Ruby.Net, and he’s now pulled back on the project. Will IronRuby succeed as a production quality implementation of Ruby on the .NET platform? Is DLR here to stay? Fabio Akita: Yes, I think so. John Lam is another amazing engineer and he was able to do great stuff over at Microsoft. It is even more difficult for him, given the tighter leash of Microsoft policies in comparison to what Charles has over at Sun. But he made the right decision of using the DLR up front. The DLR was originally made to be a general layer for any dynamic language to run over the CLR, but its original design assumed that every dynamic language would resemble Python. John helped the DLR improve and evolve a lot, and it is much better because of that. IronRuby is still way behind JRuby but it has the potential of filling another big gap: Ruby has little support over at Windows land. I don’t think IronRuby will be primarily used as an MRI replacement in Windows, but it has the potential of leveraging Ruby technology into the .NET stack which is good for future programmers that one day decide to switch over to Linux/Mac development and find a familiar platform to program with. Of course, you gain .NET interoperability for free which is equally important. But I don’t see as many C# programmers migrating to Ruby as there are Java developers doing so. That’s because of the nature of the business C# technology is on. Innovation and elegance are not their top priorities. That said, yes, thanks to IronRuby the improved DLR is here to stay.

8/1/08 11:14 AM

Fabio Akita is a former senior Java/SAP consultant and PMI project manager who published the first Rails book in Portuguese for the Brazilian audience, Repensando a Web com Rails, back in 2006. He’s been helping improve the growth of the Brazilian Ruby and Rails community through local events, keynotes, learning material, and his blog. He is working full time with Rails as an offshore outsourced programmer
http://blog.fiveruns.com/2008/4/4/rails-application-monitoring-takefive-five-questions-with-fabio-akita Page 2 of 4

Rails TakeFive: Five Questions with Fabio Akita

8/1/08 11:14 AM

learning material, and his blog. He is working full time with Rails as an offshore outsourced programmer for Surgeworks LLC, a Utah based consulting firm, since mid-2007.

Continued Discussion
3 responses to this entry Fabio has posted his thoughts on many more of our questions that didn’t make this list on his blog. Enjoy!

Dean Cruse said: on April 04, 2008 at 12:29 PM

As a Brazilian myself I would like to compliment FiveRuns for keeping an open eye on our community.

Lucas Húngaro said: on April 04, 2008 at 12:38 PM

Awesome questions. I really enjoy it.

Attin said: on April 12, 2008 at 04:21 AM


Continue the conversation and share your thoughts. A name is required. Your e-mail address will not be displayed on the site. Textile formatting may be used in your comments (but will not be rendered in the live comment preview). ! Posted by You on August 01, 2008 at 11:17 AM Your name:

Your e-mail address:


Your Comments:


Page 3 of 4

Sign up to vote on this title
UsefulNot useful