in reply to Re^3: Terminology: Is DBIx::Class an ORM?
in thread Terminology: Is DBIx::Class an ORM?

OO and relational algebra are very different paradigms.

An ORM will force the class structure onto the RDB-schema.

It's only using a subset of SQL and can be mapped back 1-to-1 to an object model (of the particular host language, here Perl).

It's like a amputated creole, speaking English words with Latin grammar. But without the possibility to introduce new Latin particles to express the new grammar, forcing you to use costly workarounds.

E.G. there is no "inheritance" in SQL.

An SQL-Abstraction attempts to express all or most of the SQL-Space inside the host language, like with a query builder.

It's effectively just a new SQL dialect, attempting to map 1-to-1 onto other dialects (like LIMIT vs TOP )

My impression is/was that DBIC attempts to have the best of both worlds, which also explains it's complexity.

For a long read why many people despise ORMs you may want to have a look at

(I'll skip the first 6 pages about US-Vietnam-War though. :)

This blog-entry had a heavy impact and was often discussed in both directions, you might want to google the responses...

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

update

swapped "Chinese" with "Latin" for claritas in metaphora ;-)

) or is it rather speaking Latin with English grammar? :)