I have been moving quickly between tasks since my return from Boston. I'm finally taking some time off for the Independence Day holiday. Floating in the pool, I keep finding the subject of Ted Neward's essay coming to mind. It appears I still have something I want to say about ORM. In this series of posts, I hope to explain why Visual FoxPro has more mojo for resolving Object Relational Mapping issues than any other technology, of which I am aware.
At the speaker's dinner for the Atlanta Code Camp, I discussed LINQ with Charlie Arehart, and Wally. I brought up the doomed Object Spaces project, and quoted Ted Neward's pithy line that "Object relational mapping is the Vietnam of computer science." It is a good line. It is also true, as much as a pithy metaphor can be true.
Now that Ted has expanded his metaphor, we can see the limitations of metaphor in general. I recommend Jeff Atwood's analysis of Ted's essay. I agree with everything Jeff has written there. Primarily, I agree that Ted tried too hard to stretch his Vietnam analogy which distracted from his primary, quite sound, thesis that "there is no good solution to the object/relational mapping problem." Full stop.
Despite any over-reaching in support of his Vietnam analogy, I must state clearly that Ted Neward is possibly the most qualified person in the industry to make the criticisms he does of ORM. Here's a short bio with his credentials. Suffice it to say that he is not arguing from a position of ignorance. Ted works with many technologies, and has seen the limitations of ORM manifested in different languages and platforms.
To continue with my love letter to Ted, he acknowledged something that few people in the industry are even aware of. Visual FoxPro eases the dissonance between objects and relational data better than any other technology on the planet. I first came to this realization upon reading this post by Joel Spolsky in 2004. Joel identified the impedance mismatch between objects and relational data as a shortcoming in all modern programming languages. Joel didn't bother listing VFP among "modern high-level programming languages."
I'm not going to bitch and moan about the low profile of VFP