Comments 16
У меня одного в хроме вот здесь ocsigen.org/macaque/dev/manual/ переходы по ссылкам ведут не туда куда надо?
0
Там про макаку написано «Depends on PG'Ocaml» значит ли это, что она умеет только в постгре?
0
Как фану функциональщины и OCaml в частости, хотелось бы подробнее про что-то! Хотя бы хеллоу ворлд и простейшее заполненение/отправка формы, обращение к БД.
+2
Хорошее знание OCaml для использования предполагается? Или можно синтаксис изучить и ваять «бложик»? :)
0
Да легко. Единственное что, с типизацией периодически потрахаться приходится. Окамл же очень строгий и на все попытки implicit type cast'ов смотрит как на сами знаете что. Поэтому, например, есть «строка» — нативный тип string, есть pcdata «строка» — автоматически экранируемая строка, которую (и только которую) можно засунуть в DOM, а есть Js.string «строка» — которую можно скормить в вызов клиентского ява-скрипта (ну, например, в функцию alert).
А так всё просто :)
А так всё просто :)
0
Ну и где ссылка на вращающуюся землю?
0
Недавно анонсировали похожий проект — Opa, даже писали о нем на Хабре. Есть ряд отличий — у них специализированный для веба язык, интегрированная база данных и вебсервер. Но в целом ощущение остается таким же — декларативный код с pattern matching — для вебразработки вполне удобно. Молодцы.
Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров. Исключением можно назвать разве что CoffeeScript. Он обходит все скользкие моменты JS и производит вполне дебагоспособный код, проходящий все проверки на «вшивость» — JSLint, es5 strict mode.
Если б я создавал язык для компиляции в JS сегодня, я бы не заморачивался и стал бы компилировать в CoffeeScript, а результат — уже в JS.
Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров. Исключением можно назвать разве что CoffeeScript. Он обходит все скользкие моменты JS и производит вполне дебагоспособный код, проходящий все проверки на «вшивость» — JSLint, es5 strict mode.
Если б я создавал язык для компиляции в JS сегодня, я бы не заморачивался и стал бы компилировать в CoffeeScript, а результат — уже в JS.
0
UFO just landed and posted this here
Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров.
Тут надо понимать, что возможность вставки нативного js на страницу (и вызова своих js-функций) для реализации чисто клиентского функционала, например, всяких выпадающих менюшек, никто не отбирает. Всё это есть. А вот когда человек пишет какую клиентскую часть, которая связана с сервером — например, какую-нибудь подгрузку контента в бокс при клике по табу, или даже клиентскую валидацию вводимых данных, то это гораздо удобнее сделать на родном языке.
Вот, кстати, валидация хороший пример. Обычно, для какого-нибудь e-mail'а или пароля делают функцию-валидатор на js для пользователя, а потом (пользователь может ведь js и обойти) ещё одну функцию на PHP/C#/Perl/C++/другом-серверном-языке. И при изменении чего-нибудь (ну, например, решили теперь минимальную длину пароля увеличить), функцию надо менять в двух местах. Здесь же мы пишем одну функцию, правим её в одном месте, а вызываем как с клиента, так и с сервера.
Тут надо понимать, что возможность вставки нативного js на страницу (и вызова своих js-функций) для реализации чисто клиентского функционала, например, всяких выпадающих менюшек, никто не отбирает. Всё это есть. А вот когда человек пишет какую клиентскую часть, которая связана с сервером — например, какую-нибудь подгрузку контента в бокс при клике по табу, или даже клиентскую валидацию вводимых данных, то это гораздо удобнее сделать на родном языке.
Вот, кстати, валидация хороший пример. Обычно, для какого-нибудь e-mail'а или пароля делают функцию-валидатор на js для пользователя, а потом (пользователь может ведь js и обойти) ещё одну функцию на PHP/C#/Perl/C++/другом-серверном-языке. И при изменении чего-нибудь (ну, например, решили теперь минимальную длину пароля увеличить), функцию надо менять в двух местах. Здесь же мы пишем одну функцию, правим её в одном месте, а вызываем как с клиента, так и с сервера.
+1
Sign up to leave a comment.
Ocsigen 2.0 — новая версия фреймворка для OCaml