Pull to refresh

Comments 16

Нет, похоже, что они все ведут на главную страницу макаки. Постараюсь сегодня отписать об этом разработчикам.
Не сказал бы… Теперь сайдбар слева, где меню в 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.
UFO just landed and posted this here
Единственное, с чем я не согласен, так это с попыткой заменить JavaScript на что-то другое. В реальной жизни такие идеи не срабатывают, т.к. создатели своих языков не достаточно полно учитывают специфику JS и браузеров.

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

Articles