Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, FR, Вы писали: FR>>я правильно понимаю что байт код Ocaml'а настолько шустрее руби? DM>Ocaml'овский байткод раз в 5 медленнее нативного, т.е. раза в 4 быстрее байткодов Питона, Перла и др., которые раза в 2-3 быстрее Руби.
dmz>С одной стороны — это не ORM. С другой стороны — нам вот пришлось послать все питоновские ORM-ы в топку, и dmz>написать свой меппер. С третьей стороны — быть может, в ФЯ никакой ORM и не нужен. По крайней мере, dmz>при использовании мнезии, как-то от его отсутствия не страдаешь.
Очень интересно выглядит Олеговский Takusen, для хаскеля. Там, как я понял, вместо возвращения потока записей, принимается на вход функция, этот поток сворачивающая, и где-то внутри API применяется.
Re[2]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, kaa.python, Вы писали:
KP>Я, конечно, может что-то не так делаю, но работа ocamlbuild, omake, ocamlfind и прочих радостей, под виндой, мягко говоря оставляет желать лучшего. Со всех сторон езут проблемы с линковкой, поиском исходников, в кучей других проблем. KP>Итог: GNE Make единственная кроспплатформенная тулза для сборки OCaml приложений.
К>Если речь про эрланговскую мнезию, то оно не совсем чтоб РСУБД, плюс интересно как из окамла туда "ходить"?
Ну да, оно не очень реляционное. Но все равно — маппером особым никаким не пользуемся — такой подход вполне подойдет для связки Ocaml — РСУБД.
Думаю, ходить окамлом в мнезию не надо, т.к. в мнезии самый жир, что она находится в адресном пространстве клиента, а так же эрланг с ней
хорошо интегрируется. Хотя пишут же какие-то извращенцы компилятор Haskell в эрланговой машины. При желании, наверное, можно и для окамла
такое написать, хотя окамл будет уже не совсем тот.
Re[4]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
BZ>не думаю, что эта буква O имеет отношение к ООП. ORM по-другому называется просто persistance
Ну, скажем, в ФЯ вполне комфортно себя можно чувствовать, работая прямо с туплами или рекордами, каковые и будет
отдавать API. При этом не будет ощущения, что что-то делаешь не так.
В ООП же как. Возвращают тебе RecordSet. RecordSet — объект не кошерный, к тому-же, может содержать некий стейт — курсор там, например.
Если что-то внешнее случилось — то получить очередной объект сета может быть невозможно. Поэтому перегоняешь его в модель.
Модель тоже штука не простая — если вдруг есть какие-то зависимости, то может вылезти и ленивая загрузка коллекций (ага, где-то там
неявно будет что-то, что умеет лазить в базу). Соответственно, если мы захотим пропихнуть это через маршалинг — то, вероятно, придется
это дело запихать в третью иерархию объектов. Движуха, в общем!
А тут — возвращают тебе список туплов, и все — end of story. Он же в соседнюю ноду, он же в JSON. Необъектно, хоть ты тресни
Re[3]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, dmz, Вы писали:
DM>>Как я понимаю, Ocsigen не доступен под Windows, для меня, например, это show stopper..
dmz>Неужели не соберется? Со сборкой окамловых приложений под винду есть проблемы?
Если не под Cygwin, то проблем куча: нет fork'a, нет select'a для несокетов, не реализована часть стандартной библиотеки (в том числе Unix.establish_server), да и собирать не чем — не работают стандартные вещи типа ocamlbuild, ocamlfind, GODI.
Меня всегда удивляли люди, называющие кроссплатформенными решения, использующие fork и bash.
DM>>И, кажется, в нем ничего нет про работу с БД, в то время как в RoR active records — одна из главных фишек.
dmz>dmz@x200:~$ apt-cache search ocaml database
Отдельные библиотеки для работы с отдельными базами есть, но они не интегрированы в фреймворк. Имхо, именно ActiveRecord — сердце рельсов, делающее разработку на рельсах столь удобной и приятной. Если убрать из рельсов ActiveRecord, что останется? Сторонний невыдающийся веб-сервер, сторонний банальный джижок шаблонов и свое отображение путей на методы — не густо.
Re[8]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, Аноним, Вы писали:
А>>А что не завелось после этого?
DM>После этого из командной строки вроде заработал (но только с ключом -classic-display), а в OcaIDE сыпятся ошибки типа DM>rm -Rf _build DM>Failure: Error during command `rm -Rf _build'. DM>Exit code 1. DM>. DM>rm: cannot remove `_build/_log': Permission denied
DM>Вероятно, что-то с путями. Не исключаю, что можно еще покорпеть и все настроить, но в итоге я остановился на варианте OcamlMakefile, который работает сносно.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, kaa.python, Вы писали:
KP>>Я, конечно, может что-то не так делаю, но работа ocamlbuild, omake, ocamlfind и прочих радостей, под виндой, мягко говоря оставляет желать лучшего. Со всех сторон езут проблемы с линковкой, поиском исходников, в кучей других проблем. KP>>Итог: GNE Make единственная кроспплатформенная тулза для сборки OCaml приложений.
FR>Можно попробовать (пока не пробовал) http://www.scons.org/wiki/OcamlBuilder
Спасибо, но огребя кучу проблем с ocamlbuild, omake, ocamlfind, OcamlMakefile я как-то склонился в пользу самописного Makefile
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Как я понимаю, Ocsigen не доступен под Windows, для меня, например, это show stopper..
И, кажется, в нем ничего нет про работу с БД, в то время как в RoR active records — одна из главных фишек.
Re: Небольшое сравнение скорости OCaml/Ocsigen и RoR
E>Довольно известный Ruby-ист Mauricio Fernández (в последнее переключившийся на OCaml) опубликовал свое сравнение E>скорости работы простых web-приложений
Вообще, результаты абсолютно предсказуемые, но все равно прикольно. На том же железе Mochiweb/Yaws должны показывать
где-то в районе 2500 — 2800 RPS, python (по крайней мере phenopy без кэширования) — 450 — 600. Радует маленький
memory footprint окамла.
Померял бы кто нибудь java/tomcat до кучи. Или на нем уже никто ничего не пишет?
Re[2]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
DM>Как я понимаю, Ocsigen не доступен под Windows, для меня, например, это show stopper..
Неужели не соберется? Со сборкой окамловых приложений под винду есть проблемы?
DM>И, кажется, в нем ничего нет про работу с БД, в то время как в RoR active records — одна из главных фишек.
dmz@x200:~$ apt-cache search ocaml database
cameleon - integrated development environment for OCaml
libmysql-ocaml - OCaml bindings for MySql
libmysql-ocaml-dev - OCaml bindings for MySql
libocamlodbc-ocaml-dev - UnixODBC database bindings for OCaml
libpostgresql-ocaml - OCaml bindings to PostgreSQL's libpq
libpostgresql-ocaml-dev - OCaml bindings to PostgreSQL's libpq
libsqlite3-ocaml - Embeddable SQL Database for OCaml Programs
libsqlite3-ocaml-dev - Embeddable SQL Database for OCaml Programs
С одной стороны — это не ORM. С другой стороны — нам вот пришлось послать все питоновские ORM-ы в топку, и
написать свой меппер. С третьей стороны — быть может, в ФЯ никакой ORM и не нужен. По крайней мере,
при использовании мнезии, как-то от его отсутствия не страдаешь.
Re[3]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
[cut]
dmz>С одной стороны — это не ORM. С другой стороны — нам вот пришлось послать все питоновские ORM-ы в топку, и dmz>написать свой меппер. С третьей стороны — быть может, в ФЯ никакой ORM и не нужен. По крайней мере, dmz>при использовании мнезии, как-то от его отсутствия не страдаешь.
Если речь про эрланговскую мнезию, то оно не совсем чтоб РСУБД, плюс интересно как из окамла туда "ходить"?
Re[3]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, dmz, Вы писали: dmz>С одной стороны — это не ORM. С другой стороны — нам вот пришлось послать все питоновские ORM-ы в топку, и dmz>написать свой меппер. С третьей стороны — быть может, в ФЯ никакой ORM и не нужен. По крайней мере, dmz>при использовании мнезии, как-то от его отсутствия не страдаешь.
не думаю, что эта буква O имеет отношение к ООП. ORM по-другому называется просто persistance
Люди, я люблю вас! Будьте бдительны!!!
Re[5]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, dmz, Вы писали:
dmz>Ну да, оно не очень реляционное. Но все равно — маппером особым никаким не пользуемся — такой подход вполне подойдет для связки Ocaml — РСУБД.
Здравствуйте, eao197, Вы писали:
E>Довольно известный Ruby-ист Mauricio Fernández (в последнее переключившийся на OCaml) опубликовал свое сравнение скорости работы простых web-приложений, написанных на Ruby+RubyOnRails, OCaml/Ocsigen и lighttpd+FastCGI+C: Standalone web applications using OCaml + Ocsigen, benchmarked against Rails.
E>Имхо, комментарии к этому сравнению местам даже интереснее.
Посмотрел в исходники Ocsigen и вижу DynLoad я правильно понимаю что байт код Ocaml'а настолько шустрее руби?
Re[4]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, D. Mon, Вы писали:
DM>Если не под Cygwin, то проблем куча: нет fork'a, нет select'a для несокетов, не реализована часть стандартной библиотеки (в том числе Unix.establish_server), да и собирать не чем — не работают стандартные вещи типа ocamlbuild, ocamlfind, GODI.
DM>Отдельные библиотеки для работы с отдельными базами есть, но они не интегрированы в фреймворк. Имхо, именно ActiveRecord — сердце рельсов, делающее разработку на рельсах столь удобной и приятной. Если убрать из рельсов ActiveRecord, что останется?
ActiveRecord — это всего-лишь динамический ORM. Его эффективность под большим вопросом, равно как и способность маппить
нетривиальные вещи. Кроме того, он навязывает определенные стереотипы дизайна базы, которые могут не всегда быть
подходящими. В любом случае, если мы говорим о масштабируемости приложения, то слой доступа к данным, использует он ORM
или нет — обязан быть изолирован, и таскать ORM-зависимые вещи по всем слоям — нельзя.
Я все это веду к тому, что отсутствие ORM (и уж тем более динамического) не такая большая потеря; в любом случае, ad-hoc
замена пишется за считанные дни, к тому же, это разовая инвестиция при переходе на новую технологию.
DM>Сторонний невыдающийся веб-сервер, сторонний банальный джижок шаблонов и свое отображение путей на методы — не густо.
Да. Добавим сюда самый тормозной из известных интерпретатор, жадный до памяти, и стремный ORM — и получим законченную картину.
Re[2]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, FR, Вы писали:
FR>Посмотрел в исходники Ocsigen и вижу DynLoad я правильно понимаю что байт код Ocaml'а настолько шустрее руби?
Интерпритатор, который был бы медленее Ruby, нужно еще поискать. Так что, думаю, даже в режиме байт-кода OCaml уделает Ruby. А уж если его собрать в stand-alone native приложение... (Фернандез, насколько я понял, гонял именно нативный код, а возможность Ocsigen создавать stand-alone приложения реализована в пока не выпущенной, development-версии Ocsigen, если я ничего не перепутал).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, dmz, Вы писали:
dmz>ActiveRecord — это всего-лишь динамический ORM. Его эффективность под большим вопросом
А я и не говорил об эффективности и масштабируемости (рельсы даже однопоточны, насколько я помню). Я говорил только об удобстве и скорости разработки.
dmz>Да. Добавим сюда самый тормозной из известных интерпретатор,
Есть тормознее — Ребол.
Re[6]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, FR, Вы писали:
FR>Да ребол это вещь, такую же концентрированную мощь до него я только в форте видел
А мне он показался больше похожим на HQ9+. В том смысле, что одни операции делаются легко и красиво, а чуть другие — непонятно, делаются ли вообще. Пытался там вычислить и показать интервал между двумя датами, так и не понял как..
Re[8]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, D. Mon, Вы писали:
DM>А мне он показался больше похожим на HQ9+. В том смысле, что одни операции делаются легко и красиво, а чуть другие — непонятно, делаются ли вообще. Пытался там вычислить и показать интервал между двумя датами, так и не понял как..
Ну значит ты просто не вкурил
Я помню неделю как наркоман его ковырял
Там очень мощное метапрограммирование, ни в чем ни уступает форту или лиспу.
Плюс куча концепций красиво встроенных в язык, например итераторы которые позволяют писать
программы по выразительности мало уступающие написаным на декларативных языках.
Re[4]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
От:
Аноним
Дата:
29.01.09 09:54
Оценка:
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, dmz, Вы писали:
DM>>>Как я понимаю, Ocsigen не доступен под Windows, для меня, например, это show stopper..
dmz>>Неужели не соберется? Со сборкой окамловых приложений под винду есть проблемы?
DM>Если не под Cygwin, то проблем куча: нет fork'a, нет select'a для несокетов, не реализована часть стандартной библиотеки (в том числе Unix.establish_server), да и собирать не чем — не работают стандартные вещи типа ocamlbuild, ocamlfind, GODI.
ocamlbuild работает из коробки, ocamlfind после доработки напильником.
Re[5]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, <Аноним>, Вы писали:
А>ocamlbuild работает из коробки, ocamlfind после доработки напильником.
Я, конечно, может что-то не так делаю, но работа ocamlbuild, omake, ocamlfind и прочих радостей, под виндой, мягко говоря оставляет желать лучшего. Со всех сторон езут проблемы с линковкой, поиском исходников, в кучей других проблем.
Итог: GNE Make единственная кроспплатформенная тулза для сборки OCaml приложений.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[6]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
От:
Аноним
Дата:
29.01.09 11:28
Оценка:
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, <Аноним>, Вы писали:
А>>ocamlbuild работает из коробки, ocamlfind после доработки напильником.
KP>Я, конечно, может что-то не так делаю, но работа ocamlbuild, omake, ocamlfind и прочих радостей, под виндой, мягко говоря оставляет желать лучшего. Со всех сторон езут проблемы с линковкой, поиском исходников, в кучей других проблем. KP>Итог: GNE Make единственная кроспплатформенная тулза для сборки OCaml приложений.
Вопрос был "работают/не работают".
Не всё гладко, правда, но возможно. Лично мне больше нравится ocamlbuild. При сборке стороннего проекта, чаще бывает проще адаптировать ocamlbuild'ом, чем собирать оригинальным makefile'ом.
Re[7]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, <Аноним>, Вы писали:
А>Вопрос был "работают/не работают". А>Не всё гладко, правда, но возможно. Лично мне больше нравится ocamlbuild. При сборке стороннего проекта, чаще бывает проще адаптировать ocamlbuild'ом, чем собирать оригинальным makefile'ом.
Может просто мне не везет, но помучившись со всеми OCaml-оринтированными сборочными тулзами я просто написал свой Makefile и все стало хорошо
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[5]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, Аноним, Вы писали:
А>ocamlbuild работает из коробки,
У меня не заработал. Ему bash нужен как минимум, это уже не из коробки. Да из башем мне не удалось его полноценно завести..
Re[6]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
От:
Аноним
Дата:
29.01.09 12:51
Оценка:
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, Аноним, Вы писали:
А>>ocamlbuild работает из коробки,
DM>У меня не заработал. Ему bash нужен как минимум, это уже не из коробки. Да из башем мне не удалось его полноценно завести..
Да, ваша правда, bash нужен.
А что не завелось после этого?
Re[7]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, Аноним, Вы писали:
А>А что не завелось после этого?
После этого из командной строки вроде заработал (но только с ключом -classic-display), а в OcaIDE сыпятся ошибки типа
rm -Rf _build
Failure: Error during command `rm -Rf _build'.
Exit code 1.
.
rm: cannot remove `_build/_log': Permission denied
Вероятно, что-то с путями. Не исключаю, что можно еще покорпеть и все настроить, но в итоге я остановился на варианте OcamlMakefile, который работает сносно.
Re[8]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, D. Mon, Вы писали:
DM>Вероятно, что-то с путями. Не исключаю, что можно еще покорпеть и все настроить, но в итоге я остановился на варианте OcamlMakefile, который работает сносно.
А может тогда подскажешь, каким образом настроить OcamlMakefile так, что бы временные файлы сыпались в отдельную директорию?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[9]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
Здравствуйте, kaa.python, Вы писали:
KP>А может тогда подскажешь, каким образом настроить OcamlMakefile так, что бы временные файлы сыпались в отдельную директорию?
Не, я в этом не силен.
Re[8]: Небольшое сравнение скорости OCaml/Ocsigen и RoR
KP>Спасибо, но огребя кучу проблем с ocamlbuild, omake, ocamlfind, OcamlMakefile я как-то склонился в пользу самописного Makefile
Не прошло и года как я наткнулся на такую интересную штуку http://overbld.abcname.net/ бинарная сборка OCaml под винду, почти все что нужно из коробки.