FYI: Creating circular references is a perfectly OK thing to do.

D

David Mark

Bullshit. The only botched GC is the one in Microsoft's Internet
Explorer(s).

Even if you could prove such a generalization, what difference would
it make? IE is the most-used browser. ;)
Except when coding -defensively- against Microsoft's IE's bugs,
there's nothing to "fix during design stage of an application" wrt
circular references.

You still don't get it, Jorge. You never need to create circular
references that involve host objects. I'll go way out on a limb and
assume that you have created lots of them over the years and rather
than go back and clean up your messes, you want to wish IE away. Good
luck with that.
And, many JavaScript/Web programmers -like you- ought to quit this
awful habit of styling and circumscribing the code to the -pitiful-
subset of JavaScript/DOM that remains after cutting out and removing
the -many- broken pieces in Microsoft's JScript+ the IE DOM.

Again with the reality issues.
Or more
or less convoluted workarounds.

Like what? Not creating circular references in an "addEvent"
wrapper? Granted, there was a time when it was widely considered
impossible, but it should be clear at this point that it is trivial to
implement such things.
How many millions of man hours have
been/are still being wasted due to the habit of coding workarounds for
IE's bugs ?

How many millions of man hours have been/are wasted writing bad
scripts that leak memory in IE (the most-used browser on the planet)?
You should instead try to make it as evident as possible to the site
visitors: inform them that their browser is broken, and that that's
NOT your fault/the site's fault.

*Again* with the reality issues. Some users have no idea what a
browser *is*. Get it? Your ridiculous attempts to shift blame away
from your scripts will not cut any weight with such users (assuming
they read your note at all). And then there are corporate users, who
have been known to browse the Web from their cubicles. There's a
group with disposal income and often the inability to install
alternate browsers. See the problem?
And please don't pretend that the users of your site(s) are all
stupid.

It's not a matter of stupidity and it doesn't need to be all of them
either. The Little Old Lady from Pasadena and Joe from Accounting
have different reasons for ignoring (or laughing at) your
rationalizations. For one it is ignorance and the others are simply
forbidden from installing new browsers by network admins. What can
they do?
Most of them are perfectly able to switch IE for another -
good- browser that works, *as*soon*as*/if the need arises
(corporations included).

As Richard pointed out, you are not going to initiate some worldwide
change in corporate policy with your anti-IE ranting. Corporations
are in the business of making money, not making it easy for their
employees to browse the Web (and activity that often costs money in
terms of wasted time and which can introduce security problems).

Clear?
 
D

David Mark

To whom ?

To me (among others).
Does it -finally- come with the <canvas> ?

Yes, Jorge; there is a canvas. Why don't you climb down from your
high horse and survey the territory...
Ah, No no no. Not me. I won't. Thanks but no, thanks.

Then you won't be employable as a professional Web developer for years
to come. Of course... :)
 
M

Matt Kruse

On Jul 27, 1:52 am, "Michael Haufe (\"TNO\")"
No. More than one what ? more than one GC ?

I believe that's the root of the problem, isn't it? The GC for jscript
objects is separate from the one for host objects, and they don't talk
to each other. So they cannot resolve the circular reference to
realize that both objects may safely be destroyed. They just each see
an external reference count of 1 and remain in memory forever.

Matt Kruse
 
A

Asen Bozhilov

Ry said:
Bullshit. The only botched GC is the one in Microsoft's Internet
Explorer(s).

Please follow the posted link. As I wrote the problem is in the
programmer, not in GC. If you write application with XPCOM objects,
again you have a deal with reference counting GC and again circular
reference pattern is an issue.

<URL: https://developer.mozilla.org/en/Using_XPCOM_in_JavaScript_without_leaking
/>

If programmers understand the problem, they never use circular
reference pattern.
 
D

David Mark

The problem is in IE, only in IE.

The problem is in your head, Jorge. Somehow you think you don't have
to deal with the most-used browser. You have to accept the things you
cannot change.
And in Redmond, WA.

Why don't you invade and attack their windmills? :)
 
R

Ry Nohryb

The problem is in your head, Jorge.  Somehow you think you don't have
to deal with the most-used browser.  You have to accept the things you
cannot change.


Why don't you invade and attack their windmills?  :)

Headline news (not exactly):

"Microsoft, the biggest software company in the world, is unable to
fix IE's GC bug (*) in over 10 years"

(*)Nor NFEs' bug, nor innerHTML's bug, nor (unbelievably long list of
IE bugs).
 
R

Ry Nohryb

I believe that's the root of the problem, isn't it? The GC for jscript
objects is separate from the one for host objects, and they don't talk
to each other. So they cannot resolve the circular reference to
realize that both objects may safely be destroyed. They just each see
an external reference count of 1 and remain in memory forever.

Oh, yes, you're right. Now that you say it, I remember having read
this before. Thanks!

And that comes from the biggest software company in the world... :-(
 
R

Richard Cornford

On Jul 27, 9:44 am, David Mark wrote:

Headline news (not exactly):

"Microsoft, the biggest software company in the world, is
unable to fix IE's GC bug (*) in over 10 years"

(*)Nor NFEs' bug, nor innerHTML's bug, nor (unbelievably
long list of IE bugs).

What is an "innerHTML bug"? The - innerHTML - property is a Microsoft
invention, and has not yet become subject to any formal standard
(proposals don't count in this regard), so there are very good grounds
for asserting that whatever IE does is 'correct' (because they define
their own invention), and whenever anyone else differs then they are
the ones with the 'bug'.

Richard.
 
R

Ry Nohryb

What is an "innerHTML bug"?

Who knows.
The - innerHTML - property is a Microsoft
invention, and has not yet become subject to any formal standard
(proposals don't count in this regard), so there are very good grounds
for asserting that whatever IE does is 'correct' (because they define
their own invention), and whenever anyone else differs then they are
the ones with the 'bug'.

I see, it's my fault to expect it to work with <table>s and
<otherArbitrarilyChosenElement>s (*) (in IE, innerHTML is *read*only*
for these... ROTFLOL: "unknown runtime error").

The reason being that Microsoft brilliantly rounded their own
invention to full perfection by adding the clause "you can use it
freely, well, not really" in the definition, right ?

Thanks, but I prefer much more the innerHTML that works r/w for any
kind of element, the one that comes with every browser except IE.

(*)table, select, pre, thead, tfoot, tbody, tr, and in some
circumstances, even a <div> !
 
A

Asen Bozhilov

Ry said:
Asen Bozhilov wrote:




The problem is in IE, only in IE.

It is propaganda. While IE is not the best browser which has been
made, your objections are demagogy. What exactly is the problem that
you can not write applications without circular reference pattern? How
many time circular reference pattern is the best design which you can
choice? If you do not want to care about circular reference pattern -
just do not created in first place.
 
R

Richard Cornford

Who knows.


I see, it's my fault to expect it to work with ...
<snip>

Yes, demanding that your expectations are satisfied without first
having good grounds for those expectations is not reasonable. IE
introduced the - innerHTML - property, and in IE it has never worked
any differently than it does now. If others introduce non-compatible
imitations of Microsoft's browser features that is no reason to expect
those features to work any differently in Microsoft's browser.

Richard.
 
R

Ry Nohryb

It is propaganda. While IE is not the best browser which has been
made, your objections are demagogy. What exactly is the problem that
you can not write applications without circular reference pattern? How
many time circular reference pattern is the best design which you can
choice? If you do not want to care about circular reference pattern -
just do not created in first place.

The problem is that Microsoft has done a lot of ugly things to the
web, and this is just another, one more. The problem is that they have
had a botched browser for a decade and have shown not even the
slightest intention of fixing any of its many bugs, nor any
embarrassment (remember IE's string concatenation "issue" ? geez,
LOL). What a shame. The problem is that there was no need for this to
be so. The problem is that circular references ought to pose no
problem at all, as is the case in any other browser. The problem is
that all these things together (long list of bugs + premeditated non-
compliance with w3 standards) are what turn the life of a web
programmer into a nightmare, and what kills the interoperability of
web sites across browsers and platforms. The problem is M$ pissing off
the web and the web community (both web users and web developers) for
so many years while they were in control. If there's any justice, IE
should die, and M$ ought to be banned from the web, forever, by the
people. That's what M$/IE deserves, IMHO. Because while they've been
in control, they've used all their power -blatantly- against the best
interests of the web as a platform. I like the web, I want the web,
and I want it to move forward: the opposite of Microsoft's interests:
they want you to be tied to their windozes OS, they don't want you to
use a platform (the web) that does not depend in any way on their
Windows® OSs. They've been trying hard to stagnate / asphyxiate a
platform (the web) that could run in any other (non-Windows®)
platform. They don't want the web to work well, never, ever, because
the web platform puts their Windows OS platform business at risk.
That's why they've doing ~ 0 wrt the web during the last decade,
almost not even a single bug fix.
 
R

Ry Nohryb

It is propaganda. While IE is not the best browser which has been
made, your objections are demagogy. What exactly is the problem that
you can not write applications without circular reference pattern? How
many time circular reference pattern is the best design which you can
choice? If you do not want to care about circular reference pattern -
just do not created in first place.

<short response>

Your position seems to be: given that IE has this bug --->>> you
shouldn't create circular references.

My position is: regardless of IE, not matter how much botched it is,
there's nothing wrong with circular references per se.

</short response>
 
M

Matt Kruse

Your position seems to be: given that IE has this bug --->>> you
shouldn't create circular references.
My position is: regardless of IE, not matter how much botched it is,
there's nothing wrong with circular references per se.

Depends on your goal.

If you want to write code that works in browsers that don't have
problems, and you can ignore some users, then write circular
references and give MS the middle finger.

If you want to write code that needs to run in an environment where IE
is used (whether you like it or not) then you need to code around
these and other bugs.

Working with and around software that causes problems is a major
source of income for many people. Some can ignore the problem
entirely, while others profit from being able to solve the problem for
those who have it.

Basically, I don't see your point.

Arguing that Microsoft is ruining the web is so 1996.

Matt Kruse
 
R

Ry Nohryb

If you want to write code that works in browsers that don't have
problems, and you can ignore some users, then write circular
references and give MS the middle finger.

If you want to write code that needs to run in an environment where IE
is used (whether you like it or not) then you need to code around
these and other bugs.

(...)

Basically, I don't see your point. (...)

That there's nothing in CRs that produce memory leaks, that CRs can be
garbage collected properly, that CRs are useful, that CRs are a
perfectly OK thing to do. As expandos, BTW. That what's broken is IE.
That JavaScript/The Web coding style should not be dictated by IE's
bugs no longer, not any more, that statements such as "don't use NFEs"
or "circular references produce memory leaks" are bullshit, that
you're fighting the wrong enemy. That the problem isn't CRs or NFEs,
that the problem is Microsoft, Microsoft's attitude, and its Internet
Explorers. That there are at least 4 very good alternatives to solve
this no-problem: Safari, Chrome, Opera and FireFox. And that the
people (the users) should receive this message clear and loudly and
asap, because that's the reason that will make them want to switch to
a better browser, to one that's not broken.

But they need to be told. They're not programmers. They don't know
what's going on. They need to receive the message clearly.

But for this to happen, you/we/them web programmers should stop coding
workarounds that distort the truth as if nothing were wrong, and leave
Microsoft and their IE to the fate that it deserves given what it is.

Say that a new browser came out today, and it came full of bugs. The
people who would try it, would see that it doesn't work, and would
just trash it.

We should attempt to force the people (as much as we can) to trash
their IEs, because IEs are bags of bugs, and because there are good
alternatives, and because it's not our fault that IEs are what they
are and because Microsoft has has plenty of time to fix them but has
not, and we are suffering it, the web is suffering due to it, the web
coding style is being awfulized due to it, and this has to stop, the
sooner the better.

So, I'd say, just USE CRs and NFEs and expandos and R/W innerHTMLs and
the <canvas> and everything that's available and common and works in
the four decent browsers that are out there and freely available, and
try to force M$ to fix and update IE, or the users to switch, and help
stop distorting the reality.
 
G

Gregor Kofler

Am 2010-07-27 21:15, Ry Nohryb meinte:
That there's nothing in CRs that produce memory leaks, that CRs can be
garbage collected properly, that CRs are useful, that CRs are a
perfectly OK thing to do. As expandos, BTW. That what's broken is IE.
That JavaScript/The Web coding style should not be dictated by IE's
bugs no longer, not any more, that statements such as "don't use NFEs"
or "circular references produce memory leaks" are bullshit, that
you're fighting the wrong enemy. That the problem isn't CRs or NFEs,
that the problem is Microsoft, Microsoft's attitude, and its Internet
Explorers. That there are at least 4 very good alternatives to solve
this no-problem: Safari, Chrome, Opera and FireFox. And that the
people (the users) should receive this message clear and loudly and
asap, because that's the reason that will make them want to switch to
a better browser, to one that's not broken.

But they need to be told. They're not programmers. They don't know
what's going on. They need to receive the message clearly.

They don't care what's going on. And they don't need to know, either.
They are the customers. If you tell them you'd only code for W3C
compliant browsers, and they should kindly use the browser, you request,
they will most likely move on to some competitor, who is capable of
dealing with IEs shortcomings.

[over the top rants snipped]

What have you been smoking lately?

Gregor
 
R

Ry Nohryb

(...) and help stop distorting the reality.

BTW, when you ask a dummie that is using IE regularly "why do you use
it ?" he'll tell you: because most pages "work" in IE. LOL. But we
know that the truth is just the other way around: most pages would NOT
work in IE out of the box if it were not due to extra work+ coding+
tuning+ workarounds (++sweat).

OTOH, once a page works fine in e.g. FireFox, you can rest assured ~
100% that it's going to work too in Opera, Safari and Chrome...
 
D

David Mark

BTW, when you ask a dummie that is using IE regularly "why do you use
it ?" he'll tell you: because most pages "work" in IE. LOL. But we
know that the truth is just the other way around: most pages would NOT
work in IE out of the box if it were not due to extra work+ coding+
tuning+ workarounds (++sweat).

Your laziness and contempt for your end-users is staggeringly
unprofessional.
OTOH, once a page works fine in e.g. FireFox, you can rest assured ~
100% that it's going to work too in Opera, Safari and Chrome...

Not necessarily. :)
 
M

Matt Kruse

BTW, when you ask a dummie that is using IE regularly "why do you use
it ?" he'll tell you: because most pages "work" in IE.

Or, because it supports ActiveX in an internal corporate intranet
environment, where webapps can create and manipulate MSOffice objects
to integrate existing business documents with database-driven webapps.

Your other "Big 4" browser alternatives fail miserably in this regard.

Matt Kruse
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,077
Messages
2,570,567
Members
47,202
Latest member
misc.

Latest Threads

Top