Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Битва гигантов: AVM1 vs. AVM2. Спешите видеть! Только у нас! (http://www.flasher.ru/forum/showthread.php?t=113128)

wvxvw 02.07.2008 00:23

Если чесно, я уже потерял всякую надежду на то, что здравый смысл когда-нибудь возьмет верх =) Знаете, доказать, что Деда Мороза нету, технически не возможно, и тем не менее... Так же и с вами, на любой разумный аргумент отыскивается все больше и больше далеко идущих в своей абсурдности контраргументов. =) Но все равно, сколько бы вы ни старались, убедить в том, что междугородние поездки на самокате ни в чем не успупают электричкам у вас не получится =) И тем не менее, вы все равно будете называть самокат ультимативным средством междугороднего сообщения =)

И возвращаясь к истокам темы :D то, что вы теперь хотите от Adobe - это приделать к самокату реактивный двигатель, а то что-то он стал от электрички отставать, и вообще, семь потов сойдет, пока на другой конец города доедешь, какое там - даже на дачу съездить никаких сил нет!

iNils 02.07.2008 00:27

Цитата:

Сообщение от riden (Сообщение 749292)
По этому, речь идет только о глобальных функциях (this==undefined), а в методах - все OK.
Я прокоментирую:
Код:

function a () {
        trace (this);
}
function b(){
        trace (this);
        a();
}
new b(); // создается экземпляр класса b()

не знаю... Очевидно что функция a не относится к объекту класса b(), это только ссылка на внешнюю функцию, которая лежит на таймлайне (_level0)
Я уже писал, что все что находится вне тела класса - не копируется при создании экземпляра, а получает ссылку ...

А это прокомментируете?
Код:

function a () {
        trace (this);
}
function b () {
        trace (this);        //[object Object]
        this.c = a;
        a ();                //_level0
        this.c ();          //[object Object]
        trace (this.c == a); //true
}
new b ();

Цитата:

Сообщение от wvxvw (Сообщение 749372)
Знаете, доказать, что Деда Мороза нету, технически не возможно, и тем не менее...

Как нет? Зимой на форуме тусовался, сам видел :D

etc 02.07.2008 00:28

Цитата:

Сообщение от wvxvw (Сообщение 749372)
Если чесно, я уже потерял всякую надежду на то, что здравый смысл когда-нибудь возьмет верх =) Знаете, доказать, что Деда Мороза нету, технически не возможно, и тем не менее... Так же и с вами, на любой разумный аргумент отыскивается все больше и больше далеко идущих в своей абсурдности контраргументов. =) Но все равно, сколько бы вы ни старались, убедить в том, что междугородние поездки на самокате ни в чем не успупают электричкам у вас не получится =) И тем не менее, вы все равно будете называть самокат ультимативным средством междугороднего сообщения =)

И возвращаясь к истокам темы :D то, что вы теперь хотите от Adobe - это приделать к самокату реактивный двигатель, а то что-то он стал от электрички отставать, и вообще, семь потов сойдет, пока на другой конец города доедешь, какое там - даже на дачу съездить никаких сил нет!

Подписываюсь под каждой буквой :)
Копии своего кода я все-равно не получу, а убеждать индейца в том, что базука круче его тамагавка мне уже, честно говоря, осточертело.

chingachgoog 02.07.2008 01:07

Цитата:

Сообщение от __etc (Сообщение 749361)
А что обеспечивает инкапсуляцию, хотелось бы услышать.

По сути - только оговоренный интерфейс "черного ящика": мы знаем как и что туда кладем и знаем как и что достаем. Что происходит внутри - не важно. Вот и все, без приватов и т.п.

Цитата:

Сообщение от __etc (Сообщение 749361)
Инкапсуляция, инкапсуляция, инкапсуляция, черт вас возьми, сколько можно?

Инкапсуляция достижима и без приватности, так что вы опять не ответили на вопрос о цели приватности.

Цитата:

Сообщение от __etc (Сообщение 749361)
С потолка взяли?

Там же к ООП относят и JS - не о чем не говорит?

Цитата:

Сообщение от __etc (Сообщение 749361)
...не обеспечивает AS1 инкапсуляции, вам её самому надо реализовывать, с кучей недостатков.

Точно также надо ее самому обеспечивать в AS3.

Цитата:

Сообщение от __etc (Сообщение 749361)
Вы придираетесь к самому наличию/отсутствию кейворда «private», а не к сути такого понятия, как приватность. ... То, что у меня есть четыре колеса, вовсе не означает, что их можно назвать автомобилем.

Ровно поэтому я и спрашиваю о ЦЕЛИ приватности.

Цитата:

Сообщение от __etc (Сообщение 749361)
Что значит? Наследование как реализовали? Через очень интересное свойство __proto__, очень документированное, руками. Не простым кейвордом extends без плясок, а аж пять строчек.

Т.е. extends - это не самому реализовывать? А __proto__ - самому? И какие еще пять строчек?
А то что поначалу __proto__ был "очень документирован" - так это вина адоба, а не AS1, не так ли?

Цитата:

Сообщение от __etc (Сообщение 749361)
Инкапсуляция как реализована? Последние страниц десять с горем пополам что-то сделали, и то, такой вариант не живет с наследованием, не говоря уже о забиванием памяти одинаковыми методами, которые даже экземпляру класса не принадлежат.

Вы опять путаете инкапсуляцию с приватностью, а пока не будут оговорены ЦЕЛИ приватности - спорить тут глупо.

Цитата:

Сообщение от __etc (Сообщение 749361)
Какие? extends — нету. private — нету. Интерфейсы? А что это такое? Ничего этого нет, вы для себя это придумываете, в мозгу, мол, вот такие методы вызывать нельзя, а эти переменны трогать тоже. Язык вам тут не поможет, он не умеет сам по себе такие вещи делать.

Так я уже задал простейший вопрос - эти слова являются ОБЯЗАТЕЛЬНЫМ признаком языка ООП? Да или нет? Тогда зачем от прототипного языка требовать синтаксиса языка на классах?

Цитата:

Сообщение от __etc (Сообщение 749361)
В AS1 нет полиморфизма, он просто настолько далек от этого, что просто не знает в принципе, что это такое.

В моем коде он есть или у вас есть особое видение смысла полиморфизма?

Цитата:

Сообщение от __etc (Сообщение 749361)
И где здесь мой вариант на AS3, переписанный под AS1?

А где мой вариант переписанный под AS3?
Мой код показывает основные три принципа ООП в самом примитивном виде, не более. Просто пример.

Цитата:

Сообщение от __etc (Сообщение 749361)
Вы меня объявили в некомпетентности, не удосужовшись прочитать дальнейший текст, каким тут боком iNils? Вы не прочитали текст до конца, потом тут же пишете тоже самое и говорите, что я что-то не понимаю? Оригинально.

Не буду спорить - публика рассудит насколько "удачно" вы вплели в свой пост iNils-а.

Цитата:

Сообщение от __etc (Сообщение 749361)
Вот именно, что вам интересно. Вам нравится реализовывать ООП на коленке, это уже и так понятно.

Не исключено, что знай мы работу AVM2, то и private был бы по-другому рассмотрен.

Цитата:

Сообщение от wvxvw
И возвращаясь к истокам темы то, что вы теперь хотите от Adobe - это приделать к самокату реактивный двигатель, а то что-то он стал от электрички отставать, и вообще, семь потов сойдет, пока на другой конец города доедешь, какое там - даже на дачу съездить никаких сил нет!

Электричка и самокат - это AVM1 и AVM2, так?
От адоба бы хотелось как минимум раскрыть все возможности самоката (сознательно им прикрытые).
Как максимум - сделать такую электричку, чтобы на ней ездили как левши, так и правши (как раньше на самокате). AS1 вполне такое позволяет.

etc 02.07.2008 01:29

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
По сути - только оговоренный интерфейс "черного ящика": мы знаем как и что туда кладем и знаем как и что достаем. Что происходит внутри - не важно. Вот и все, без приватов и т.п.

Договорившись с самим собой, ага. Не пойдет.


Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Инкапсуляция достижима и без приватности, так что вы опять не ответили на вопрос о цели приватности.

Я ОТВЕТИЛ, ЧЕРТ ВАС ДЕРИ! Вы мне уже конкретно начинаете напоминать персонажа, звонившнего в службу поддержки Стрима. Не опускайтесь до его уровня, прошу вас.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Там же к ООП относят и JS - не о чем не говорит?

Не говорит. Что AS1, что JavaScript, оба не имеют средств для контроля принципов ООП. Точка, больше повторять не буду, ибо надоело.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Точно также надо ее самому обеспечивать в AS3.

private+interface. Всё. Такие понятия есть и в AS3, и в Java, и в C# и ещё куче языков. В AS1 — НЕТ! Они отсутствуют по определению.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Ровно поэтому я и спрашиваю о ЦЕЛИ приватности.

См. выше.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Т.е. extends - это не самому реализовывать? А __proto__ - самому? И какие еще пять строчек?
А то что поначалу __proto__ был "очень документирован" - так это вина адоба, а не AS1, не так ли?


Вы опять путаете инкапсуляцию с приватностью, а пока не будут оговорены ЦЕЛИ приватности - спорить тут глупо.

Бла-бла-бла, опять же, см. выше ответ.


Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Так я уже задал простейший вопрос - эти слова являются ОБЯЗАТЕЛЬНЫМ признаком языка ООП? Да или нет?

ДА!

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Тогда зачем от прототипного языка требовать синтаксиса языка на классах?

Я не требую, это вы заявили, что AS1 — чисто ООП язык. Это не так, это псевдо-ООП максимум. Точка.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
В моем коде он есть или у вас есть особое видение смысла полиморфизма?

Где? У вас один и тот же класс меняет поведение и родителя, это не полиморфизм, а полная чушь. Примерно как японец вдруг почернел и стал негром. Полиморфизм подразумевает наличие нескольких объектов, с одним интерфейсом. Внутренняя реализация в них разная, но интерфейс к объектам — одинаков. Вот это называется полиморфизмом, а не то, что вы накорябали тамагавком. У вас тележка с четырьмя колесами преобразовывается в автомобиль, у которого тоже четыре колеса.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
А где мой вариант переписанный под AS3?

Нигде, с вашим понятием полиморфизма такое можно написать только на JavaScript и других прототипных языках, у которых стол может стать стулом без проблем простой заменой прототипа.

Цитата:

Сообщение от chingachgoog (Сообщение 749386)
Мой код показывает основные три принципа ООП в самом примитивном виде, не более. Просто пример.

Угу, особенно полиморфизм удался.

wvxvw 02.07.2008 04:49

Вложений: 1
вот, немножко позитива на ночь глядя =) Сто лет уже инструменты в руки не брал =)

ЗЫ. *Коренные жители америки с распростертыми объятиями приняли новые технологии*

etc 02.07.2008 10:21

wvxvw, класс! :)

divinus 02.07.2008 12:49

wvxvw, +1... надо было вывешивать постов этак 200 назад ;)
класс!

chingachgoog 02.07.2008 12:53

iNils, riden, если хотите разобраться с объектами активации посмотрите посты 408 и 410.

Код:

function a () {
        trace ("f a this="+this);
        trace ("f a =="+(this.__proto__==b.prototype))
}
function b () {
        trace ("f b this="+this);        //f b this=[object Object]
        trace ("f b =="+(this.__proto__==b.prototype)) // f b ==true т.е. this - это в данном случае объект созданный оператором new
        this.c = a;
        a ();                //f a this=_level0
                                                //f a ==false функция а является методом рута, а не объекта созданного new
        this.c ();          //f a this=[object Object]
                                                //f a ==true функция a является методом объекта созданного new
        trace (this.c == a); //true
}
new b ();

wvxvw, улыбнуло :)

Цитата:

Сообщение от __etc (Сообщение 749392)
Договорившись с самим собой, ага. Не пойдет.

Что значит пойдет/не пойдет? Принципы ООП довольно общие и абстрактные. В них кстати вообще даже о классах речи не идет.
Тоже самое с принципом инкапсуляции. С точки зрения парадигмы ООП инкапсуляция достигается без всяких приватов. Примите это как факт. А вот с точки зрения любителей мертвых языков или других сторонников ООП на классах, это понятие (инкапсуляции) может быть более конкретизирована и ограничено. Но к общей парадигме ООП это уже никак не относится.

Цитата:

Сообщение от __etc (Сообщение 749392)
Я ОТВЕТИЛ, ЧЕРТ ВАС ДЕРИ! ...
...См. выше.
...Бла-бла-бла, опять же, см. выше ответ.

Я понял - для вас инкапсуляция не достижима без привата. В этом случае вы, конечно, ответили. Но эта ваша "инкапсуляция" - лишь частный случай инкапсуляции парадигмы ООП.

Цитата:

Сообщение от __etc (Сообщение 749392)
Не говорит. Что AS1, что JavaScript, оба не имеют средств для контроля принципов ООП. Точка, больше повторять не буду, ибо надоело.

Т.е. смотрим википедию и где нравится - цитируем, где не нравиться - опровергаем, так __etc? А ведь я всего лишь показал уровень википедии - не более.

Цитата:

Сообщение от __etc (Сообщение 749392)
private+interface. Всё. Такие понятия есть и в AS3, и в Java, и в C# и ещё куче языков. В AS1 — НЕТ! Они отсутствуют по определению.
...
ДА!
...Я не требую, это вы заявили, что AS1 — чисто ООП язык. Это не так, это псевдо-ООП максимум. Точка.

Ну вы бы так и сказали сразу, что не считаете прототипные языки - "истинно" ООП языками. Зачем стесняться?

Цитата:

Сообщение от __etc (Сообщение 749392)
Где? У вас один и тот же класс меняет поведение и родителя, это не полиморфизм, а полная чушь. Примерно как японец вдруг почернел и стал негром. Полиморфизм подразумевает наличие нескольких объектов, с одним интерфейсом. Внутренняя реализация в них разная, но интерфейс к объектам — одинаков. Вот это называется полиморфизмом
...

Вы опять абстрактное понятие парадигмы ООП суживаете до рамок ООП на классах. Полиморфизм - понятие действительно более интуитивное, чем конкретное (чего одно название стоит!). Но на самом деле тут не так все сложно. Это просто код, который ведет к различным результатам, в зависимости от наследования.
Интерфейсы - это всего лишь ОДИН ИЗ СПОСОБОВ ДОСТИЖЕНИЯ полиморфизма.
Да я взял один и тот же класс, но лишь для подчеркивания возможностей AS1. Метод getAngle полиморфен и в этом случае.

Цитата:

Сообщение от __etc (Сообщение 749392)
Нигде, с вашим понятием полиморфизма такое можно написать только на JavaScript и других прототипных языках, у которых стол может стать стулом без проблем простой заменой прототипа.

А что вас так злит в прототипных языкак? Что они смеют называться языками ООП? :) По-моему указанная возможность - весьма крутая вещь AS1.

Цитата:

Сообщение от __etc (Сообщение 749392)
Угу, особенно полиморфизм удался.

В рамках парадигмы ООП - удался. Код метода - один. Результат в зависимости от наследования - разный.

etc 02.07.2008 13:00

Цитата:

Сообщение от chingachgoog (Сообщение 749451)
Ну вы бы так и сказали сразу, что не считаете прототипные языки - "истинно" ООП языками. Зачем стесняться?

Я об этом последние все 400 постов в теме говорил. На этом я собираюсь прекратить дискуссию по этому поводу. У вас свое мировозрение и вы можете называть телегу с двигателем автомобилем исходя из определения, а я не могу, вот и все.

А картинка знатная, да.


Часовой пояс GMT +4, время: 00:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.