Обновить

Комментарии 16

У меня одного в хроме вот здесь ocsigen.org/macaque/dev/manual/ переходы по ссылкам ведут не туда куда надо?
Нет, похоже, что они все ведут на главную страницу макаки. Постараюсь сегодня отписать об этом разработчикам.
Мануал пофиксили.
Не сказал бы… Теперь сайдбар слева, где меню в js_of_ocaml не работает.
Там про макаку написано «Depends on PG'Ocaml» значит ли это, что она умеет только в постгре?
Посмотрел readme и код, похоже, что да, только с постгресом.
Как фану функциональщины и OCaml в частости, хотелось бы подробнее про что-то! Хотя бы хеллоу ворлд и простейшее заполненение/отправка формы, обращение к БД.
Всё будет :) Сейчас разберусь с одним багом, допортирую кусок кода и обязательно напишу отдельно.
Хорошее знание OCaml для использования предполагается? Или можно синтаксис изучить и ваять «бложик»? :)
Да легко. Единственное что, с типизацией периодически потрахаться приходится. Окамл же очень строгий и на все попытки implicit type cast'ов смотрит как на сами знаете что. Поэтому, например, есть «строка» — нативный тип string, есть pcdata «строка» — автоматически экранируемая строка, которую (и только которую) можно засунуть в DOM, а есть Js.string «строка» — которую можно скормить в вызов клиентского ява-скрипта (ну, например, в функцию alert).
А так всё просто :)
Здорово! Тогда ждём «туториала». :)
Ну и где ссылка на вращающуюся землю?
Недавно анонсировали похожий проект — Opa, даже писали о нем на Хабре. Есть ряд отличий — у них специализированный для веба язык, интегрированная база данных и вебсервер. Но в целом ощущение остается таким же — декларативный код с pattern matching — для вебразработки вполне удобно. Молодцы.

Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров. Исключением можно назвать разве что CoffeeScript. Он обходит все скользкие моменты JS и производит вполне дебагоспособный код, проходящий все проверки на «вшивость» — JSLint, es5 strict mode.

Если б я создавал язык для компиляции в JS сегодня, я бы не заморачивался и стал бы компилировать в CoffeeScript, а результат — уже в JS.
НЛО прилетело и опубликовало эту надпись здесь
Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров.

Тут надо понимать, что возможность вставки нативного js на страницу (и вызова своих js-функций) для реализации чисто клиентского функционала, например, всяких выпадающих менюшек, никто не отбирает. Всё это есть. А вот когда человек пишет какую клиентскую часть, которая связана с сервером — например, какую-нибудь подгрузку контента в бокс при клике по табу, или даже клиентскую валидацию вводимых данных, то это гораздо удобнее сделать на родном языке.
Вот, кстати, валидация хороший пример. Обычно, для какого-нибудь e-mail'а или пароля делают функцию-валидатор на js для пользователя, а потом (пользователь может ведь js и обойти) ещё одну функцию на PHP/C#/Perl/C++/другом-серверном-языке. И при изменении чего-нибудь (ну, например, решили теперь минимальную длину пароля увеличить), функцию надо менять в двух местах. Здесь же мы пишем одну функцию, правим её в одном месте, а вызываем как с клиента, так и с сервера.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации