Consequences of a Tangled Web

Software should be clean and simple. That way you can do what you want to do or change what you want to change with a minimum of complications.

In a recent article by SJVN about InternetExploder 9 64bitness it was mentioned that the 32bit version is faster than the 64bit version and to install the 32bit version you must install the 64bit version which contains both a 64bit version and a 32bit version. It doesn’t have to make sense, it’s the tangled web M$ has woven since about Lose ’95. M$ integrated IE into the platform and encouraged applications to depend on it… and provided access to components of IE to applications. It even can run as a server.

“Internet Explorer is basically the combination of a number of platform components, including the networking components (URLMon/WinINET), the rendering components (MSHTML), the script engines (JScript.dll, vbscript.dll) and a variety of other pieces that hold it all together. These components must be made available in 64bit versions so that 64bit applications can be built using these components. Additionally, because Internet Explorer can be launched/created/used as a COM Server, we offer a 64bit version to enable hosting inside 64bit processes.”
see “Installing 32-bit IE 9 on 64-bit Windows”

How’s that for bloat and insecurity? Connect everything to everything and do it twice. Haven’t these guys heard of the KISS principle?

About Robert Pogson

I am a retired teacher in Canada. I taught in the subject areas where I have worked for almost forty years: maths, physics, chemistry and computers. I love hunting, fishing, picking berries and mushrooms, too.
This entry was posted in technology. Bookmark the permalink.

15 Responses to Consequences of a Tangled Web

  1. Nope. It’s just a slow news day.

  2. That’s OK if you don’t mind working for M$ the rest of your life and paying for the privilege.

  3. bob says:

    With a hundred computers, I’d be pushing updates through the Directory service. LDAP is your friend.

    With a hundred machines, I’d also be using a VLK, which has the pleasant side effect of bypassing the need to authenticate for WGA, which takes place after installation, not before.

    I don’t really have an issue with Windows phoning home to make sure that my legitimately acquired product is a legitimately acquired product.

    So it isn’t much of a problem to fix (for argument’s sake, anyway, I haven’t run Windows on my own machines in years). If you’re pleased with Linux, more power to you, I just question if it’s really necessary to go out of your way to fabricate frankly nonsensical problems with Windows. It’s almost like you feel the need to constantly justify your choice of OS.

  4. oldman says:

    “GNU/Linux has its faults but we can easily work around them and produce. What do you do when that other OS says it won’t let you run until you phone home? I install GNU/Linux. That solves a lot of problems.”

    It is actually a good thing Robert Pogson to hear you admit publicly that the Linux desktop has its faults. That is a good step forward in this discussion. What I would suggest however that you might want to consider the possibility that it might be a tad unreasonable to expect positive reaction to the proposals that you regularly make that we should drop tools that engender a known level of productivity and pick up a set of tools that require us to use potentially esoteric workarounds just to arrive at a level of functionality that we already have?

  5. bob wrote:“It’s odd. you’re willing to go through the hassle of setting up a netboot to install Debian on a laptop, but not willing to toggle a setting on and off to update Windows?”

    It takes a few minutes to set up a netboot installation for GNU/Linux. It takes a few seconds to toggle a setting but on 100 PCs? Not to mention the time it takes to walk around or to chase down the machines on which the changes don’t work…

    I am an old man. 10 years ago is like yesterday. The company that brought me DOS and Lose ‘9x does not deserve my business. While the average behaviour of their products is much improved the extreme behaviours are still totally unacceptable risks in IT. Merely as examples of poor system-design M$’s OS are horrible. Too complex to work. Too bloated to perform well. Their first priority is to mess with competition. That’s not what I want in IT. GNU/Linux has its faults but we can easily work around them and produce. What do you do when that other OS says it won’t let you run until you phone home? I install GNU/Linux. That solves a lot of problems.

  6. bob says:

    Oooh! One falls down and they all fall down. It’s a house of cards.

    Much like what happens when something like, oh, i dunno glibc goes wonky? shared components aren’t much different than shared libraries.

    it should not be done between the kernel of one’s OS and the applications and resources the kernel is supposed to be managing.

    While I agree with the statement, and take it a step further, much like the great Liedke (see L4 and the principal of minimality) I’m of the mind that anything that doesn’t have to be in-kernel (eg. anything other than hardware initialization, memory management, IPC, process isolation and not more than a handful of others, if that), shouldn’t be in kernel. Microkernels are a wonderful thing.

    Howeaver, your statement is random and out of context. Internet explorer isn’t part of the kernel. COM/+ like its siblings OLE and .NET are in userspace, not part of the kernel.

    They testified in court to that. The judge saw it as an unjustifiable business move not computer science.

    You’re getting confused here. MS never said they tied IE to the kernel. They claimed that IE was too integrated into the system to remove (the system is more than the kernel – This was a time when Internet Explorer and Windows explorer were largely one and the same. The browser is the file manager is the shell. – Ultimately, in NT Internet explorer can be stripped out of windows, (as of at least XP) but removing Trident (the rendering engine) causes other stuff to break (much like removing any library would cause any of its reverse dependencies to break).

    Also, you’re stuck in the ’90s. It was considered bad then, but it’s common practice these days, again, Apple and KDE do the same.

    While, M$ may have tidied things up recently to reduce the number of BSODs

    Further proof of your being stuck in the 90s. NT was never prone to BSODs like 9x was, and 9x was deprecated a decade ago. That’s far from “recently”.

    on NT, BSODs occur as a result of hardware problems/malfunctions as a means to both halt the system to prevent potential further damage to the hardware (try overclocking beyond the safe limit, and you’ll bsod in short order as an example, nuke the MBR, ditto.) and to offer up an error code so you know what the issue is.

    consider that Linux kernel hackers have (finally) been working to include similar functionality in the Linux kernel (see KMS), because in all honestly, it’s a very useful feature.

    My last encounter was visiting the update site with IE. I was required to enable ActiveX which I had disabled for security. Think of it. I browse on the web and must reduce the security of my PC to reach M$’s web service.

    I don’t see what the problem is. Enable ActiveX for windows update, disable it for browsing. It isn’t rocket science, Pogs. Better yet, enable it on the admin account and disable it on the regular user’s account. You don’t browse as admin, nor do you admin a system as non-admin.

    It’s odd. you’re willing to go through the hassle of setting up a netboot to install Debian on a laptop, but not willing to toggle a setting on and off to update Windows? I call bollocks.

    Think of that for a moment, that’s all the issue is, toggle on for updates, toggle off for browsing. How long a go was this anyway? It was either before Automatic Updates, or somebody’s been pirating.

  7. bob wrote:“It’s a COM server meaning it exposes class factory objects to other applications.”

    Oooh! One falls down and they all fall down. It’s a house of cards.

    Sharing code is good. It is an efficient means of reducing duplication. However, it should not be done between the kernel of one’s OS and the applications and resources the kernel is supposed to be managing. That is plain foolishness, but that is what M$ did. They testified in court to that. The judge saw it as an unjustifiable business move not computer science. While, M$ may have tidied things up recently to reduce the number of BSODs and vulnerabilities it is still with us today. My last encounter was visiting the update site with IE. I was required to enable ActiveX which I had disabled for security. Think of it. I browse on the web and must reduce the security of my PC to reach M$’s web service. (Dirty Harry: “Do you feel lucky? Well, do you, Punk?”) I should not have to feel lucky to update the software in my OS or to use a browser.

  8. bob says:

    M$ integrated IE into the platform and encouraged applications to depend on it… and provided access to components of IE to applications. It even can run as a server.

    Yes, that’s the point of a framework, Apple does it too (with Safari and associated components) as does KDE (with Konqueror/KHTML and associated components). Providing components available via such frameworks actually simplifies both the application and the development of the application.

    there a lot of use cases where with a framework like Java, simpler applications contain more component calling than actual code writing.

    You speak of KISS, but tell me, which is more simple, embedding a browser component that is provided by the base operating system, or writing your own parser, script libraries, networking libraries, rendering engines, etc? Or in Linux terms, if you were writing a KDE app, and you wanted network connectivity and VFS functionality, which is simpler, to reinvent the wheel, or to simply embed kvfs and KIO_slaves?

    And no, IE does not run as a server, at least not in the way you think. It’s a COM server meaning it exposes class factory objects to other applications.

    If you think about it, on a very basic level, it isn’t all that different from building on top of a mountain of shared libraries as is the case on most Unix platforms.

    Your main gripe seems to be that you can’t get the 32-bit version on its own, which mskes a lot of sense for what IE is. changes are, you’re running it on 64-bit Windows, on 64-bit hardware (since it only supports Vista and Seven) and IE provides a lot of embeddable components used elsewhere, why not include the 64-bit version by default, so that even if you’re browsing in 32-bit mode, at least those other applications are able to benefit from the larger 64-bit address space? This is the KISS approach to such a situation.

    The point of KISS is to avoid unnecessary complexity and to use the simplest method available to you to achieve what you’re trying to achieve, not simplicity for the sake of simplicity.

    While not providing embeddable components would be simpler in the context of that application, it’s the simpler approach on the whole (IE does not exist in a vacuum, it is part of Windows), it would unnecessarily increase complexity elsewhere due to the amount of duplication necessary to provide functionality otherwise provided by IE everywhere that it is used. It also simplifies maintenance wherefore a fix to the component fixes every application using its functionality.

    Think of it this way, while it may seem unnecessarily complex in the context of a browser, try putting the browser in context. In the context of an operating system, this is the simple approach.

  9. Ray says:

    “Isn’t remarkable what Microsoft can accomplish when someone puts a fire under their butt?”

    It’s common sense, anyone would do that when someone puts a fire under their butt. 😛

  10. Richard Chapman says:

    Isn’t remarkable what Microsoft can accomplish when someone puts a fire under their butt?

  11. oldman says:

    “The 64bit version is not… Pretty strange. Many 64bit apps run 10-15% faster than the 32bit version.”

    Not unexpected as it some components are still 32 bit. However the fact that one can mix and match 32 and 64 bit sub modules within an application is pretty impressive IMHO.

    Internet exploder Pog? just as stupid as Linsux IMHO.

    though come to think of it I prefer

    Internet excoriater

    or

    Ayeeeeeeeeee!

    😉

  12. Mike Hunt says:

    How’s that for bloat and insecurity?

    Bloat perhaps, perhaps not. Unsecure? How do you get that? If they are all using the same underlying framework, then patching a framework is easier since they’re not doing it for two.

  13. Dann says:

    Faster using the tests M$ wants…

    If things were more impartial, I think we’d see its true form.

  14. The 64bit version is not… Pretty strange. Many 64bit apps run 10-15% faster than the 32bit version.

  15. Ray says:

    And yet, it’s faster than chrome…

Leave a Reply