Friday, June 30, 2006

The ideal web framework

Over the five or so days since RailsConf, I've spent a lot of time reflecting on what the ideal web framework would be. Throughout the years, I've used a lot of frameworks: PHP (homegrown solutions and off-the-shelf CMS solutions), ASP.NET, Perl, and now I'm working on my first ever Ruby on Rails app. That's not to mention some of the others I've just looked at, such as Django or Web.py.

I think I'm finally understanding what would make for the ideal web application framework (at least for general/80% case). Most of this came from a lot of what I learned at RailsConf and how I think it should be extracted even further.

First I should define what "ideal" means to me. Ideal means extremely productive, extremely easy to understand, and extremely maintainable. These three qualities would lead to other, more tangible qualities, such as: easily testable, easily deployable, DRY, and easily extendible.

The key thing to realize here is to follow a lot of Rails principles and take them to the next level. For example, what is the architecture of 80%+ of web applications? Simple: CRUD. You virtually never need more actions than what is available from create, read, update, and delete. Rails knows this, and attempts to embody it. Soon (Rails v.1.2+), we'll see vast improvements in this, as well.

However, they're not taking it far enough. They have a great concept going with scaffolding. But, it can be taken further.

The ideal web framework would be as simple as defining your database schema (i.e. provide a Rails migration file) and running a single command, like "./script/create_web_application" which would run your migration file, then create the appropriate models, views, controllers, and test stubs.

After this single command, the application would work completely. Because you could allow your migration file to know relations between models, this would already be done within your application. For the same reason scaffolding can do most everything within CRUD, the ideal web framework would include this.

However, if you instead moved the scaffolding HTML code into the views themselves, you would literally be programming just HTML for your entire CRUD application. You could just write templates for the scaffolding and be done with your application.

If you wanted fancier controller methods, the ./script/create_web_application would have already created the stubs for you, so you'll just fill in what you're missing.

And, of course, RESTful web services would be built in. Heck, split the Rails views directory to views/html and views/mobile so that you can create views for both web browsers and mobile browsers.

That would be the ideal web framework, in my opinion. And what does it boil down to? Essentially a very CRUD-y Rails with some helper applications. I just love the idea of an entire web application built with essentially one command and some HTML.

Thursday, June 29, 2006

My favorite Google/search engine feature as a content publisher

Follows is a recent AIM conversation regarding my favorite feature as a content publisher:

Me: nice, nofollow :)
Me: i think nofollow might be my favorite google/search engine feature as a content publisher
Maurice: thats my first use :P
Me: ive only used it a couple times too
Me: but i just feel powerful when i do for some reason :-P
Maurice: lol
Maurice: i know!
Maurice: totally do
Me: its like, "HAHAHAHA - you are [so worthless], I won't even warrant you with an edge on the amazing directed graph that is the web... BITCH!"


Who said power trips aren't fun? ;)

Tags: , , ,

Monday, June 19, 2006

RailsConf coming...

Wednesday morning I'm making the four-hour drive back to Chicago (I'm at my family's home outside Detroit right now) so I can be in town for RailsConf.

Apart from the amazing first Techdirt Greenhouse (which Maurice and I had the wonderful opportunity to present at), I haven't really ever experienced any large-scale tech conferences. So, I'm very excited to check out what all the fuss is about (good and bad). I'm also really excited that it's about Ruby on Rails, the red-hot web framework which I know all about (thank you, Maurice) but don't personally do much actual programming in. It'll be interesting to be a "semi-outsider" at this conference.

I'm also really excited that the conference is happening in Chicago -- my home for the last four years (while studying at The University of Chicago). If it were being held anywhere else, I'd almost certainly not be going. Chicago is an amazing city and one where I'd love to see more tech-focused startups base themselves. There may not be an extreme amount of talent currently based in Chicago, but there's certainly enough great colleges in and around the area that finding some talent shouldn't be too hard (read: UChicago, Northwestern, UIUC, Michigan, even as far as Case Western or Carnegie Mellon which are further, but still much closer to Chicago than to Silicon Valley).

I'd love to meet up with anyone who is attending this conference. I'll be there Thursday for the hacking session (probably just working on Openomy code) so if anyone wants to meet up, either email me or call my cell phone: 248.819.7586.

Tags: , , , ,