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

R

Ry Nohryb

LET'S MAKE THIS CLEAR:

Creating circular references is a perfectly OK thing to do, what's
BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all versions): its -
their- garbage collector which is broken, and that's what produces the
memory leaks. It's not my/your/our fault. It's solely Microsoft's.

OTOH, whenever you do extra work and code fixes/workarounds for these -
IE's- memory leaks in your page/web app, you're:

1.- Wasting your time.
2.- Wasting (somebody's) money.
3.- Making your code more complex, unnecessarily.
4.- Aggravating the problem, because Microsoft won't ever feel the
need to fix what you're fixing for them, and for free.

So, if you/we/them don't ever fix their (IE's) bug(s), people will end
up, sooner or later, seeing that The Web works well everywhere but in
IEs, and either :

-Microsoft will have to fix their browsers' bugs -finally-,

or,

-People will switch to another browser, one that works, of which there
are at least four very nice ones: FireFox, Opera, Safari and Chrome.

Have a nice day.
 
T

Tim Streater

Ry Nohryb said:
-People will switch to another browser, one that works, of which there
are at least four very nice ones: FireFox, Opera, Safari and Chrome.

and iCab.
 
D

David Mark

LET'S MAKE THIS CLEAR:

Stop shouting, Jorge.
Creating circular references is a perfectly OK thing to do, what's
BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all versions):

I assume you are referring to creating circular references involving
host objects. And no, reality dictates that is not "perfectly OK".
On the contrary, outside of your delusions, it is completely
incompetent.
its -
their- garbage collector which is broken, and that's what produces the
memory leaks.
Yes.

It's not my/your/our fault. It's solely Microsoft's.

Delusion. As a professional you must deal with Internet Explorer in
most cases. Crying that it is Microsoft's fault won't help when end-
user's complain of reduced performance and crashed browsers.
OTOH, whenever you do extra work and code fixes/workarounds for these -
IE's- memory leaks in your page/web app, you're:

There's no extra work involved. It's far easier to not do something
than to do it. ;)
1.- Wasting your time.

See above.
2.- Wasting (somebody's) money.

See above.
3.- Making your code more complex, unnecessarily.

See above.
4.- Aggravating the problem, because Microsoft won't ever feel the
need to fix what you're fixing for them, and for free.

Pure rubbish. MS doesn't care what you do or do not do, Jorge.
So, if you/we/them don't ever fix their (IE's) bug(s), people will end
up, sooner or later, seeing that The Web works well everywhere but in
IEs, and either :

-Microsoft will have to fix their browsers' bugs -finally-,

or,

-People will switch to another browser, one that works, of which there
are at least four very nice ones: FireFox, Opera, Safari and Chrome.

The flaw in your little scheme is that many people (e.g. corporate
users) cannot switch browsers. And, of course, many users don't know
what a browser is (they just click the "Internet" icon and a magic Web
window appears).
Have a nice day.

Get help, Jorge. Seriously.
 
R

Richard Cornford

LET'S MAKE THIS CLEAR:

Shouting is rarely the prelude to a well reasoned argument.
Creating circular references is a perfectly OK thing to do,
what's BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all
versions): its - their- garbage collector which is broken,
and that's what produces the memory leaks. It's not
my/your/our fault. It's solely Microsoft's.

Yes it is.
OTOH, whenever you do extra work and code fixes/workarounds
for these - IE's- memory leaks in your page/web app, you're:

1.- Wasting your time.
2.- Wasting (somebody's) money.
3.- Making your code more complex, unnecessarily.
4.- Aggravating the problem, because Microsoft won't ever feel
the need to fix what you're fixing for them, and for free.

Write a commercial web application with the intention of selling it to
general businesses world-wide and if it doesn't work on IE (including
6) and you likely will be wasting someone's money and your own time.

Write an e-commerce system that does not function with IE and you will
be turning away a significant proportion of potential business at the
door, which is going to cost someone money.

Simple commercial truth: there are lots of people using Internet
Explorer, and that is a situation that is unlikely to change in the
near future.
So, if you/we/them don't ever fix their (IE's) bug(s), people
will end up, sooner or later, seeing that The Web works well
everywhere but in IEs, and either :

The only way that can work is if everyone (all web developers, all web
authoring software, all web designers/amateurs copy-pasting random
scripts, etc.) goes along with your plan. More likely you end up with
a situation where for the IE using customer site/wab application A
works and site/web application B doesn't, and so their business goes
to A. Now supporting IE in addition to other browsers is a selling
point, a market exists for the skills to do the job, and people serve
that market.
-Microsoft will have to fix their browsers' bugs -finally-,

or,

-People will switch to another browser, one that works, of
which there are at least four very nice ones: FireFox, Opera,
Safari and Chrome.

Or commercial realities will undermine the unified/centralised/command
approach that your strategy calls for and so it will ultimately fail,
leaving IE in common use and a pool of web developers suffering for
not knowing how to deal with IE.

<URL: http://en.wikipedia.org/wiki/Tilting_at_windmills >

Richard.
 
R

Ry Nohryb

and iCab.

Yep. But including derivates such as flock, seamonkey, omniweb, etc.
makes the list of browsers much longer, and, AFAIK, the truly original
iCabs ended in ~ 2007, and the latest iCabs (both in the Mac and in
the iPhone) are no more than ~ a wrapped up [WebKit +
JavaScriptCore]...
 
T

Tim Down

LET'S MAKE THIS CLEAR:

Creating circular references is a perfectly OK thing to do, what's
BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all versions): its -
their- garbage collector which is broken, and that's what produces the
memory leaks. It's not my/your/our fault. It's solely Microsoft's.

OTOH, whenever you do extra work and code fixes/workarounds for these -
IE's- memory leaks in your page/web app, you're:

1.- Wasting your time.
2.- Wasting (somebody's) money.
3.- Making your code more complex, unnecessarily.
4.- Aggravating the problem, because Microsoft won't ever feel the
need to fix what you're fixing for them, and for free.

So, if you/we/them don't ever fix their (IE's) bug(s), people will end
up, sooner or later, seeing that The Web works well everywhere but in
IEs, and either :

-Microsoft will have to fix their browsers' bugs -finally-,

or,

-People will switch to another browser, one that works, of which there
are at least four very nice ones: FireFox, Opera, Safari and Chrome.

Have a nice day.

Microsoft now seem to be following a strategy of releasing new and
dramatically improved versions of Internet Explorer and encouraging
people to switch to them. What else do you want them to do?

Tim
 
M

Matt Kruse

Creating circular references is a perfectly OK thing to do, what's
BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all versions): its -
their- garbage collector which is broken, and that's what produces the
memory leaks. It's not my/your/our fault. It's solely Microsoft's.

Didn't they address the circular reference problem with host objects
in one of their jscript updates? Even for IE6? I don't remember.
OTOH, whenever you do extra work and code fixes/workarounds for these -
IE's- memory leaks in your page/web app, you're:
1.- Wasting your time.
2.- Wasting (somebody's) money.
3.- Making your code more complex, unnecessarily.
4.- Aggravating the problem, because Microsoft won't ever feel the
need to fix what you're fixing for them, and for free.

As others have said, some of us still have to code for IE6 because
it's the default browser used in corporate environments.

As my recent project has been a browser extension for FF/Chrome/Safari/
Opera, I've been very happy to not worry at all about this problem. It
makes coding a little more elegant when you can write closures and
never have to worry about memory leaks.

(ps - other browsers certainly have memory leaks of their own, but
unless I am coding specifically to support IE6, I don't do any work-
arounds. I figure that the browser vendors will solve the problem
eventually, as long as I'm using valid javascript syntax.)

Matt Kruse
 
R

Ry Nohryb

Microsoft now seem to be following a strategy of releasing new and
dramatically improved versions of Internet Explorer and encouraging
people to switch to them. What else do you want them to do?

I'd just like them to fix their most ugly and long-standing bugs
(circular references, named function expressions, innerHTML, host-
objects' eccentricity, etc.), and I'd like if it didn't take them 10+
years to fix them.

And I'd like full, 100% compatible, bug-free HTML5 support. And the
<canvas>, please !

:)
 
A

Asen Bozhilov

Ry said:
Creating circular references is a perfectly OK thing to do, what's
BOTCHED is/are MICROSOFT's INTERNET EXPLORER (all versions): its -
their- garbage collector which is broken, and that's what produces the
memory leaks. It's not my/your/our fault. It's solely Microsoft's.

Why do you think that is good programming style? It's always good idea
the programmer to use design which avoids circular reference pattern.
Circular reference pattern is main problem of reference counting GC
algorithms.
<URL: http://en.wikipedia.org/wiki/Reference_counting />

Probably you will ignore IE <= 7 users, but if you write for any
environment with reference counting GC you will have the big issue.
The good habits are the best solution in this case. I really don't
care about circular reference pattern, just because I don't use it.
The circular reference pattern must be fixed during design stage of an
application.
 
D

David Mark

You know, deep inside, that I'm right on this one.

No I don't. I'll direct you to my previous comment (which you
cropped), as well Richard's. What part of "quixotic" do you not
understand? :)

Get better, Jorge! Your office will be waiting for you when you get
back...
 
D

David Mark

I'd just like them to fix their most ugly and long-standing bugs
(circular references, named function expressions, innerHTML, host-
objects' eccentricity, etc.), and I'd like if it didn't take them 10+
years to fix them.

They invented innerHTML, Jorge. They documented it fairly well also.
What more can you ask?
And I'd like full, 100% compatible, bug-free HTML5 support. And the
<canvas>, please !

IE9 looks very good, but you'll still have to write competent scripts
that work in IE < 9 for years to come. I know. Life is so unfair. :(
 
R

Ry Nohryb

(...) if you write for any
environment with reference counting GC you will have the big issue.
The good habits are the best solution in this case. I really don't
care about circular reference pattern, just because I don't use it.
The circular reference pattern must be fixed during design stage of an
application.
(...)

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

Except when coding -defensively- against Microsoft's IE's bugs,
there's nothing to "fix during design stage of an application" wrt
circular references.

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. Or more
or less convoluted workarounds. How many millions of man hours have
been/are still being wasted due to the habit of coding workarounds for
IE's bugs ?

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.

And please don't pretend that the users of your site(s) are all
stupid. Most of them are perfectly able to switch IE for another -
good- browser that works, *as*soon*as*/if the need arises
(corporations included).
 
R

Ry Nohryb

They invented innerHTML, Jorge.  They documented it fairly well also.
What more can you ask?

Oh, I don't know... that it worked with tables, for example ?

They invented the XHRs, too. +1 to them for that.
 
M

Michael Haufe (\TNO\)

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

Which one? You do realize that the problem is partially related to the
fact that there is more than one right?
 
R

Ry Nohryb

Which one? You do realize that the problem is partially related to the
fact that there is more than one right?

No. More than one what ? more than one GC ? more than one IE ? more
than one JScript ? or more than one bug :) ? Please elaborate.
 
J

JR

The flaw in your little scheme is that many people (e.g. corporate
users) cannot switch browsers.  And, of course, many users don't know
what a browser is (they just click the "Internet" icon and a magic Web
window appears).

Unfortunately, it is the purest truth!
 

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
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top