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

And where do you draw the line between ORM and SQL abstraction?
  • Comment on Re^3: Terminology: Is DBIx::Class an ORM?

Replies are listed 'Best First'.
Re^4: Terminology: Is DBIx::Class an ORM?
by LanX (Sage) on Jun 04, 2021 at 13:02 UTC
    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


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

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