ORM

Dec. 13th, 2008 01:25 am
metaclass: (Default)
[personal profile] metaclass
Чтение споров про ORM приводит меня в дикое уныние. Такое ощущение, что все мегагуру-разработчики языков программирования никогда сами не писали DB-centric applications и поэтому ни один язык общего назначения для ORM не подходит в принципе.
Единственное, что мне приходит в голову в этом плане - это язык, у которого докомпиляция бы производилась уже в рунтайме, с метаданными из живой базы. Или же чтобы код автоматически генерился и компилировался при разработке тоже из метаданных базы, а в рунтайме производилось сравнение метаданных на которых прога компилировалась и на которых ее запускают.
На данный момент из похожего - разве что Nemerle с его метапрограммированием на макросах, но это ж экспериментальное шыло, без развитой userbase.

Date: 2008-12-13 09:20 am (UTC)
From: [identity profile] max-posedon.livejournal.com
"Единственное, что мне приходит в голову в этом плане - это язык, у которого докомпиляция бы производилась уже в рунтайме, с метаданными из живой базы."

#!/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, так что пользуйтесь, а не нойте.

Date: 2008-12-13 02:00 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Руби вроде поддерживает динамическое изменение структуры классов в рунтайме, а не метапрограммирование. Т.е., я не очень уверен в том, что у него система типов кошерная.

Date: 2008-12-13 05:46 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
А ты взял бы и проверил. (Там именно метапрограммирование).

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 12th, 2025 07:12 am
Powered by Dreamwidth Studios