Comparing Seaside and Ruby on Rails
Over the last few years, there’s been a lot of development effort going into web frameworks – increasingly in non-Java languages. In the early 2000’s, it looked like web development was going to be mostly Java/Java beans based, with a few “fringe” technologies competing at the margins. It didn’t really work out that way though; Java was just too hard to work with for most people. Over time, the web has become dominated by code written in Perl, Python, and Ruby (using Ruby on Rails).
Smalltalk has seen some of that resurgence as well with Seaside. Unlike previous web efforts in Smalltalk, Seaside is open, and works in every single major Smalltalk dialect – and it’s actively supported by the major commercial players.
Ruby on Rails has been touted as a simpler route to web development – if you watch this long screencast exploring various web tools, it’s clear that using Ruby on Rails is much more productive than the other alternatives explored by the screencaster. One thing that screencast didn’t look at was Seaside, which is too bad – because Seaside is optimized for writing Web Applications, and removes a lot of the “housekeeping” you have to do, even in Ruby on Rails. To see that for yourself, take a look at the Seaside version (using Cincom’s WebVelocity) used in that screencast.
Let’s break down some of the advantages Seaside has over Ruby on Rails into a set of bullet points. This isn’t to say that Ruby on Rails is terrible; the large user base argues otherwise. Rather, it’s to point out a few things about Smalltalk and Seaside that users of Ruby on Rails (and other web frameworks) simply may not be aware of:
- Interactive Development.
One of the things Ruby on Rails is known for is interactive development. Make a change, refresh the browser, try again. Smalltalk has always brought that level of interactivity to development, and Seaside takes it one better – instead of a full reload, you can do exploratory development with partial iterations. Build what you understand, let the application break, and use the Smalltalk debugger. You may not fully “get” that statement without seeing it; here’s a screencast illustrating it.
- Beyond Active Record.
You can use Active Record for database connectivity in both Ruby on Rails and Seaside, but that only takes you so far. Sometimes (especially with existing data models) you have to go “off the rails”. With Ruby on Rails, you’re on your own there. With Seaside, you have the full power of Glorp—an open source object/relational mapper that is available across all the major Smalltalk dialects.
While Ruby is highly productive (for the same reasons that Smalltalk is), it’s not fast. Smalltalk, on the other hand, has been under active development for over three decades. The virtual machine technology behind Smalltalk is fast, and second to none in the field.
- Connected to the Enterprise.
Need to deal with enterprise libraries using industry standards like WS*? Smalltalk gets you access to the enterprise—and full support from commercial vendors. When you really need a fix now, that means you can get a real person on the phone.
- Mature Development Tools and Libraries.
Smalltalk has been around for over three decades—the class libraries supporting it are tested and stable, and the development tools are world class. Things like unit testing and refactoring were invented in Smalltalk – why not try the environment that spawned the entire TDD process?
Still not convinced? That’s fine – see for yourself.
Download Smalltalk now from the Cincom Smalltalk website and give Seaside a test drive. Check out the “Smalltalk Daily” video tutorials to get started—we have a basic Seaside tutorial and a WebVelocity specific section for you.