![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Чтение споров про ORM приводит меня в дикое уныние. Такое ощущение, что все мегагуру-разработчики языков программирования никогда сами не писали DB-centric applications и поэтому ни один язык общего назначения для ORM не подходит в принципе.
Единственное, что мне приходит в голову в этом плане - это язык, у которого докомпиляция бы производилась уже в рунтайме, с метаданными из живой базы. Или же чтобы код автоматически генерился и компилировался при разработке тоже из метаданных базы, а в рунтайме производилось сравнение метаданных на которых прога компилировалась и на которых ее запускают.
На данный момент из похожего - разве что Nemerle с его метапрограммированием на макросах, но это ж экспериментальное шыло, без развитой userbase.
Единственное, что мне приходит в голову в этом плане - это язык, у которого докомпиляция бы производилась уже в рунтайме, с метаданными из живой базы. Или же чтобы код автоматически генерился и компилировался при разработке тоже из метаданных базы, а в рунтайме производилось сравнение метаданных на которых прога компилировалась и на которых ее запускают.
На данный момент из похожего - разве что Nemerle с его метапрограммированием на макросах, но это ж экспериментальное шыло, без развитой userbase.
no subject
Date: 2008-12-13 06:48 am (UTC)no subject
Date: 2008-12-13 07:44 am (UTC)А кроме Nemerle есть ещё одно известное мне "конкретное решение" -- плохо, что только для postresql+ocaml -- pgocaml.
no subject
Date: 2008-12-13 08:44 am (UTC)no subject
Date: 2008-12-13 09:20 am (UTC)#!/usr/bin/ruby
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:database => "mydb",
:username => "root"
)
# предположим что users(id, nickname, email);
class User < ActiveRecord::Base
end
User.find_by_nickname('metaclass').email
=> "metaclass@some.domain.com"
Так что, зря ты так про всех разработчиков, есть и вменяемые. Да, для нормального юзабельного ORM, нужен язык с !широчайшей поддержкой метапрограммирования! -> таких я знаю 2: Lisp и Ruby (Nemerle я в глаза не видел), причём ruby есть и на .Net-е в виде IronRuby, так что пользуйтесь, а не нойте.
no subject
Date: 2008-12-13 02:00 pm (UTC)no subject
Date: 2008-12-13 05:46 pm (UTC)no subject
Date: 2008-12-13 12:12 pm (UTC)Ну и есть кучка готовых под любой вкус.
no subject
Date: 2008-12-13 04:42 pm (UTC)no subject
Date: 2008-12-13 05:48 pm (UTC)no subject
Date: 2008-12-13 05:57 pm (UTC)no subject
Date: 2008-12-13 09:02 pm (UTC)no subject
Date: 2008-12-13 09:34 pm (UTC)Я бы попробывал доказать, что ruby+activrecord проходит этот тест.
no subject
Date: 2008-12-14 10:38 am (UTC)Однако могу на слово поверить, что упомянутая комбинация проходит тест посредством в том числе фильтрации выборки на клиенте после получения какого-либо результата от БД.
no subject
Date: 2008-12-13 09:32 pm (UTC)вместо hash-а тут может быть ляvбда(proc-объект в ruby) которая должна вернуть хэш
и да, резулльиатом Table.find(:conditions => ["field > ?", 5]) является коллекция.
В общем если интересно, можете почернуть документацию по activerecord, там действительно всё очень вкусно, `лямдануто` и отлично.
2. а это можно использывать в любом haskell app? или чёткая привязка к happs?
no subject
Date: 2008-12-14 08:25 am (UTC)2. Я пока не смог понять. У них совершенно нет документации, а посможив это на моё чисто теоретическое знание хаскела получается не очень внятно. Думаю что к веб-части оно никак не привязано.
no subject
Date: 2008-12-14 10:55 am (UTC)Вообще идея хорошая, конечно, но генерить из этого серверные запросы было бы еще веселее. В Микрософт для этих целей делали Linq2SQL, но похоже, они его загубили в итоге.
no subject
Date: 2008-12-13 09:00 pm (UTC)no subject
Date: 2008-12-14 11:10 am (UTC)no subject
Date: 2008-12-15 07:42 am (UTC)no subject
Date: 2008-12-21 05:51 am (UTC)Первое впечатление
Date: 2009-01-14 07:35 am (UTC)