Beau Wilkinson wrote:
>>> There are still people who just want
>>> a cursor to a chunk of data which they pull in and iterate over rather than
>>> use SQL's power to manage data a set-at-a-time
>>>       
>
> I am dealing with such a project now. The schema consists of time stamp plus 
> blob, where the blobs "map" directly to C++ structs. Of course, there are all 
> sorts of useful data items in those blobs, and many of the capabilities of 
> SQL are lost by reducing data to blobs. I think this is an extreme example of 
> what you describe. The architectural excuse given was, I think, performance.
>
>   
>>> Call me old fashioned but object-relational mappers worry me on this score
>>>       
>
> I agree, except that you're not old-fashioned. In fact, I think you're on the 
> cutting edge here. OO (including any attempt to apply it to database work) is 
> no longer trendy. At best, it is tolerated... perhaps many people still 
> haven't admitted that the proverbial emporer has no clothes, but no one's 
> bragging about his (i.e. OOP's) new jacket, either.
>
> Microsoft, for example, is moving rapidly to functional programming and 
> generic programming. Implementation inheritance has been lobotomized in C# 
> compared to C++, for example, and Microsoft's new "Linq" database client 
> technology is functional and generic.
>
> As for ORM, OODBMS (whatever that is), etc. proponents of such technologies 
> continue to hem and haw about "object-relational impedance." This is just  a 
> fancy way of describing the problems that result when a good (Relational) 
> model of reality must interface with a dysfunctional (OO) model. OO creates 
> problems (or "opportunities"...) because it doesn't work. MIT has been saying 
> this for 30 years. Few people are willing to consciously stick their necks 
> out and say, "you know, I've always thought OOP was a bunch of B.S" but the 
> sentiment's out there and it's justified.

I believe this is too broad a condemnation.  Every approach has 
limitations and areas where it is more or less useful; Object Oriented 
programming is no exception, and the fact that OO has been misused does 
not in and of itself support the assertion that it is "dysfunctional".

To highlight two examples, functional languages such as Haskell are 
elegant and pure...until you add petty, non-deterministic things such as 
I/O and user interactions.  Monads are a workaround, and even their 
physical and syntactic representation demonstrate the limitations of the 
pure functional approach.

Example two is an oft asked issue with SQL in general.  One of the most 
common needs of a system which interacts with a human being via a 
graphic interface is the ability to reference an object by its position 
within a given resultset.  Although there are many workarounds for this 
issue, workarounds they are and a strategy which is both fast and 
non-cumbersome for accessing the nth element in a given resultset via 
pure SQL continues to elude the profession.

The fact that monads are cumbersome and SQL cannot easily return results 
which can be accessed as though they were an array are not indictments 
of Haskell or SQL.  Likewise the obvious issues of attempting a simple 
mechanism for persisting in-memory objects to an auxiliary storage 
medium are limitations of the Object Oriented approach, and, in my 
opinion, should not be considered a condemnation of Object Oriented 
design as a whole.

Our organization has been using OO based languages for over a decade 
and, while we have encountered cases where other approaches are 
superior, we have found it in general to be an excellent method for 
solving our client's problems.

FWIW


John Elrick
Fenestra Technologies


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to