Monday, July 02, 2007

Tom's Tools : Ruby on Rails

In 1995, Yukihiro Mastsumoto released the first version of a new computing language called "Ruby" to the outside world. Ruby was grounbreaking not in terms of technology per se, but in terms of audience. Previous to Ruby, programming languages had distinct directions and purposes aimed at computers. C was designed to write operating systems for computers, and was small and light. Fortran was excellent at pushing the details of equations into a procedural language. Java can execute anywhere. Ruby was optimized not for computers, but for people. In Yukihiro's words :

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run faster. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
Ruby is an optimized language that allows programmers to write code, really really fast. Ruby on Rails is a framework for writing database backed web sites, really really fast. Using Ruby on Rails, you can literally make a database backed blogging web site in fifteen minutes, including complete access to your data model : create, read, update and delete (CRUD) with complete validation. Don't believe me? See for yourself. Using Ruby on Rails, you can create a web site that will allow you to browse Flickr sets in five minutes, using Ajax. Don't believe me? See for yourself. Is Ruby hard to learn? No, it's actually a joy. It's so easy, why don't you spin it up in your browser and take ten minutes to learn some.

I wanted to call your attention to Ruby and Ruby on Rails because it's fast become the standard implementation language for the Web 2.0 community. Companies such as Twitter and Basecamp, use Ruby to implement their sites, and we at the Thomas Howe Company use Ruby to create nearly all of our applications, and are using it for our new service. When I learned about Apple's iPhone development strategy, it was clear that they were telling us to use Ruby for the development.

There's downsides, as it runs pretty darn slow. In the great computer language shootout, Ruby comes in nearly in last place. How slow is slow? Ruby runs three times slower than Python, and about 60 times slower than C. However, there's some things to mention. First, it is getting faster all the time. I know I'll get slammed for being impertinent enough for saying so, but Web sites really don't have the same performance requirements of DSPs. And there's always EC2. Besides, as you grow past a hundred thousand subscribers, and you need five servers for your application, that's called a good problem to have.

No comments: