Adam Sjøgren wrote:
On Sat, 17 Apr 2010 19:15:14 +0100, Lyle wrote:
Adam Sjøgren wrote:

Ok, I'll bite: What system do you use instead of an object-relational mapper?

At the moment I just use DBI directly.
[...]

Thanks for the answer.

It is always nice to know what people like when they express contempt
for other things. It gives you a chance to understand where they are
coming from better.

Personally, I prefer a middle-ground between raw DBI+SQL and ORMs as they are currently known, and that's what my Muldis D language and database toolkit is meant to deliver.

People could treat it like a SQL templating system in the way that things like SQL::Abstract are treated, but that it is a lot more thorough in features and makes the SQL look more like Perl; your database tables are expressed as data type definitions plus declared variables of those types; your queries are expressed as mostly-declarational functions and procedures.

You can write Muldis D either in string form like with SQL or Perl, which is better when you're writing code entirely manually, and you can write it as Perl data structures, which is better if you are generating code using Perl, both forms equally expressive; the latter is the closest analogy to traditional SQL generators.

Muldis D is like a traditional ORM in that it has a variety of built-in features that SQL DBMSs in general lack, such as updateable views or collection-valued attributes, say to nest child records under parents.

But unlike typical ORMs, it unifies objects and the relational model, and so considers that there is no impedence mismatch, while ORMs say there is a mismatch and tries to treat the two things as separate.

In other words, Muldis D makes the database itself look more powerful or Perlish than it otherwise is, and so Perl programs can then use it as if it were just an ordinary programming language VM, based on types and routines like regular languages.

I am perhaps a few days away from a milestone in this project and I wasn't going to talk about it here before that; but this thread sort of forced my hand as I didn't want the option to go unmentioned in it.

-- Darren Duncan

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to