From: Dmitry A. Soshnikov on
On Jan 13, 8:20 pm, Thomas 'PointedEars' Lahn <PointedE...(a)web.de>
wrote:

[...]

> So congratulations, you've "won".  (Satisfied now?)

That's not about me. As I told, professional discussion - is a
professional discussion (an exchange of meanings), it has nothing with
dispute with the wish to "win" or sort of. Only the truth is essential
in the talk, neither your position, nor my. The main goal of the
professional discussion - is that you position and my position become
equal to the truth at the end.

But that was needed to tell you to recognize the result - and just
because of decreasing demagogy, no more, no less. So, take it easy and
never mind, everything's alright.

> lunatic idea
> is much the same nonsense
> incredibly naive
> and ultimately stupid
> such junk

Demagogy. Dixi.

/ds
From: Thomas 'PointedEars' Lahn on
Dmitry A. Soshnikov wrote:

> Thomas 'PointedEars' Lahn wrote:
>> So congratulations, you've "won". (Satisfied now?)
>
> That's not about me. As I told, professional discussion - is a
> professional discussion (an exchange of meanings), it has nothing with
> dispute with the wish to "win" or sort of. Only the truth is essential
> in the talk, neither your position, nor my. The main goal of the
> professional discussion - is that you position and my position become
> equal to the truth at the end.
>
> But that was needed to tell you to recognize the result - and just
> because of decreasing demagogy, no more, no less. So, take it easy and
> never mind, everything's alright.

So if this is not about winning or losing an argument (and I don't think
you are honest to yourself here, try fool someone else): What matters the
truth, what matters my admitting that it can be done if it is obviously an
incredibly bad idea to be done? What is the *professional* advantage of
knowing that a Bad Thing can be done?

And, as you pretend this is not personal for you, which it obviously is
(see below), are you willing to admit that it is a bad idea for the reasons
that *I* have named? Are you even willing to take notice of them?

>> lunatic idea
>> is much the same nonsense
>> incredibly naive
>> and ultimately stupid
>> such junk
>
> Demagogy. Dixi.

You don't even know what that word means, Quotemarder.


PointedEars
--
Danny Goodman's books are out of date and teach practices that are
positively harmful for cross-browser scripting.
-- Richard Cornford, cljs, <cife6q$253$1$8300dec7(a)news.demon.co.uk> (2004)
From: Dmitry A. Soshnikov on
On Jan 13, 9:26 pm, Thomas 'PointedEars' Lahn <PointedE...(a)web.de>
wrote:

[...]

> So if this is not about winning or losing an argument (and I don't think
> you are honest to yourself here, try fool someone else): What matters the
> truth, what matters my admitting that it can be done if it is obviously an
> incredibly bad idea to be done?  What is the *professional* advantage of
> knowing that a Bad Thing can be done?
>

:D You'll be laughing but that's again demagogy - which is mean,
you're trying to change the main theme of the talk for the reason that
do not loose (or to win something, a little bit - in other theme on
which you're switching one). It-doesn't-matter-what-the-code-about!
Ok? ;) Good. And the main theme of the talk was - is it possible or
not to use `this._super()' with concrete and completely understandable
reason. That's all. Understanding that (that you'll have nothing to
say), you're just quickly trying to change to *main* topic on the code
analysis (although I told myself, that this is just a bit of code, no
more, no less, there's no reason to analyze it, because I know myself
all of its issues) - that's the demagogy.

> And, as you pretend this is not personal for you, which it obviously is
> (see below), are you willing to admit that it is a bad idea for the reasons
> that *I* have named?  Are you even willing to take notice of them?
>

I know all the issues of the code I wrote above, be sure ;)

And about "try fool someone else" - I've told - the reason I told you
to recognize the result - was decreasing of your pathos, demagogy and
speaking manner from the top. You don't have even rights to talk with
some with such statements and in such tone, ok? Good then.

Let's finish this talk, you are free.

/ds
From: Asen Bozhilov on
Dmitry A. Soshnikov wrote:

> * No optimization;
> * No whatever;
> * scope chain of wrapped methods and wrapper will have some garbage;
> * I *don't* use this pattern (and have never used) in production, this
> is *just academical interest*;
> * I don't like this pattern, it's just to show alternative.

Why not use full power of the language? You can use the full power of
the Prototype Chain. See example:

Object.prototype._super = function(name)
{
var proto = this._proto,
parent = this._parent;
delete proto._parent;
delete proto._proto;
parent[name].apply(this, Array.prototype.slice.call(arguments, 1));
proto._parent = parent;
proto._proto = proto;
}

var extend = (function() {
function F(){}
return function(C, O) {
F.prototype = O.prototype;
var p = C.prototype = new F();
p.constructor = C;
p._proto = p;
p._parent = O.prototype;
}
})();

function A(){}
A.prototype.test = function(){
this.a = 1;
};

function B(){}
extend(B, A);
B.prototype.test = function(){
this.b = 2;
this._super('test');
};

function C(){}
extend(C, B);
C.prototype.test = function(){
this.c= 3;
this._super('test');
};

function D(){}
extend(D, C);
D.prototype.test = function(){
this.d = 4;
this._super('test');
};

function E(){}
extend(E, D);
E.prototype.test = function(){
this.e = 5;
this._super('test');
};

var foo = new E();
foo.test();
window.alert(foo.e);
window.alert(foo.d);
window.alert(foo.c);
window.alert(foo.b);
window.alert(foo.a);
From: Dmitry A. Soshnikov on
On Jan 13, 10:03 pm, Asen Bozhilov <asen.bozhi...(a)gmail.com> wrote:
> Dmitry A. Soshnikov wrote:
> > * No optimization;
> > * No whatever;
> > * scope chain of wrapped methods and wrapper will have some garbage;
> > * I *don't* use this pattern (and have never used) in production, this
> > is *just academical interest*;
> > * I don't like this pattern, it's just to show alternative.
>
> Why not use full power of the language? You can use the full power of
> the Prototype Chain. See example:
>
> Object.prototype._super = function(name)
> {
>    var proto = this._proto,
>       parent = this._parent;
>    delete proto._parent;
>    delete proto._proto;
>    parent[name].apply(this, Array.prototype.slice.call(arguments, 1));
>    proto._parent = parent;
>    proto._proto = proto;
>
> }
>
> var extend = (function() {
>    function F(){}
>    return function(C, O) {
>       F.prototype = O.prototype;
>       var p = C.prototype = new F();
>       p.constructor = C;
>       p._proto = p;
>       p._parent = O.prototype;
>    }
>
> })();
>
> function A(){}
> A.prototype.test = function(){
>    this.a = 1;
>
> };
>
> function B(){}
> extend(B, A);
> B.prototype.test = function(){
>    this.b = 2;
>    this._super('test');
>
> };
>
> function C(){}
> extend(C, B);
> C.prototype.test = function(){
>    this.c= 3;
>    this._super('test');
>
> };
>
> function D(){}
> extend(D, C);
> D.prototype.test = function(){
>    this.d = 4;
>    this._super('test');
>
> };
>
> function E(){}
> extend(E, D);
> E.prototype.test = function(){
>    this.e = 5;
>    this._super('test');
>
> };
>
> var foo = new E();
> foo.test();
> window.alert(foo.e);
> window.alert(foo.d);
> window.alert(foo.c);
> window.alert(foo.b);
> window.alert(foo.a);

Yes, as variant it's also possible. Although, there's
`Object.prototype' augmentation and every time it's needed to specify
method name as a parameter to `this._super()'. From the other hand,
it's possible to call different parent method by specifying different
name.

If to mark each method with `name' property (which is used in
Spidermonkey) - it's possible to use simply `this._super()' to call
parent method with the same name, and `this._super(anyOtherName)' to
call other parent method. That's what I was talking about using
`caller' for that.

/ds