... is O/R mapping, at least according to this article by Ted Neward.
Having been through the O/R thing before (and even having written such a tool), I can definitely agree to the article. IMO, the worst problem with O/R mapping is the query mechanism. In any case, you'll end up with a query mechanism that's both less powerful and slower compared to raw SQL. You may get away with this in some applications, but if performance really is a key concern, keep your hands off automated O/R mapping tools.
Posted by guenter at August 11, 2006 11:14 AMI agree.
Vietnam analogy seemed a bit awkward at first, but Ted explains it well later in commentary. I agree with his position on both O/R mapping, as well as political views expressed in the article.
Oh well, I commented on Ted Neward's original article about two years ago: http://arnosoftwaredev.blogspot.com/2004/10/object-relational-technologies-vietnam.html
There are some O/R mappers out there that can increase productivity on certain kind of projects. Hibernate comes to mind, with the Hibernate approach being incorporated in the new EJB 3.0 entity bean standard. Hibernate and descriptive Spring transactions are a good fit as well.
What I just don't get is why people continuously try to write their own O/R mappers, especially in the Java world, where there are widely applied defacto standard solutions out there (Hibernate, Toplink and the like). I had to deal with several of those proprietary mappers, small open source projects or ISVs who invested dozens of man-years in their ORM attempts. They all failed. So did customer projects which were based on them. Query mechanisms that loaded complete data base tables into memory, missing documentation, incomprehensible programming models and error handling. Our developers wanted to code SQL, but they were not allowed to. All of that for the sake of OOP on data access. But OOP is not well-suited for relational data structures, and there is no automatism for connecting those two worlds.
I don't know if Guenter's O/R mapper was done in Java (from reading about his background, I doubt it), and of course things looked different several years ago. I am sure it was much better than the kind of stuff I had to deal with. Maybe you want to comment on that, Guenter?
Posted by: Arno at August 22, 2006 12:11 PMDon't wanna talk too much about it. Anyway, it was written in C++ and made heavy (too heavy) use of XML - it showed in performance and memory usage. Well, those were the days in the early 2000's. Everyone experimented with XML, like they experimented with another TLA in the 60's ;-)
Posted by: Guenter at August 30, 2006 07:01 PM