« Matz Speaking at BYU | Main | Federated Identity Hubs »

Rails, Streamlined, and DabbleDB

I’ve been playing a little with Rails over the last week. This is the first time I really tried to build something I cared about in Rails as opposed to just running someone else’s scripted tutorial. I’m having fun and I continue to be impressed with its power.

I’ve reversed roles in this endeavor—one of my grad students, Devlin Daley, has become the teacher and is kindly answering my questions so I don’t end up stuck in too many places. Today he showed me a couple of screencasts of data-drive application builders that left me slack-jawed.

The first was Streamlined, a CRUD application framework that works on top of Rails to build data-driven applications with relationships (with Rails, you build all the relationship data later, after you generate the Rails scaffolding). Here’s the screencast.

The second was dabbledb, an online data exploration application that anyone who’s managed data in a spreadsheet would love. Importing data from a spreadsheet, you can incrementally build a relational model of the data. This is what everyone wishes Access was. Here’s the screencast. One interesting note: I understand that dabbledb is written using Seaside, a SmallTalk-based application server with continuations. Cool…

Not too long ago applications ran on one machine and used custom data formats—if they used data at all. Now most interesting applications are connected to databases and usually online.

Posted by windley on October 16, 2006 4:18 PM

See related posts:

3 Comments

Comment from Chris Loosley at October 16, 2006 11:13 PM

You write: "Not too long ago applications ran on one machine and used custom data formats—if they used data at all."

You and I must have spent our lives in parallel universes. I have worked in computing since 1970, and I know that databases have been around since before that. As a systems engineer at IBM, my very first customer used IMS, a hierarchical database system. And at that time what we now call IT was known as DP, which (do I need to explain?!) stands for Data Processing.

I can think of no interesting business applications that use no data. So what were your applications doing "not so long ago" -- searching for new prime numbers, or solving endgame problems in chess? Or were you just building toy applications to help students learn programming?

I was actually thinking of little *toy* programs like word processors, spreadsheets, browsers, etc. Almost any application that ran on a personal computer or mini computer would fall into this category.

10 year ago if you went out to hire programming talent you didn't find all that many people who'd written distributed code that tied to databases. Sure databases have been around and people used them, but remember it was only in the 80s that client-server computing was the hot new topic.

It's true that IT shops have been using these tools for quite some time. When people started building online, distributed apps in the 90's much of the expertise they were able to tap came from IT departments. Even so, I'd argue that our understanding of how to build these kinds of applications has changed dramatically over the last 10 years. The tools I reference above are just the latest in a long line of improved tools, many of which came about because the Internet created a demand for lots of data-driven, distributed applications that didn't exist before.

I was the CIO for Utah, so I've seen code from the late 70's and early 80's that used a (cough, cough) database. I'm glad I wasn't the person who had to write it or, worse, maintain it. The problem is that the skills weren't transferable because there were not standards. If someone knew how to write their app for one database it wasn't likely they could take that knowledge and move it over to something else.

It's nice to sit back with your pony-tail :-) and be smug and think "we've been doing this for decades--there's nothing new under the Sun" but I happen to think that there has been a sea change over the last 5-10 years where we've gone from a world where most programmers didn't program to databases to one where most programmers do, or at least will.

Comment from Chris Loosley at October 17, 2006 1:12 PM

If we are discussing application programmers, then "most programmers" are not software engineers developing desktop software like word processors or spreadsheets.

As to the widespread use of databases being a recent development, a glance at the history of major database products (DB2, Oracle, SQL Server), and of the industry recognition accorded to Charlie Bachman (Turing Award 1973), Ted Codd (Turing Award 1981), and Jim Gray (Turing Award 1998) will provide plenty of evidence to the contrary.

As to standards being a recent development, SQL was created in the 70's and first adopted as a standard twenty years ago (SQL-86). It is true that there are implementation differences between the major database products, so that companies deploying them need specific product expertise. But application programmers using those products can generally migrate between them without much difficulty, because of the relative standardization of the SQL constructs. It is also true that in the late 70's and early 80's many so-called "4GL" products appealed to departmental application programmers, and despite their claims, did not deliver real database capabilities. That was part of the reason why relational database technology was so successful.

I don't believe that there is nothing new under the sun (nor do I sport a pony tail, though I am pleased to say that I could still easily grow one :). And I am always interested in learning about new technology, which is why I read your blog. But not everything is new, and our industry does have a long history of recycling old concepts wrapped in new language.

So I think what you are really saying is that there are many relatively inexperienced programmers today who are not familiar with the hisory of computer science, and who -- thanks to some new developments inspired by the Web -- are now being introduced to databases, a technology that has been a central foundation of enterprise computing for 20 to 30 years.

Leave a comment

I encourage you to leave a comment below. Your email address will not be displayed on Technometria, but allows me to communicate with you directly. Your email address won't be displayed, but will be used to compute a MicroID for your comment.