PDA

View Full Version : А зачем нужно jQuery?



crazy-mike
08-15-2011, 07:53 PM
http://www.jquery.com/
:rofl:
Ну да - прикольный "пакет" ( внешне всё очень элегантно ). Но - целых 67 килобайт после gzip -9.
И код веб-странички становится на 67K длиннее. Это ведь не очень приятно если без использования jQuery страничка занимала не больше 13K вместе со всеми скриптами и картинками.
Фокус в том , что число ошибок при использовании "пакета" не уменьшается , а даже увеличивается за счёт некоторого "беспорядка" при передаче "тел функций" в качестве параметров для вызова jQuery. И читать такое не так уж и удобно.
А если представить - что будет с кодом при "безграмотном применении" ( поскольку использование пакета как бы провоцирует написание "самоизменяемого кода" )....В результате рекламируемых в jQuery подходов возможность существования компилятора с JavaScript у браузера становится как бы бесполезной.
:grum:
Куча дополнительных "структур данных в памяти" , усложнение "сборки мусора" , потенциальные "глюки браузеров".
Ну а основное возражение - ну зачем "имитировать наслелование" если можно использовать "контейнерные классы" и просто добавлять новые аттрибуты "стандартным" объектам ? (даже тому же XmlHttpRequest. Новые аттрибуты всё равно во время выполнения можно создать по document.createAttribute и не страдать имитацией множественного наследования "под C/++".

crazy-mike
08-16-2011, 05:10 AM
Динамическое создание таблицы стилей - это просто "напрягает" браузер. В идеале "статику документа" вообще не изменять. А динамически привязать к элементу новые свойства вообще можно просто присваиванием свойста id. Без jQuery куча всего просто делается с меньшей ресурсоёмкостью и даже более понятно - поскольку "уровень абстракций" минимизируется за счёт использования "модели представления" для конкретного приложения.
Даже XmlHttpRequest в jQuery "отражено" не совсем "аккуратно" ( хотя и по-своему удобно ). Есть например "progress notifications" в процессе выполнения AJAX-запроса. Средствами jQuery такое вообще не отображается никак. :wink1:
При желании progress notifications можно отобразить через statusCode. Но это немного неудобно.

Председатель
08-16-2011, 12:23 PM
Крези, почему не получается написать тебе в личку?

Lor
08-16-2011, 12:55 PM
А зачем нужно jQuery?

Затем, зачем и любые фрэймворки: чтобы любой малограмотный идиот мог нацарапать свой "хомяк с прибамбасами".

Вообще jQuery создавалась для кроссбраузерности, но сейчас эта проблема почти отпала.

crazy-mike
08-16-2011, 01:45 PM
Затем, зачем и любые фрэймворки: чтобы любой малограмотный идиот мог нацарапать свой "хомяк с прибамбасами".

Вообще jQuery создавалась для кроссбраузерности, но сейчас эта проблема почти отпала.
В том и всё дело , что отпала. Да и DOM API очень сильно улучшилось по сравнению с 2005м годом. :wink1:
Но почему-то куча российских девелоперских компашек условием приёма на работу считают "владение jQuery". У меня создаётся впечатление , что чем сильнее они используют jQuery тем больше глюков появляется в их проектах.

crazy-mike
08-16-2011, 01:46 PM
Крези, почему не получается написать тебе в личку?
Потому что нельзя быть красивой такой. :rofl:

Председатель
08-16-2011, 02:00 PM
Потому что нельзя быть красивой такой. :rofl:

Мне не красота нужна, поспрашать кой-чё хотел про кампютары

crazy-mike
08-16-2011, 02:02 PM
Мне не красота нужна, поспрашать кой-чё хотел про кампютары
Я не хочу о компьютерах разговаривать. Я в отпуске. :rofl:

Председатель
08-16-2011, 02:06 PM
Я не хочу о компьютерах разговаривать. Я в отпуске. :rofl:

Как долго?
Да, и тема не про их-ли?

madison_
08-16-2011, 02:06 PM
В том и всё дело , что отпала. Да DOM API очень сильно улучшилось по сравнению с 2005м годом. :wink1:
Но почему-то куча российских девелоперских компашек условием приёма на работу считают "владение jQuery". У меня создаётся впечатление , что чем сильнее они используют jQuery тем больше глюков появляется в их проектах.
В штатах тоже не мало контор требуют.

crazy-mike
08-16-2011, 02:10 PM
Как долго?
Две недели со вчерашнего понедельника. :rofl:

crazy-mike
08-16-2011, 02:12 PM
В штатах тоже не мало контор требуют.
Это как раз самое непонятное - зачем? :wink1:

Lor
08-16-2011, 02:22 PM
Это как раз самое непонятное - зачем? :wink1:Я недавно разговаривал с одним студентом МТИ, который занимается стартапами. Технология производства вебсайтов сегодня уже не такая, как было 10 лет назад, когда садился программист с дизайнером и ваяли. Сегодня берутся "бабки", заказывается в Индии 5..10 сайтов(никого не интересует на чём они там собраны), вкладываются бабки в рекламу и ... ждут. Из десяти один да и выплывет.

Поэтому клепают сейчас сайты на готовых CSM, используя готовые блоки и решения: зачем самому изобретать, если есть open-sources и всё такое?

А то, что заглавная страница сайта "весит" под мегабайт, то это инвесторов не интересует, если стартап "пошёл".

crazy-mike
08-16-2011, 02:43 PM
А то, что заглавная страница сайта "весит" под мегабайт, то это инвесторов не интересует, если стартап "пошёл".
Но если к сайту хочется лезть с телевизора или с таблетки или со смартфона?
:wink1:
А если таблетка лезет в интернет по 2G-модему? (Samsung Galaxy Tab , например ).

madison_
08-16-2011, 03:28 PM
Но если к сайту хочется лезть с телевизора или с таблетки или со смартфона?
:wink1:
А если таблетка лезет в интернет по 2G-модему? (Samsung Galaxy Tab , например ).
значит юзер лох(взгляд со стороны компании владельца сайта),
какой из галакси табов имеет модем 2ж, насколько знаю из тех которые попадались на глаза мне везде 3-4ж.

madison_
08-16-2011, 03:32 PM
Это как раз самое непонятное - зачем? :wink1:
в штатах принято все делать из полуфабрикатов, ибо быстро, о здоровье "клиента" никто не задумывается. Если ты понял о чем я.

Лешак
08-16-2011, 05:05 PM
http://www.jquery.com/

Да просто потому что есть коммьюнити подписавшаяся затачивать все закорузлости разных браузеров в один общий интерфейс и майнтейнить это дело, так что если в очередной версии IE чего нибудь полмают, то можно будет ожидать что будет достаточно просто проапдейтить jquery.

crazy-mike
08-17-2011, 12:52 AM
значит юзер лох(взгляд со стороны компании владельца сайта),
какой из галакси табов имеет модем 2ж, насколько знаю из тех которые попадались на глаза мне везде 3-4ж.
На S10 - там можно и 2G , и 3G карточку вставлять. :wink1:
У нас 3G-покрытие кончается за 5 км от областного центра. А безлимитный пакет для 2G стоит в полтора раза дешевле чем для 3G.

crazy-mike
08-17-2011, 01:00 AM
Да просто потому что есть коммьюнити подписавшаяся затачивать все закорузлости разных браузеров в один общий интерфейс и майнтейнить это дело, так что если в очередной версии IE чего нибудь полмают, то можно будет ожидать что будет достаточно просто проапдейтить jquery.
Да нет там никаких особых "заскорузлостей". Ну вместо .innerText все mozilla-подобные используют .textContent, Ну модель событий W3C , а не Microsoft Visual Basic. Кроме того - jQuery не "прячет HTML". Полностью спрятать HTML для web-странички невозможно. Всё равно останется хотя бы "пустое тело" странички. Кроме того - для "идиотски-красивого UI" давно есть XUL,
https://developer.mozilla.org/en/Introduction_to_XUL

crazy-mike
08-17-2011, 01:18 AM
в штатах принято все делать из полуфабрикатов
В России , кажется , тоже. Но с той разницей - что в России из довольно сильно устаревших полуфабрикатов (из слишком долго лежавших в холодильнике). Кроме того , они используют как бы "устаревшие методики проектирования" просто потому что так было написано в tutorials по этим "полуфабрикатам". :wink1:

Alex_3112
08-17-2011, 04:17 PM
Но почему-то куча российских девелоперских компашек условием приёма на работу считают "владение jQuery".
В нашей компании (не российской) весь front-end завязан на jQuery. Веб-программисту без jQuery у нас просто нечего делать.

crazy-mike
08-17-2011, 06:53 PM
В нашей компании (не российской) весь front-end завязан на jQuery. Веб-программисту без jQuery у нас просто нечего делать.
повторяю вопрос - почему "коммерческий" проект должен зависеть не от стандарта , а от довольно странного 67K архива ( за который вообще никто не несёт ответственности - no warranty ) , который не дают ни выигрыша в производительности , а только служит источником дополнительных ошибок? :rofl:
Кроме того - там внутри просто куча "итераторов" для обхода свойств объектов. Но всё это при желании можно делать и без jQuery. Ну а for each - это вообще statement в JavaScript ( зачем его "прятать" в метод jQuery , например? ).
Ну а ко всему прочему ведь хочется чтобы всё исполнялось как можно быстрее. В этом случае "интерпретатор" под управлением интерпретатора JavaScript является достаточно спорным решением.

madison_
08-17-2011, 08:16 PM
В России , кажется , тоже. Но с той разницей - что в России из довольно сильно устаревших полуфабрикатов (из слишком долго лежавших в холодильнике). Кроме того , они используют как бы "устаревшие методики проектирования" просто потому что так было написано в tutorials по этим "полуфабрикатам". :wink1:
пока книгу на русский переведут.... Да и если переведут, глаза сломаешь от перевода, как будто гуглем переводили или переводчик в проганье как я в балете.

crazy-mike
08-18-2011, 12:57 AM
пока книгу на русский переведут.... Да и если переведут, глаза сломаешь от перевода, как будто гуглем переводили или переводчик в проганье как я в балете.
Там и на русском довольно неплохая "типа документация" прямо на сайте jquery.com. :rofl:
Но на самом деле вполне хватает online-документации на английском. Там по крайней мере без лишнего "растекания мыслию по древу".
:wink1:
Но развернуть столько всего вокруг одного "объекта" jQuery , "методам" которого в качестве параметров передаются другие "объекты" с "анонимными функциями" в качестве "методов"....Это всё и без jQuery можно ведь делать. :grum:

Alex_3112
08-18-2011, 01:38 PM
повторяю вопрос - почему "коммерческий" проект должен зависеть не от стандарта , а от довольно странного 67K архива ( за который вообще никто не несёт ответственности - no warranty )
А за какой софт вообще кто-то несет ответственность? Все на свой страх и риск. Максимум - размер ответственности ограничивается суммой, которую клиент заплатил за продукт. И сколько мы платим за jQuery? ;)

который не дают ни выигрыша в производительности , а только служит источником дополнительных ошибок? :rofl:
Производительность клиентского браузера - редко критична, большинство готово с этим мириться. А ошибки - они есть везде, и в самописном коде тем более. Так что чтобы не плодить ошибки, мудрее вообще не писать никакого кода :)

crazy-mike
08-18-2011, 05:50 PM
. А ошибки - они есть везде, и в самописном коде тем более. :)
В "самописном коде" по крайней мере со временем точно знаешь , где эти ошибки делаешь. Но в этом jQuery....Особенно если начинаешь пробовать пользоваться их "виджетами"....:rofl: