Friendly Frameworks

By on

The hidden agenda behind GoGoEgo as a Web Development framework: creating a friendly framework that provides one solid development model, but warmly embraces others.

Because of the variety of my work, I get to use a number of different Web development environments.  In the past two weeks, I've done non-trivial work on projects using:

JSP
ASP.NET
Django
GWT
PHP (WordPress)
Restlet
Rails
Sinatra

I'm fortunate to get front-line experience with the good and bad of all these ways of producing something on the Web.  Of course I have certain favorites that work really well for the way I think, and the dynamics of my team at Solertium -- everybody knows I love Restlet and GWT, and the latest bleeding edge trunk versions of each.

I have other favorites.  I think you can't beat the terse elegance of Ruby with a DSL like Sinatra and an awesome ORM like ActiveRecord.  I'm still wowed by Rails' ability to scaffold a complex application with a couple shell commands.  Even my non-favorites have their bright points:  ASP's performance really is the number to beat, and while I personally lack the Microsoft-fu to get good results with it, I'm blown away by the sheer transaction-per-second output of a platform virtuoso like Scottie Nguyen of NACA.  I can't make a maintainable application in PHP, but obviously some other people can: WordPress and its plugin community are proof.

But ... can't we all just get along?  It's very frustrating how heavily each framework optimizes for its own development community, and typically gives lip-service to interoperability.  Microsoft, of all unlikely entities, is often in the lead with its COM-based cross-language, interconnected-framework approach, and heavy leverage of SOAP and similar APIs ... assuming you're running a Microsoft OS and web server, interoperability within those constraints is a breeze.

So this is me coming clean about my hidden agenda behind GoGoEgo as a Web development framework: creating a friendly framework that provides one solid development model, but warmly embraces others.  Working in order of favoritism (because that's my prerogative as a CTO), we began by laying out a development strategy based on Restlet, GWT, and OSGi in the Java world.  Now that the model is mature, we're heavily embracing JRuby -- Rails, Sinatra and friends -- essentially making GoGoEgo into a super-performant and manageable container for Ruby deployment, that happens to support injection of static artifacts via a rich browser based Studio.  We have three very large projects going on now that combine GoGoEgo Java and Ruby bits in this way -- announcements to follow later this year.

Other JVM-hosted languages and frameworks are easy to bridge in later.  I'm looking for a Groovy/Grails expert to get on board.  Scala will probably get its own terse version of the Restlet-powered GoGoEgo API, sometime after Restlet 2.0 GA.  Python scripting is already the best way to do server side script in GoGoEgo -- now with Jython 2.5 -- and no reason we couldn't do Rails-like tricks with Django.  The guys at Caucho already have a really solid PHP emulation on the JVM, and they're brilliant, so why not support PHP as well?  I doubt a Microsoft-optimized GoGoEgo will ever come out of Solertium directly, but that's the miracle of open source ... as the platform keeps expanding exponentially, someday an enterprising soul will make a port.

Of course, to live up to my friendly framework objective, at some point we'll have to expose some kind of session model for non-RESTful applications.  But, again in order of favoritism, this can be at the bottom of the queue.  Nobody said we had to be that friendly!

 
 
Previous Entry
Google I/O 2010
Next Entry
Live Updates from Google I/O
 
blog comments powered by Disqus

About the Author

 

Follow Rob on Twitter

Looking for my ancient Monster Manual so I can staple in a new page to represent @marshray. +2 vs. SSL vulns, +1 vs. totalitarians
5/23/13, 4:53 AM
I know, Microsoft is now MITMing all my Skype calls. But, call quality has gotten a lot better. So ... I got that going for me.
5/23/13, 12:50 AM
Anybody develop [Node, Rails, iOS] on an 11" Air? Thinking about replacing my 13" MBP with the i7. Big monitor at my desk anyway.
5/22/13, 11:58 AM