ActiveX vs Netscape: The Battle for the Browser's Soul
It’s the summer of 1996, and the browser wars are reaching a fever pitch. Netscape has been dominating with their "Plugins" architecture, allowing third parties to extend the browser (think Flash or Acrobat). But Microsoft isn't taking it lying down. With Internet Explorer 3.0, they’ve introduced ActiveX.
COM on the Web
ActiveX is essentially "COM (Component Object Model) for the Internet." If you’re a Windows developer, this is incredibly enticing. You can take your existing C++, VB, or Delphi components and embed them directly into a web page.
<!-- Embedding a hypothetical ActiveX control -->
<object id="CoolChart"
classid="clsid:12345678-ABCD-1234-ABCD-1234567890AB"
width="400" height="300">
<param name="Caption" value="Sales Data">
</object>
Unlike Java, which runs in a secure "sandbox," ActiveX controls have full access to the user's machine. They are native Windows code. This means they are incredibly fast and powerful... and incredibly dangerous.
The Security Nightmare
The only thing standing between a malicious ActiveX control and your hard drive is "Authenticode"-a digital signature system. You’re basically trusting that because a company signed the code, it’s safe. In a world where people are used to clicking "Yes" on every dialog box, this is a recipe for disaster.
The Fragmentation
We are now entering a dark period for web developers. You either build for Netscape (using JavaScript and Plugins) or you build for IE (using VBScript and ActiveX). "This site best viewed with Internet Explorer" badges are popping up everywhere.
Looking Ahead
Microsoft is leveraging its OS monopoly to win the web. By bundling IE and making it easy for Windows devs to "web-enable" their apps, they’re gaining ground fast. But by tying the web to proprietary Windows technologies, we risk losing the open, cross-platform vision that Tim Berners-Lee started with.
The next few years are going to be a mess of "works here, fails there." I hope we find a middle ground before the web fractures completely.