Я писал про ScriptJava - библиотеку, аналогичную jQuery.
Собственно, комментарий к тому посту и заставил меня "снова взяться за перо". В частности, рассмотреть эту библиотеку более подробно. Рассматривать я решил с позиции практической применимости.
Итак, что у нас в основном делается на jQuery? Если "без особых наворотов", то простенькие визуальные эффекты - меню, слайдеры, ротаторы и т.д. Также на jQuery реализуются такие вещи, как Ajax. Оговорюсь - все то же самое можно сделать и на "чистом" JavaScript. Только дольше, потому что кода писать больше. Очевидно, что JS frameworks, типа jQuery и ScriptJava берут на себя часть работы, скрывая некоторые вещи JavaScript за определенным уровнем абстракции.
Сразу же оговорюсь: лично я не считаю размер фреймворка решающим фактором, при современных каналах и вычислительных мощностях что 20, что 200 Кб практически незаметны. Это я к тому, что размер ScriptJava по отношению к jQuery для меня не является преимуществом.
Итак, к делу.
Что умеет ScriptJava по сравнению с JQuery? Попробуем свести "типовые" задчи в таблицу и разобраться - работает или нет.
№ | Задача | jQuery | ScriptJava |
1 | Ajax | да | да |
2 | Динамическое изменение атрибутов (класса, тега, id) | да | да |
3 | Получение JS элемента | да | да |
4 | Поддержка событий (обработчики событий элемента) | да | да |
5 | Плагины | да | нет |
Какие выводы? При помощи задач №2,3 и №4 можно "слепить" простые (но работоспособные) менюшки; на сайте ScriptJava есть пример кода ротатора изображений. То есть "первые задачи" (те, что встречаются "в лоб" - сделать меню, сделать ротатор изображений, подгрузить Ajax'ом результат работы скрипта) ScriptJava решает.
Тогда вопрос - почему разработчики повально не используют ScriptJava? Как мне кажется, причин две. Первая - в том, что проект развивается достаточно медленно (я об этом уже писал; среднее время выхода новой версии - полгода), это же следствие того, что проект, судя по всему, поддерживается одним человеком (комьюнити вокруг него я не заметил). Вторая причина - в том, что ScriptJava "в лоб" не поддерживает плагины, то есть вокруг него нет пула решений, которые бы позволили "взять-и-работать". Например, на jQuery есть масса плагинов, которые могут, например, из списка сделать меню (причем - разные: от "аккордеона" до "классического"), могут реализовать ротатор (несколькими способами с эффектами на выбор), могут "закрепить" элемент при прокрутке и т.д.
Лично я, сознаюсь честно - особенно в силу первой причины (отсутствие поддержки сообщества) плотно "сижу" на jQuery. То есть, везде, где необходимо использую именно эту библиотеку. Но, тем не менее, искренне желаю автору ScriptJava "обрасти" сообществом и пройти "точку эффекта снежного кома", что позволит дать независимым разработчикам уверенность в том, что они, в случае чего, не останутся "один на один" с исходным кодом...