Fog Creek Software
Discussion Board

Dave Winer's Spin on the database debate

Dave Winer has an interesting viewpoint on the whole XML vs. Relational model debate for real-world data storage:

"According to the Register, Microsoft has a relational database on the front burner for a future version of Windows. Personally, I think they're barking up the wrong tree. If they spent more time building websites they'd know that hierarchical models with very tight scripting connections offer more performance and a higher level application model. Relational databases are good for factories and stores. Object databases map the model of the Web. Just change the slashes to dots and off you go."

Patrick Lioi
Tuesday, January 29, 2002

Confused as usual.

Mike Gunderloy
Tuesday, January 29, 2002

Percentage of applications I have worked on that would have derived any benefit from an object database: 5%

That kind of settles my position on this one.

Jeff Paulsen
Tuesday, January 29, 2002

Well, M.G., as eloquent as that is, Winer's software does what it needs to do and performance isn't an issue.  Like he says, relational databases are still needed for large-scale systems, but your average Jon Q. Public doesn't always need transactions and superfast indexing.  And don't forget, there are very good relational-based object databases out there (Exolab's Castor JDO, for instance).  The thing about XML is that the spec is for flat files, but the data model itself, as an abstract concept, can stand to benefit from any number of internal representations.  The hierarchical model hasn't been developed as much as the relational yet, but there's plenty of room for improvement.  And on top of all that, I kinda like the idea of not having a set size limit on string data.  It may not be as fast, but I don't always need to fill more than a small percentage of a sql TEXT field, and I don't want to restrict myself to save space.

Tuesday, January 29, 2002

And if you think there's no practical use for hierarchal data and markup languages, check out "View->Source" right now.

Patrick Lioi
Tuesday, January 29, 2002

If you've followed the history on this one, Microsoft is not proposing anything as simple as the straw man that Winer is arguing about. He seems to be using this to once again position himself as the Right, Good, And Simple alternative to the beast of Redmond. Like most of what Winer has to say, this is marketing for Userland.

Once working Longhorn code starts to come out, we can all take a look and critique Microsoft's implementation. Until then, the people who know aren't talking, and the people who are talking don't know.

Mike Gunderloy
Tuesday, January 29, 2002

1. hierarchical database != object database

2. hierarchical databases have been around for a lot longer then relational databases. Relational databases had so many advantages over Hierarchical that most of the hierarchical products died off (anyone else remember System 2000). The same goes for the Network database architecture.

3. Text fields don't have to have a fixed length in Relational databases (or waste storeage). You're talking about an implementation issue, not an architectural issue.

Jeff Pleimling
Tuesday, January 29, 2002

avigoda states.. "Like he says, relational databases are still needed for large-scale systems, but your average Jon Q. Public doesn't always need transactions and superfast indexing."

Always?  No, but with the latest leaks about Longhorn and the file-system going SQL-based, Jon Q. Public will absolutely want transactions and superfast indexing.

It seems if we are to buy into Mr. Winer's perspective, building an OS is as simple as building a web page.  I think not.

Marty Eichelman
Tuesday, January 29, 2002

For those who don't know and who might be interested, Zope ( is an open source web application framework that stores all objects (including the Python code that runs things) in its built in hierarchical object database.

I haven't done too much work in Zope, but can already tell that there are some things that work very well within that framework.  And in Zope's case, the objects in its built in database can be accessed directly by a URL.

There are projects in Zope for which you would definitely want to interface to an external relational database, though.  For example, as others have already said, if lots of transactions are expected, as opposed to using the database as pretty much a read-only repository.

Herbert Sitz
Tuesday, January 29, 2002

One of the posters said that only 5% of the projects he has worked on would have benefited from and Object database.  In my experience it has been closer to 90%.  The reason that relational databases superceded earlier designs wasn't so much because of the superiority of a relational model over others, but rather the availabilty of a uniform access method (SQL) which made sense not only to a programmer, but to joe-average-likes-to think-he-knows-computers power user.

Another problem with object databases is they are so friggin' expensive.  There are only a handful of established products which anyone would dare bet his business on.  One of these vendors told me the price for a developer kit was about $10,000.  How do they expect to break in that way?

Erik Lickerman
Tuesday, January 29, 2002

Hierarchical database management systems are still doing quite well, particularly on in the mainframe/enterprise environment.

More than 30 years since the original release, IBM still very much sells and supports the IMS DB hierarchical database system.

This presentation is interesting; it includes some quite relevant examples of how companies are using IMS on the Web:

Even SYSTEM 2000 is still available from SAS:
(And they just announced an XML export feature for it, too.)

Wednesday, January 30, 2002

Re: Zope comment above.

The application framework layered above Zope’s database is responsible for mapping URLs to objects, not the database itself.  ZODB (Zope’s database) does not know one iota about a URL. Frameworks for mapping URLs to objects can and have been written using relational databases. FogCreek’s CityDesk is but one example.

The post confuses three orthogonal concepts: transactions, update performance, and model. ZODB does have reasonable support for transactions. In fact, the ZODB support for transactions is better than older incarnations of the popular MySQL relational database.  It’s ZODB’s update performance that sucks. You don’t want to write very often to ZODB.

Nona Myous
Wednesday, January 30, 2002

Do the discussions about Mr. Winer’s provocative comments belong on this discussion board?  This discussion has little to do with Joel or FogCreek. Mr. Winer has turned off the dialog at his site, but why should the discussion come here?

Don’t even suggest going to WinerLog. It’s childish and does not support posting.

Wiener Boy
Wednesday, January 30, 2002

I find the whole topic interesting.  One really gets the feeling that MSFT is the main innovator.

This is an interesting talk from Pike where he comes out and says this.

However, I imagine that Hans Reiser of Linux's ReiserFS was first out of the gate in implementing for today's widespread systems.

Wednesday, January 30, 2002

Can we stop with the Microsoft worship already? It's not innovative, it's a rehash of what Be already did and moved on from.


Alex Russell
Wednesday, January 30, 2002

Microsoft worship?  You're right.  In fact, here's Rob Pike's email address.  Let him know:
rob (at)

Tell him about an alternative OS called Unix, while you're at it.  Our team needs more converts.

I'd take your post seriously, but you cut & pasted that from an AC comment at Slashdot.  I've heard of BeOS, and I am also aware it didn't have an RDBMS filesystem, because they realized (this is my conjecture, but probably solid) that there already existed Free RDBMS's, and perhaps the user should remain free to choose the best from the two worlds.  The BeOS filesystem would journal, but user-friendly applications could take care of relational data storage.  Especially since it wasn't clear if BeOS was going to be a multimedia creation platform, or an embedded system.

Wednesday, January 30, 2002

Actually, BeOS *did* have a relational DB as its file system waaaay back in the pre-1.0 days.

They switched over to BeFS not because of some "choice" issue, but because they couldn't get the performance up to where it needed to be.

Chris Tavares
Wednesday, January 30, 2002

Quite true.  I just meant that the choice was one of performance vs. stability/closure.

That was a not-well-thought out comment by me.  I was goaded on by the fact that Alex's website crashes my IE on Win. :-)  Works fine on OS X though, so I don't know if this is intentional.

Wednesday, January 30, 2002

And look where BE is today.

Whooda thunkit
Thursday, October 31, 2002

*  Recent Topics

*  Fog Creek Home