AKS
User-
Posts
297 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by AKS
-
Подскажите, где там я смогу найти подтверждение ваших слов о том, что у Крокфорда информация устарела? Вопрос риторический, поскольку я интересовался "где ваше все" на предмет доказательства некоторых утверждений. Идите по стопам Matt Kruse?а: и используйте, как и было задумано, jQuery. Ведь теперь, когда Вы прочли на comp . lang . javascript о ней много нового, Вам известно, на что можно рассчитывать, а также на что не стоит надеяться.
-
Я не обиделся ? просто решил до поры, до времени (ну мало ли, может хорошо попросят) не заниматься, как Вы назвали, неблагодарным делом. А проигнорированы были действительно светлые намерения. Вам нужен визуальный ряд для сравнения? В противном случае Вы так и будете твердить: "На безрыбье и рак - рыба", или "За неимением горничной трахают дворника"? И что, я должен вдребезги разбиться, но отыскать для Вас презент? Уже ведь было написано, что их или нет, или лежат там, где лежат, не "высовываясь". Все равно не стоит проецировать на окружающих. При том, что про себя как-то забываете. Вот взять пример с Крокфордом. Вы просто треплетесь: "Информация у Крокфорда уже несколько устарела", "Констатация факта". Сами-то обвиняете других: Ничего, да? А где ваше все? И взять Zeroglif?а, у которого сказано-сделано . Сказал, что не совсем прав Крокфорд ? обосновал. Так кто треплется? Ответ - я и Вы за мной туда же. Значит замечания по поводу болтовни пусть нам делает кое-кто другой, а Вы пока забудьте. Одним предложением да еще и в соответствии? Джон уже попробовал ? и что из этого вышло? А вышла клоунада, и над ним теперь потешаются все участники comp . lang . javascript. Так что выбирайте ? или одним предложением, или в соответствии с дейсвительностью (т.е. со спецификацией). Какая бы она ни была (короткая/длинная) ? она должна быть правдивой. Его формулировка даже рядом не лежала с правдой. Вообще!!! И что в результате "отложится" в голове? Так не надо этого делать! Кто сказал, что это допустимо? Вам мало горького опыта Джона? И чему будет учить ваша книга? Тому, как сделать неправильно? Итак все жалуются, что нет хороших книг по js, а тут Вы еще с Джоном на пару, и со своим, только Вам понятным, допуском брака. Бардак в итоге получается - пишут все, кому не лень, и пишут как попало, позволяя себе все, что угодно, называя эти вольности хитрым словом "допущения". Простите, но он целую книгу написал (и теперь продает ее людям). Это Вам не презентация. Мог бы написать, что оператор сравнения, имея в качестве операндов подобные значения, вернет истину, а за подробностями (типа почему да как?) отправить в сответствующий раздел спецификации. А так можно сделать вывод, что человек набросал книгу по наитию при отсутствии понимания. Именно поэтому сейчас над ним смеются, цитируя его крылатые фразы (со знаком минус) из книги. Что написано пером - не вырубишь топором. Как Вы сами писали: "Назвался груздем ? полезай в кузов". От себя добавлю: "Взялся за гуж ? не говори, что не дюж". С другой стороны, ведь никто же не заставляет писать книги или устраивать презентации. Не получается ? не надо этого делать. Я, кстати, думаю, что никто бы там Джона лично не задевал, но ведь он сам лезет без мыла, как говорится. Естественно получает советы: "Разгреби сначала свой мусор, а потом уж к нам". Ну смешно же ? он суется со своим: "Да вот, вот она, моя правка опечаток, посмотрите по ссылке!", а ему в ответ что-то, типа: "Да какие там к черту опечатки! Вся книга ? это одна большая опечатка!".
-
Ну почему же ерундой? Он книжку продает. "не доверяйте js ничего" надо переписать, как "не доверяйте js никому". Ну-у-у, не надо отчаиваться!
-
Ну-ну: Ни с того, ни с сего записали меня в тестеры, да еще и посоветовали привыкать к неблагодарной работе. Думаю, что не только у меня отпало желание помогать Вам после прочтения той темы. У Вас галлюцинации что-ли? Белые фраки, дерьмо...
-
Так о чем речь-то шла с самого начала? Я специально сослался на David Mark?a, как на опытного человека. Улавливаете смысл? Т.е. с одной стороны - есть действительно начинающий разработчик, который может сколь угодно долго бродить с закрытыми глазами. А с другой стороны - есть опытный человек (если что, то я не себя имею ввиду), который, как Вы сами убедились, основательно доказывает что и чего стоит в мире js-библиотек. Почему бы первому не прислушаться ко второму? Я со своей стороны сделал все, что cмог ? предложил информативные ссылки и цитаты. И я, откровенно говоря, немало удивлен, что народ не восприимчев к подобным сведениям. А какая разница, в чем проблема? Проблем может быть масса. Может быть у компании серьезные проблемы с бюджетом, которые не позволяют нанять специалистов должного уровня. Может быть руководство компании напрочь лишено стратегического видения, или просто не строит долгосрочных планов, и в конечном счете отпадает необходимость в серьезном отношении к производимому продукту. Может быть компания изначально позиционируется как производитель низкопробной продукции, и, следовательно, использует в работе компоненты соответствующего качества. И т.д. Но это ведь не обсуждается, и, как мне кажется, это было бы не этично. Речь о js-библиотеках низкого сорта. И даже никто не пытается кого-либо упрекнуть в том, что он использует эти библиотеки. Понимаете? Разговор только о библиотеках и об их качестве. Использовать или нет ? личное дело. Вы все о своем, ну а я о своем - не вижу ничего плохого в том, чтобы называть вещи своими именами. Кстати, если не следите за обсуждением, ссылку на которое я давал ранее, то загляните обязательно. John Resig уже настолько всех достал, что мужчины начали в подписях цитировать различные глупости из его книги (или статей). Почитайте эти цитаты и подумайте ? допустимо ли (т.е. хорошо или плохо) подобную писанину предлагать за деньги под лейблом "Pro JavaScript Techniques". Лично мне понравилась вот эта выдержка:
-
Чтобы никто не наступал на одни и те же грабли, я процитирую одного эрудита, ответившего примерно в такой же ситуации такому же, как Вы: На почве каких (чьих) утверждений родился этот вопрос? Что Вы имели ввиду, написав "раскритиковать"?
-
Ну неужели так трудно понять, о чем речь? Что ж, не доверяя чьей-либо проницательности, объясняю. Вы написали со свойственной Вам самоуверенностью, что: Т.е. Вы считаете, что js знают все. Я Вас спросил: Почему Richard Cornford? Потому, что это была его фраза о незнающих людях. Почему надо подумать о том, к какой категории он нас отнесет? А потому, что Вы взялись оспаривать именно его утверждения. Вот и все! Укажите другие бессмыслицы. Вы в своем уме? Какой код Вам нужен? Я же Вам толкую, что js-библиотеки ? это утопия! Вы же просите, не смотря ни на что, какой-то код. А если желаете спецификации, то возьмите за основу то, что я выделил жирным шрифтом в характеристике prototype.js (см. ранее адресованное Вам сообщение). Вы почему не ответили на мой вопрос: ? Каким образом это относится к вопросу о js-библиотеках? Да и какое ваше дело ? треплюсь я или помалкиваю? Мне не нужно для этого вашего разрешения ? это публичный форум. А треп в большей степени исходит от Вас. Если я берусь за критику, то у меня есть аргументы. Что есть у Вас, кроме первобытного желания оказать давление на собеседника любым способом? В данном контексте это абсурд! Рассчитывать на то, что критик js-библиотеки сядет и напишет альтернативный вариант - это просто ребячество!
-
[applause] [/applause]
-
Здесь нет никакого преувеличения! Эта строка предназначалась для демонстрации того, что не Вы должны использовать ненужные выражения, а jquery.js уже завязана (по уши, по самое нехочу) на этих самых ненужных выражениях. Дело в том, что jquery.js использует объектно-ориентированный подход ? есть конструктор jQuery, и на каждый чих (т.е. вызов безликой функции $) создаются экземпляры этого конструктора. Тут, кстати, самое время вспомнить о мусоре ? только на этот раз речь идет о реальном мусоре в памяти, которым щедро снабжает ее эта библиотека благодаря своему бездарному дизайну, создавая и создавая где надо и где не надо экземпляры конструктора. Так вот, возвращаясь к объектной модели ? этой модели для библиотеки оказалось недостаточно. Она также щедро мусорит, создавая DOM объектам expando properties для хранения каких-либо js-значений. Что я в этом вижу плохого? А то, что для достижения цели используются любые, а точнее сказать, какие попало способы. Впечатление такое, что концепция отсутствует, а решения принимаются на ходу (а там ждут bug reports, и снова какое попало решение до следующего bug report ? замкрутый круг). Значит Вы так и не прочли то, что я предлагал. Там (где чужие выводы и высказывания) описано достаточно дефектов. Или Вам этого мало? Мне от Вас ничего не нужно. Вы сами-то на что рассчитывали, когда взялись за проповедь "Возлюби js-библиотеки такими, какие они есть"? Да не по видимому, а так оно и есть. Только мое уважение к трудящимся не может послужить мне амортизатором в случае, когда я сталкиваюсь с плохим качеством. Вам не достаточно их выводов? Вы хотите большего? Или Вам что-то неясно? Вобщем-то я готов Вам помочь, хотя я искренне надеялся, что написано уже довольно много, и Вы сумеете с этим разобраться. История с сантехником ? это не более, чем риторический троп, к тому же заключенный в жесткий [full offtop]. Так я надеялся донести до Вас простую идею ? при всем уважении к труду не стоит скрывать свое отношение к результату. Хотелось бы все же в первую очередь узнать о фактах, опровергающих заявления "js-библиотеки ? дилетантский мусор". Ваши спонтанные воспоминания безусловно интересны, но может было бы уместней создать для них отдельную тему? Вы совсем не уловили подтекст этого высказывания. Я помогу Вам. Итак, было: Т.е. получается так, что таких людей нет ? сейчас все знают js, правильно? А сейчас подумайте еще раз, что я имел ввиду, ответив ему той фразой... Ну а теперь, когда у Вас было время подумать, скажите - моя сентенция видится совсем в ином свете, не так ли? Не уверен, что понял правильно. Еще раз, пожалуйста, подробней, если можно, и с поправкой к безотносительности.
-
Да нормальная тема ? интересно проводим свободное время. Я, кстати, теперь буду ставить Вас в пример, цитируя: То же самое испытывают все, когда (как говорят мужики, играя в домино) "лепят горбатого". Только не все хотят признаваться, что чувствуют тоже самое, начиная придумывать оправдания, вроде: "Это не я плохой - жизнь плохая".
-
Я надеялся, что Вы, перефразировав, уловите смысл. Да хоть к какой, господи! Вот, тот же David Mark уже сегодня о prototype.js (я выделил грубейшие, на мой взгляд, ошибки): Далее добавляет: (ценные подробности ? по ссылке выше). Да поймите Вы наконец ? для того, чтобы я что-то написал мне не требуется разрешения/напутствия/благословения. Все, что бывает необходимо ? это помощь, конструктивная критика и т.п., но никак не команда "На старт! Внимание! Марш!" Вам что, мало тех самоуверенных и кичливых авторов библиотек, которые уже размножились в огромном количестве, как тараканы? Вынужден Вас разочаровать ? я не из их породы и присоединиться к ним не могу. Будьте уверены ? он жив и здравствует. А если Вы прочтете его статью Javascript Closures то Вы тоже, как и я, сумеете проникнуться уважением к этому человеку. Ну давайте...
-
Могу ответить цитатой (опять же) Samuel Johnson'а: Думаю, что Вы сами сумеете перефразировать и понять суть. ??? Я ведь написал: Иными словами jQuery === deadline. Если безразлично, то не давайте оценок ? ерунда/не ерунда (пусть будет действительно безразлично ? не принимайте во внимание и не используйте в беседе). Ага. Т.е. контраст такой ? у Крокфорда устарело, а вот библиотеки (возможно и какие-либо ваши труды?) являются источником свежих идей и инноваций? Что за надменность, а? Ну даже если я и треплюсь, то делаю я это на форуме, а не в вашем офисе, мешая Вам и вашим коллегам работать, так ведь? Если пустой выхлоп, то "меньше трепаться, больше делать" касается Вас в первую очередь.
-
А как Вы думаете, к какой категории Richard Cornford отнесет нас с Вами - к знающим или незнающим? Следовательно, как может быть охарактеризована наша "писанина" на js? Только постарайтесь ответить без пренебрежения, как в случае Douglas Crockford?ом, когда Вы мне писали, что "Информация у Крокфорда уже несколько устарела". И эта фраза, и практически все ваше сообщение, чрезвычайно расплывчаты. Вы к кому обращаетесь, а главное ? с чем?
-
В первую очередь конструктивная критика касается ошибок в проектировании (как следствие отсутствия компетентности), которые уже никогда и никак не исправить. Вставьте в свой код, использующий jquery.js, вот эту строку: document.expando = false; и откройте документ в Internet Explorer. Имеет ли смысл писать о том, что Вам нравится, или какие у Вас возникают предположения? Дело в том, что, испытывая острую потребность отреагировать на критику, Вы не можете ровным счетом ничего ответить по существу. Ваши абстрактные ассоциации с добром и злом (или же с какими-то сферами деятельности человека) не являются источником для каких-либо аргументов в данном случае. Лично мне не надо рассказывать о том, что нужно уважать чужой труд - я знаю об этом! Подобные нравоучения обобщенного характера имеет смысл преподнести учащимся начальных классов в школе. Я ведь не случайно берусь цитировать тех, кого можно называть js-гуру. Именно их выводы пригодны для формирования общественного мнения, но никак не наши с вашими рассуждения о том, что такое хорошо, а что такое плохо и проч. [full offtop] Поскольку я убедился в том, что Вам нравится устанавливать связь между различными понятиями/представлениями/областями жизнедеятельности, я предлагаю Вам такой пример (из моей жизни). Мои домашние вызывают сантехника заменить кран в стояке. Сантехник приходит на веселе, долго пытается открутить кран, в результате падает, собрав в кучу все табуретки на кухне. Затем он просит меня помочь, и я, взяв его инструмент, откручиваю кран. На место старого он ставит кран б/у, который хоть и отличается от прежнего тем, что им можно перекрыть воду, но вот открывать его нужно определенно до конца - иначе он будет течь. Как Вам такая работа? Насколько я должен проникнуться уважением к такому работнику? А может я был не прав, когда высказал ему все, что о нем думаю на повышенных тонах? [/full offtop]
-
Не вините себя в этом, Вы - нипричем. Вы напрасно расстраиваетесь ? та фраза к Вам не относится. Вы, даже при всем своем желании, не смогли бы навязать миру jQuery. Извиняюсь, если не четко высказал свои соображения. По отношению к Вам я лишь проявил сочувствие (см. мое первое сообщение). Вы совершенно правы в том, что это только предположение. Чистота и компактность ? это, как говорится, дело хозяйское. Только здесь речь совсем о другом.
-
Я уже Вам написал, что это ваше личное дело. Если с чем-то не согласны ? ради бога, доказывайте обратное. Вот Вам прямая ссылка на обсуждение js-библиотек (жду там ваших замечаний по сути дела). Это означает лишь то, что нет никаких гарантий качества. Вот, к примеру, что пишет один автор о своем детище: Не буду Вам мешать наслаждаться их замечательной продукцией. Вы зачем мне об этом сообщаете? В этой теме я прокомментировал следующее: вот таким образом: Вы мне пытаетесь доказать, что этот факт у меня должен вызывать положительные эмоции? Если да, то пожалуйста, давайте без софистики, а по существу. И напоминаю Вам, что речь идет о программировании, а не о продажах и прочем оффтопе. Вы не обижайтесь, но убеждения убеждениям - рознь. Одни имеют какую-то ценность, другие - нет. Примерно в такой же ситуации Richard Cornford написал фразу, ставшую впоследстии крылатой: А вот еще одна замечательная фраза Ричарда по теме (полюбившаяся Zeroglif?у, в его вольном переводе):
-
Вы выглядите обиженным на то, что полюбившейся Вам библиотеке не отдают должного, как Вам кажется, внимания. В таком случае я ничем не могу Вам помочь, разве что советом не принимать все близко к сердцу. Вы сначала почитайте ссылки на обсуждение jquery, которые я давал. А уж потом делайте выводы о том, кто, и что, и в кого швыряет. Это ваше полное право. Можно слепо верить во что-то, любить и быть преданным, а можно взять и открыть глаза. Для начала хотя бы поймите, что нет стандартных библиотек для js. Это как раз зеркальное отражение происходящего. Сеть превращена в огромную свалку мусора, и чтобы откопать в ней действительно ценную информацию придется немало потрудиться. Представьте, что меня интересуют какие-нибудь аспекты prototype-based программирования. Я наивно набираю в строке поиска слово prototype, и что я вижу? Дело в том, что все эти библиотеки буквально валяются под ногами благодаря тому, что кое-кто преуспел в таких сферах, как marketing, advertising, sales-promotion, distribution и т.д, но никак не в программировании.
-
Странный пример. Вы бы еще вспомнили про связку Windows/Internet Explorer. Тут уж пусть каждый для себя сам делает выводы. Да никто этого не делает - с чего Вы взяли?
-
Не-а, наоборот - полезно! Можно узнать много нового.
-
Тогда поспорьте с Дэвидом - у него всегда достаточно разумных аргументов в защиту своей позиции (помните цитату по поводу jquery.js?). Может быть Вы имели ввиду "идеалистов"? В противном случае, ваша попытка поиграть в прятки с идеологией разработки софта может сказаться печальным образом в первую очередь на Вас.
-
Да, печальный факт. Я как раз вчера читал то, как David Mark констатировал происходящее в разработке, подобное этому случаю. Вот мой вольный перевод его псевдо-руководства: 1. Загрузите prototoype.js, jquery.js или любой другой дилетантский мусор с различными дополнениями. 2. Напишите виджет, используя синтаксис библиотеки, с такими же (обычно бесполезными) проверками особенностей окружения. 3. Разместите на странице, которая использует виджет, предупреждение: "Лучше всего страница выглядит в трех или четырех современных браузерах". 4. Загружайте патчи для библиотеки, пренебрегая тем фактом, что авторы библиотек никогда не сделают их правильно. 5. Загрузите виджет в специфичное для библиотеки хранилище, чтобы другие такие же заблудшие разработчики могли с его помощью ломать свои сайты. 6. Тем, кто брюзжит по этому поводу, скажите, что они далеки от "реального мира" (в котором, очевидно, люди не используют мобильных устройств, STB/STU или просто каких-то необычных браузеров). 7. Уговаривайте остальных использовать такой подход, поскольку код виджета получается таким простым и компактным (не обращая внимание на то, что он тянет за собой ~150K и чреват катастрофическими ошибками).
-
Каким образом указанная вами ссылка подтверждает факт существования отдельного Variable Object для глобальных переменных? Лично я там увидел такие функции, как ComputeGlobalThis, ComputeThis, js_ComputeThis. ComputeGlobalThis, например, получая в качестве параметров cx (JSContext, объект, который в данном случае интересен тем, что имеет указатель на Global Object) и непосредственно argv (jsval ? какое-либо javascript?овое значение), пытается получить значение "parent" для js-значения и сравнить его со значением, хранящимся в cx->globalObject. Там ведь даже есть пример, который демонстрирует то, что может стать причиной вызова этий функций. Я Вам предлагаю еще один пример (работает в JavaScirpt , где есть св-во __parent__): /** * @param {Object} aWindow Reference to the current Window object */ function F(aWindow) { if (typeof aWindow == 'object') { alert(F.__parent__ === aWindow); }; }; Причем здесь отношения между Variable Object и Global Object? Если решили покопаться в исходниках, то начните с JS GetGlobalObject - там черным по белому написано: Давайте-ка я Вам кое-что напомню. Я заявил, что в случае zebra = function () {}; Что непонятно в первом предложении? Если в вышеупомянутом скриптовом выражении операнд слева называется undeclared variable, то как можно одновременно называть этот процесс объявлением переменной? Объявление необъявленной переменной (declare undeclared variable)? Нет уж, давайте так - undeclared значит undeclared, и этим все сказано! Со вторым предложением в моем заявлении все, конечно, несколько сложнее. Мое мнение в данном случае вступает в противоречие с привычным представлением переменных. Вы именно за этот факт уцепились, как утопающий за соломинку. Вам вдруг показалось, что я не осознаю, что переменные становятся свойствами. Однако, я прекрасно понимаю, что переменные становятся именованными св-вами Variable Object. Но их не принято называть свойствами Variable Object. Одна из причин - Variable Object на самом деле является абстрактной сущностью с точки зрения ECMAScript Language Specification. Вот что он из себя представляет со слов ECMAScript-гуру: А в случае с глобальными переменными понимание происходящего затрудняет еще и то, что в качестве Variable Object используется непосредственно Global Object. И тут действительно может возникнуть полная неразбериха. Ведь что получается ? все переменные можно называть свойствами Global Object, и наоборот ? все свойства Global Object (в том числе и every Native Object) можно называть глобальными переменными. Разобраться в этом может помочь спецификация. Почему мы не называем, к примеру, Object, переменной? Да потому, что в спецификации для этой функции есть достаточно точное, полностью соответствующее ее предназначению определение. То же самое и в случае с переменными (variables) ? не надо ничего придумывать, ведь дано определение, есть описание: Попадает ли zebra под это описание. Мне кажется, что нет. Создание свойства глобального объекта zebra больше похоже на то, что присходит, как в случае window.zebra = что_нибудь;, или какой_нибудь_другой_объект.zebra = что_нибудь; Как правило, именно сравнение того, что происходит может помочь разобраться. А ваше желание дать описание, "абстрагируясь от алгоритма работы интерпретатора", наоборот, может лишь все усложнить. Вообще, когда процессору необходимо выполнить какие-либо инструкции (а программист в этом случае видит какие-то ключевые слова языка, к примеру var), то и тот, и другой должны знать - для чего инструкци предназначены, какая последовательность действий должна быть выполнена, и каким должен быть результат. Позволю себе еще один пример из JavaScript 1.5 (SpiderMonkey): const a = 1; // => created with attributes { DontDelete, ReadOnly }. var b = 1; // => created with attributes { DontDelete }. c = 1; // => created with empty attributes. Из примера видно, что 1. директива conts позволяет создать константу, доступную только для чтения. Потытки записи/удаления потерпят неудачу; 2. директива var позволяет создать переменную, доступную для чтения/записи, но не для удаления; 3. неквалифицированная переменная (или иными словами, черт знает что), несмотря ни на что, станет свойством глобального объекта в момент операции присвоения значения, получит пустые атрибуты, и будет доступна для чтения/записи/удаления (как и полагается свойствам объектов, создаваемых "ручками"). Все три варианта имеют свои отличительные черты. Первый и второй подразумевают создание константы и переменной на нулевой строке кода (как выражается Zeroglif), т.е. они создаются до начала выполнения программы (или функции). Они имеют необходимые атрибуты, чтобы полностью соответствовать статусу, определяемому ключевыми словами. То, что присходит в третьем случае, я уже охарактеризовал, и могу добавить, что к первым двум это точно не имеет никакого отношения. Я могу, конечно же, ошибаться, но моему пониманию гораздо ближе фомулировка Zeroglif?а:
-
Так ведь непонятно - то ли для Вас этот вопрос решен, то ли Вы потеряли к нему всякий интерес. WingedFox сделал предложения, а от Вас - ни ответа, ни привета, как говорится. Остается гадать - то ли помог он Вам, то ли нет, и нужно ли что-то еще...
-
Вас вводит в заблуждение тот факт, что global object одновременно используется и как variable object? Так ведь Вас предупреждали, что он особенный, уникальный: Есть еще, к примеру, Variable statement (п. 12.2), и понятный синтаксис (не всем, конечно, он понятен, но надо пытаться): По-моему уже более, чем достаточно, и ваших "абстракций". Вы в очередной раз садитесь в лужу. Вы внимательно читали пункт, на который ссылаетесь? Если да, то почему не смогли понять? Попробую помочь Вам в очередной раз. Итак, Вы задали вопрос: В описании создания переменных сказано следующее (фрагменты): Ну и тривиальный пример для закрепления знаний: alert(a); //=> variable is defined, its initial value is undefined alert(b); //=> error, b is not defined var a = 1; b = 2;
-
Рад стараться. Пишу-то для всех, а для этого "гонщика", который заявляет о себе, что он "ездит, и достигает результатов", в отличие от тех, у кого нет шансов.