Beauty Is in the Eye of the Beholder
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Moxie Zhang on Dec 01, 2008
Ruby on Rails (ROR) is a Ruby-based open-source framework for rapid Web application development. Both Rails and RIA communities are actively seeking convergence to offer integrated solutions. The Flex framework, Ruboss, is an example. InfoQ spoke with Peter Armstrong, the co-founder and CEO of Ruboss, to learn more.
According to Armstrong, the Ruboss framework represents an attempt to simplify the integration between Flex applications and RESTful server-side frameworks. These frameworks currently include RoR and Merb. Ruboss has also built a RESTful interface to allow Ruboss to talk to Adobe AIR's embedded SQLite database. The Ruboss framework serves Rails and Merb applications in a manner that is similar to Adobe LiveCycle Data Services ES for J2EE applications.
When asked why not just live with the existing established frameworks, such as Cairngorm or PureMVC, Armstrong explains:
Quite simply, there wasn't anything that fulfilled our needs. The Ruboss framework is not an architectural framework in the same sense as Cairngorm, Mate or PureMVC. Instead, it is a data integration framework, focusing on integrating Flex with RESTful frameworks. While it is tempting to think about Ruboss as "Flex + Rails," a more accurate way to think about Ruboss is as "Flex + Simple RESTful CRUD"—of which Rails is just the most popular and currently best-integrated example.
We wanted something that seamlessly integrated Flex with RoR and brought the design principles and productivity of Rails development to Flex. We think that Rails is one of the most productive server-side frameworks and Flex is one of the best client-side RIA technologies. Naturally, we wanted the best of both worlds.
So, we're not really competing with Cairngorm, PureMVC or Mate. For example, you can write Flex code that uses Ruboss in a style very similar to Cairngorm, but which features a less verbose way of using the command pattern. However, you can also write Flex code that uses Ruboss in a much more terse way than the Cairngorm style.
Armstrong goes on to describe the features that make Ruboss special:
First, we are the only Flex framework focused on using RESTful CRUD as the common interface when talking to services as different as Rails, Merb and SQLite in AIR. This simple, elegant design lets the Ruboss framework be extended to support services that we don't have the need or the time to support at the moment. For example, one user of Ruboss is considering using it to talk to CouchDB. So, Ruboss expands the range of services that integrate extremely well with Flex.
Second, the code you write with Ruboss is not only abstracted from the transport mechanism, but also is simple and elegant.
Third, you can get up and running extremely quickly. You can create a complete Flex + Rails application in five minutes using Ruboss. No other Flex framework does this, and no other Flex framework gets you from a data model to a running application as fast as Ruboss. To see how, follow the Ruboss "pomodo" tutorial.
Finally, we realize that no framework is going to solve all your data integration needs or be the correct architecture for all applications. So, what we try to do is just make the common 80 percent a lot easier.
Armstrong shares the roadmap for the Ruboss framework explaining:
For the framework, we plan to add support for data synchronization between local and remote service providers, since this is currently something that the application developer must do themselves. We also plan to get the Merb + DataMapper support up to the level of Merb + Active Record. After this, we will consider extending Ruboss to support more services, such as SimpleDB and Google AppEngine.
Peter Armstrong is also the author of Flexible Rails and the main author of Hello! Flex 4.
NOSQL, The Web And The Enterprise
18 agile and lean practices for effective software development governance
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Mr. Armstrong mentions "you can get up and running extremely quickly. You can create a complete Flex + Rails application in five minutes using Ruboss. No other Flex framework does this, and no other Flex framework gets you from a data model to a running application as fast as Ruboss".
I wanted to mention that the LCDS people did a 10 minute setup of a data driven Flex application at MAX recently ( anilchannappa.org/2008/11/18/lc-ds-max-demo-upd... ), and it looks like the future LCDS product will allow a model driven application to be created with very, very little code.
I'm glad to see continued adoption of Flex and additional frameworks, but I just wanted to point out that LCDS is making things quick to get rolling as well.
Thanks for supporting Merb and planning on an even better integration. I'll certainly keep an eye on this project.
@craig LCDS sounds interesting, but it's not free, not open source and I didn't find an example to use it with Ruby. No offense, but as a Rubyist, Ruboss sounds very promising because of the reasons mentioned above.
- Matt
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
2 comments
Watch Thread Reply