понедельник, 29 сентября 2008 г.

JavaScript. Начинаю разбираться

В знаменитой Lama book (Рэндалл Шварц, Том Кристиансен "Изучаем Perl") написано, что программировать на Perl без ключика "-w" (разрешить предупреждающие сообщения) будет только сумашедший. Также настоятельно рекомендуется использовать прагму "use strict" для запрещения использования "небезопасных" конструкций. Так вот, в JavaScript ничего этого нет! Программирование превращается в увлекательное балансирование на троссе над бездной ошибок. Тут нужно внутреннее чутье, которое наверное приходит с опытом, для быстрого написания работающих программ.

Пока не понял для чего нужно ключевое слово var. Неописанные переменные работают так же хорошо. Опечатка в имени переменной не приводит к дурацким сообщениям интерпретатора.

Очень изящно реализовано единство противоположностей для элементарных типов: строка, число или булево значение могут быть как литералом, так и объектом, причем в некоторых случаях их поведение в разных ипостасях различно (например eval() не работает со строковыми объектами). С другой стороны литералы работают как объекты (кто бы мог подумать!), так что 'Test'.length - вполне законная конструкция. Это добавляет в жизнь остроту ощущений.

Неявное приведение типов доведено до совершенства. Даже пришлось вводить дополнительно два оператора сравнения.

Имеется три различных способа создания (или описания?) функций. Класс!

Язык имеет множество способов для написания самомодифицирующегося кода от примитивного eval() до функций, изменяющих свое поведение от вызова к вызову. Чего уж говорить об изменении методов объектов, добавлении или удалении свойств и методов на лету вплоть до базового объекта Object. Пожалуй JavaScript наиболее подходящий инструмент для написания программ имитации поведения человека.

В общем язык мне понемногу начинает нравиться. С ним не соскучишься...

суббота, 13 сентября 2008 г.

JavaScript. Первые шаги

В один прекрасный день я все-таки серьезно решил освоить JavaScript. Я в общем-то и раньше немного баловался написанием скриптов для веба, ну или по крайней мере мог разобраться в чужом скрипте. Так что документация по JavaScript от Netscape или по JScript от Microsoft мне была уже не в новинку. Но одно дело разобраться в чужом скрипте и, при необходимости, приспособить его под свои нужды, а другое - самому написать что-либо нетривиальное с нуля. А тут еще и Adobe встроил в свои приложения поддержку JavaScript... И, как выяснилось, сам Microsoft снизошел до поддержки JavaScript в своем script host... В общем, "надо ехать...", в смысле учить.

После недолгих поисков в Интернете, я обзавелся некоторым инструментарием для написания, а главное, для отладки программ на JavaScript и кой-какой документацией. Особенно мне понравилась книга "Object-Oriented JavaScript" Stoyan Stefanov. Толково написано, гадом буду. Еще мне существенно помогли войти в курс дела лекции с http://www.intuit.ru/department/internet/jsbasics/ (это на русском). Документация от Microsoft по JS - обширная, но мне попадалась только в он-лайн варианте (что не всегда удобно), и она не подразумевает обучения. Это только справочник. К тому же JScript несколько отличается от JavaScript...

Короче говоря, немного экипировавшись, я вдохнул побольше воздуха и нырнул в мир JavaScript.