metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-12-13 01:25 am

ORM

Чтение споров про ORM приводит меня в дикое уныние. Такое ощущение, что все мегагуру-разработчики языков программирования никогда сами не писали DB-centric applications и поэтому ни один язык общего назначения для ORM не подходит в принципе.
Единственное, что мне приходит в голову в этом плане - это язык, у которого докомпиляция бы производилась уже в рунтайме, с метаданными из живой базы. Или же чтобы код автоматически генерился и компилировался при разработке тоже из метаданных базы, а в рунтайме производилось сравнение метаданных на которых прога компилировалась и на которых ее запускают.
На данный момент из похожего - разве что Nemerle с его метапрограммированием на макросах, но это ж экспериментальное шыло, без развитой userbase.

[identity profile] max-posedon.livejournal.com 2008-12-13 09:32 pm (UTC)(link)
1. Table.count(:conditions => ["field >?", 5]).size полный аналог того что у вас:
вместо hash-а тут может быть ляvбда(proc-объект в ruby) которая должна вернуть хэш
и да, резулльиатом Table.find(:conditions => ["field > ?", 5]) является коллекция.
В общем если интересно, можете почернуть документацию по activerecord, там действительно всё очень вкусно, `лямдануто` и отлично.

2. а это можно использывать в любом haskell app? или чёткая привязка к happs?


[identity profile] slonopotamus.livejournal.com 2008-12-14 08:25 am (UTC)(link)
1. Нате вам список чисел: [1..10]. Отфильтруйте те, которые больше 5 и посчитайте размер. После чего возьмите таблицу с полем с числами от 1 до 10. Отфильтруйте те, которые больше 5 и посчитайте размер. Подумайте, почему вам приходится использовать настолько разный api.

2. Я пока не смог понять. У них совершенно нет документации, а посможив это на моё чисто теоретическое знание хаскела получается не очень внятно. Думаю что к веб-части оно никак не привязано.