Interview: Aaron Quint on Sinatra (Reprint)
7/Jan 2015
Note: This article first appeared on 20th March 2009 but the original is not accessible; hence the reprint.
On the eve of the first ever online “Introduction to Sinatra” course, Satish Talim of RubyLearning caught up with Aaron Quint and talked to him on Sinatra, in this interview.
Satish Talim>> Welcome, Aaron and thanks for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about your self?
Aaron Quint>> Thanks for having me! I’m a freelance Ruby developer working in Brooklyn, NY. I’ve been doing Ruby and Rails for a little over 3 years now, and full time for the last 2 and a half. Recently I’ve been getting a lot more involved with the open source community. I really love coding in Ruby and at this point I don’t think any other language has such a great community with such smart and interesting people. I blog (as much as I can) at http://quirkey.com/blog/. My other passions are food and design and I work with a friend writing about this at http://thescoutmag.com.
Sinatra’s greatest strength is its flexibility
Satish>> You have worked a lot on Rails and Sinatra. How come you got involved with Sinatra? Tell us more about this.
Aaron>> I heard about Sinatra when Blake Mizerany first released it. I thought it was a cool idea, but didn’t really see the point. Then, in 2008 a number of people started working feverishly on making it a more elegant framework and I started to get involved. I had a sort of ‘lightbulb’ moment and realized ‘Ah! This can be really useful!’.
Satish>> So many Ruby-based web frameworks – is this good for Ruby? Where does Sinatra fit in?
Aaron>> I’d start off by saying, that Sinatra is really less then a framework. A framework implies a lot of constraints or conventions, however, Sinatra really doesn’t limit you at all. An application in Sinatra can be a single file, multiple files, or multiple files across directories (more like Rails). There’s a reason that so much of the Ruby community is focused on building web applications – most applications and what any of us do on computers is moving towards the web. Ruby is such an elegant language it lends itself to different people having a lot of different ideas on the best way to write web apps. I don’t think of all these frameworks as being in competition, as we saw with the Rails/Merb merge, everyone is really learning and building on each other’s ideas and discoveries. Sinatra’s role is the tool for building web applications when you don’t need any of the features or overhead of one of the more robust frameworks.
Satish>> In your recent article for the “Rubyist” magazine, you mention that “think of Sinatra as a library creating simple HTTP based user interfaces.” Can you throw more light on this aspect?
Aaron>> Sinatra’s greatest strength is that its so flexible and requires so little to get an app running. This makes it super easy to use it in existing projects. My proposal is that the community should embrace it by including it in their gems or libraries and making simple web interfaces for their code. Everyone loves the command line for its simplicity and directness, but by using Sinatra to build a simple web app to interact with your code, you can make your library much easier (and more fun) to use.
Satish>> For a person new to web development, how can one go about learning Sinatra?
Aaron>> I think Sinatra is a great way to get in to Ruby web development. Its really simple so once you’ve learned the basics, anything you learn beyond it is learning Ruby and is not Sinatra specific. Right now there aren’t any dedicated blogs or community sites but the Sinatra homepage: http://www.sinatrarb.com has good documentation. If you’re interested or have questions, Sinatra also has an active mailing list and irc chat room. People are usually happy to answer questions. I would also suggest just searching github for Sinatra and checking out the source of other Sinatra projects – there are a lot of good open source examples.
Satish>> Any plans on writing a book on Sinatra?
Aaron>> I wouldn’t be against it If someone offered me the opportunity – though it would be a pretty short book.
Satish>> Do you have any suggestions for RubyLearning’s “Introduction to Sinatra” course participants?
Aaron>> Don’t hesitate to ask questions on the mailing list or in irc. Also if you already have some understanding of Ruby, you should absolutely take a look at Sinatra’s source. Most of it is contained in a single file and its one of the best open source examples of advanced Ruby.
Satish>> Thanks Aaron for sharing your views with the Introduction to Sinatra1 ” and ” Introduction to Merb2 ” course participants.
Disclaimer:
The opinions expressed are those of Aaron Quint and do not necessarily reflect those of RubyLearning.org.
Post supported by 1st Easy Limited: 1st Easy Limited are keen to play an active role in encouraging the adoption of new development technologies, and are delighted to have been given the opportunity to support the work of Satish Talim and his team at RubyLearning. If you’re a developer, or an alumni of RubyLearning and would like to test your own Sinatra apps or freshly acquired skills, you’re welcome to take advantage of the free hosting trials that 1st Easy offer: simply visit the registration page and leave your details. The full-featured accounts are yours to do with as you please for one month, after which you can transfer your hard work to a paid account, or walk away with no questions asked!
<div class='footnotes'>
<div class='footnotedivider'>
</div>
<ol>
<li id='fn-8333-1'>
</strong><strong>Introduction to Sinatra</strong>: Here are the <a href="http://rubylearning.com/blog/2009/02/25/introduction-to-sinatra-a-new-course/">course details</a>. <span class='footnotereverse'><a href='#fnref-8333-1'>↩</a></span>
</li>
<li id='fn-8333-2'>
</strong><strong>Introduction to Merb</strong>: Here are the <a href="http://rubylearning.com/blog/2009/03/02/introduction-to-merb-3rd-batch/">course details</a>. <span class='footnotereverse'><a href='#fnref-8333-2'>↩</a></span>
</li>
</ol>
</div>