From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <0f1e54b186151c0eecc0003c812124f7@quanstro.net> References: <5d375e920904170531w7d6992ebvee1698d46e668f25@mail.gmail.com> <0f1e54b186151c0eecc0003c812124f7@quanstro.net> Date: Sun, 19 Apr 2009 00:13:09 +0200 Message-ID: <5d375e920904181513v680abdd0x15991abd87e89843@mail.gmail.com> From: Uriel To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] web server Topicbox-Message-UUID: e7783f56-ead4-11e9-9d60-3106f5b1d025 While I think SQL *really* sucks (besides smelling too much of COBOL, it pretends to be relational when it is not), that was not my point, and I agree with you that relational databases don't store objects, and that relational databases do have valid uses that are sadly often overlooked (maybe this wouldn't be the case if they didn't keep adding 'features' to store XML 'objects' in them and other such abominations). My criticism was directed at how they are actually used in pretty much every web 'framework' under the sun: with some hideously messy ORM layer, they plug round Objects down the square db tables, and all of it to write applications which really are representing files (accessed over HTTP). It is not uncommon to see people modeling with Objects file hierarchies that then they go and store into a relational database. So by using files to store and model data not only avoids having to map a fs-like interface to a table oriented one, but the object oriented convolution in between. And that is short is what allows you to write a blog engine in three lines of rc, because rc and the rest of the toolkit that comes with it are designed to work on and with files and file paths. uriel On Fri, Apr 17, 2009 at 3:22 PM, erik quanstrom wro= te: > On Fri Apr 17 08:33:12 EDT 2009, uriel99@gmail.com wrote: >> And then you would need some hideous SQL database. >> >> As ken said: we have persistent objects, they are called files; and >> that is what werc uses. > > i feel compelled to defend one of my favorite quotes > of all time from misapplication. =C2=A0i'm sure that werc is > well-engineered for its domain, but the mistake i see > is generalizing this into sql sucks. > > just as a point of pedantry, in a standard sql database, > there are no objects. > > sql does not suck. =C2=A0here's why. =C2=A0sql databases are really > good at keeping relationships between rows (here's the > important part) with no locking visible to the client. > even better in the face of non-static requirements, > more relationships can be added on the fly. =C2=A0it's hard > to do this with flat files, and file-based locking (like > upas does for mbox files) is pretty tricky. > > - erik > >