Today I was able to try out blist, an online database manager. This is a very different affair from Amazon’s SimpleDB. The focus is on usability, and it is aimed at end-users rather than application developers. It’s worth viewing the demo video to get an idea of what it does.
The UI is polished though a little cluttered. I found it easy to create my first list, by dragging column types from a palette to a grid. I made a list of programming languages with a rating for performance (please ignore the actual ratings).
The results looked stylish and I played around with a few other features. I found I could easily sort by a column, or create a filter/query called a lens. I created a lens called “Fast languages” limited to those with 5-star performance which worked fine.
I noticed that one of the column types is blist – that is, a blist within a blist. That looked interesting, so I created a sub-list called Implementations, with three columns: Name, Website and Open Source. The website column shows a lovely preview of the actual site when you hover over it.
Next, I tried to stress it a tiny bit. I created a lens to show me just the Microsoft languages. In other words, I wanted to filter on a value in the blist within a blist. The first time I tried, it didn’t work at all. I still saw all the languages. I tried again, and this time the filter worked, but didn’t display the fields in the sub-blist even though I had specifically selected them. The application also got dramatically slower, even though my dataset is tiny. I’m not sure how I would do more advanced queries, like “Show me the languages and all the implementations where at least one of the implementations is from Microsoft” – actually, I thought I might get this anyway; I wasn’t sure what to expect.
This is an early beta, so I’m not complaining. Still, it illustrates a point I wanted to make, which is that databases have an inherent complexity, and however stylish you make the user interface, the complexity tends to come back to bite you later. In my example, there is an obvious problem with repeated data in the Implementations field. If one of the companies changes their website, I will have to make repeated changes, or do search-and-replace, because the data is not normalized. I am not sure how blist could do this better, though I don’t actually like the idea of columns that are really tables, and would rather have a proper relational database.
Historically, highly usable database managers like Excel, Access and FileMaker tend to foster badly-designed and error-prone databases, if pushed beyond their limits.
Still, blist does look beautiful, and it is also an interesting example of a web application done 100% in Flash.
There are intriguing icons for features including transactions, users, and lens manager. There are also social or team features like discussions and reviews, which are not enabled yet. I presume that there will eventually be some web service API into blist, otherwise it will be of limited value.