> Примеров "трех строчек на F#" мы, естественно, не дождемся. Вообще это мое любимое занятие макать питонистов и монокодеров в их вранье про уанлайнеры, которые они так и не могут продемонстрировать
TABLE user users COLUMN id SERIAL AUTO PRIMARY KEY COLUMN name VARCHAR(64) UNIQUE COLUMN age INT NULLABLE INDEXED COLUMN password VARCHAR(64) END
Выборка:
let u_18_to_40 = SELECT [User_age < (Some 40) AND User_age > (Some 18)] users;;
Вложенная выборка:
let targets x = SELECT [User_name LIKE "%paul%"] (u_18_to_40 x);;
На Ocaml-e(F# на .net) можно делать прямые DSL даже без введения дополнительных слоев, как в Рельсах. Тоесть здесь по сути используется синтаксис SQL-я.
Ты зря в этот разговор влез, F# и C# разные вещи. И ява после окамля, это обнять и плакать.
Побилось форматирование, вот два примера задания модели:
TABLE user users
COLUMN id SERIAL AUTO PRIMARY KEY
COLUMN name VARCHAR(64) UNIQUE
COLUMN age INT NULLABLE INDEXED
COLUMN password VARCHAR(64)
END
TABLE comment comments
COLUMN id SERIAL AUTO PRIMARY KEY
COLUMN title TEXT
COLUMN text TEXT
COLUMN created_at TIMESTAMPZ
COLUMN author SERIAL FOREIGN(users, id)
END
>> А ведь это не твои примеры... или ты автор статьи по ссылке?
> Тоесть если я не автор статьи, то примеры выше лажа?
Я ничего не сказал о качестве примера, хотя и нахожу его немного неуместным: "This is still work in progress, but it's usable (and I'm starting to use it for real)". Да и не заменяет это "сотню килобайт корявых XML-ных конфигов" - по объему текста это тот же SQL, но типизированный. Это, конечно, достижение (без всякой иронии), но ни о каком выигрыше на порядки речь не идет.
> Ты какой-то странный...
А ты так и не ответил на вопрос, являешься ли ты автором.
> Да и не заменяет это "сотню килобайт корявых XML-ных конфигов" - по объему текста это тот же SQL, но типизированный. Это, конечно, достижение (без всякой иронии), но ни о каком выигрыше на порядки речь не идет.
Дык а в любом случае где-то тебе приходится модельку описать. Можно сделать как в ActiveRecord(автор блога - заядлый рубист, так что он про такой подход знал) - тоесть забирать структуру на ходу из базы и задавать только название таблицы и главного индекса. Но сейчас многие уже стали поглядывать в сторону DataMapper-а, который как раз полностью описывает модель со всеми полями.
Выигрыш в таком подходе, то что ты напрямую используешь понятный многим язык SQL который является прямым DSL для этой задачи. Гибкость камля позволяет это сделать максимально близко к sql-ному синтаксису. А хибернейт заставляет учить xml-ную запись модели, что не есть гут, так как вводится новая сущность.
> А ты так и не ответил на вопрос, являешься ли ты автором.