2009-05-23

The JavaScript Trap

Столлман написал программный документ про несвободный javascript.

Аналитики с ЛОРа™ тут же записали его в маразматики и сумасшедшие &mdash что, впрочем, делается ими с завидной регулярностью по любому поводу.

А проблема-то имеет место быть. Столлман, конечно, говорит о свободе — и "простому человеку" это непонятно. Для понятности — первым делом после лишения свободы вас лишают возможностей и удобства использования. И чем больше используется Javascript, тем неудобств больше. И неработающая навигационная менюшка на JS — это ещё не самое страшное.

Вот, например, у того же flowplayer (проигрыватель flash video) JS API зачем-то форсирует перегрузку swf — зачем? Он же как-то мистически обрабатывает амперсанды в урлах — как исправить? files.mail.ru зачем-то устраивает десятисекундное ожидание перед показом ссылок на файлы — с какой целью? torrents.ru что-то невзлюбил мой iceweasel и перестал показывать скриншоты — что случилось?

А дальше будет только хуже — последние тенценции такие, что "активный контент" пихают куда надо и куда не надо. В результате то, что делалось на "чистом" HTML (ссылки, меню, картинки, кнопки, формы) — превращается в вёбдванольные чудеса со всеми новейшими технологиями. "Активный контент" прёт по всем направлениям, а пользователям предлагается расслабиться и запускать всё, что присылают — и ежели оно не запускается, не работает или делает не то чего надо пользователю — это проблема пользователя.

Считать эту ситуацию непоправимой ("куда ты денешься, ничего не поделать" и пр.) — ошибочно. Технология уже вся есть — у Столлмана упомянуты плагины к Firefox-у NoScript и GreaseMonkey. И тем, и другим я пользуюсь достаточно давно — даже не из соображений свободы, а просто для своего удобства.

NoScript позволяет отказаться от использования предлагаемых скриптов, флешек и различных апплетов (для 90% сайтов после такого отказа ничего плохого кроме хорошего не происходит). GreaseMonkey позволяет использовать свои собственные скрипты (на http://userscripts.org/ тысячи уже готовых для всех популярных сайтов).

При желании написать свой скриптик - вовсе нетрудно. Базовых знаний JS вполне хватит, знание XPath/XQuery работу ещё облегчит. Нет ни того ни другого — тоже не беда, в хорошей книжке Dive Into Greasemonkey раскрыты почти все популярные трюки с примерами. Вот пара штук моего авторства (из тех, что могут кому-то кроме меня пригодиться).

Если идея вам понравилась, но готовых скриптов для любимого сайта не нашлось и разбираться нет времени — дайте знать. Google Docs я вам не напишу, но пятнадцати минут чтобы "тут убрать, это переместить, а тут добавить розовенького" - для хорошего человека не жалко ;-)

2 comments:

morbo said...

Основные претензии на ЛОРе в основном сводятся к тому, что текст лицензии для некоторых мелких скриптов великоват. Некоторые пожелали возможность просто разместить ссылку на текст лицензии.

Noscript тоже пользуюсь. О Greasemonkey слышал довольно часто, но интереса узнать что это такое не возникало. Спасибо за наводку, заинтересовался.

vnaum said...

А Столлман хочет лицензий не для всего подряд, а для nontrivial. И определение nontrivial там есть:
Our proposal is to consider a JavaScript program nontrivial if it defines methods and either loads an external script or is loaded as one, or if it makes an AJAX request.
Что же до килобайта текста с лицензией - то оно уже и сейчас заметно только в самых сложных случаях (см. gprs).

Subscribe / RSS