Thoughts
We’ve come a long way since 2006.
=> http://blogs.tedneward.com/post/the-vietnam-of-computer-science/
This post is bad. I don’t want to be rude here, because it’s well written. And I don’t know what this guy’s credentials are. And I don’t know what the ORM scene in 2006 looked like. But come on:
> On top of this, we have a more subtle problem, that of the reliance on developers' dicipline: both the table name ("PERSON") and the column name in the criteria ("PERSON.LAST_NAME") are standard strings, taken as-is and fed to the system at runtime with no sort of validity-checking until then. This presents a classic problem in programming, that of the “fat-finger” error, where a developer doesn’t actually query the “PERSON” table, but the “PRESON” table instead.
How is this relevant to the claim that “Object-relation mapping is the Vietnam of computer science.” I guess there weren’t any scripting languages at the time and the thought of not having a compiler to validate your terms was awful. Like, I’ve only ever used an ORM in JS and Python. I don’t except compile-time SQL errors. And that’s only one claim. Other “problems” include ‘what if you have two copies of the process running and one of them is paused by the OS and suspended to disk and the other process runs a database migration. Will your ORM save you then??’ Is there any solution to that problem? What the heck?
All of the issues are issues either with strict OOP (which is why I don’t write Java) or issues with having a database.
I almost forgot the part where he goes on about how the DB “instead is owned by another group within the company, typically the database administration (DBA) group.” And he acknowledges that this isn’t inherently an issue with the ORM, but still seems to think it’s relevant.