<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Mad Marmot: Tag Internet Explorer</title>
    <link>http://www.lukeludwig.com/blog/articles/tag/internetexplorer</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>A blog about programming, ruby, rails, and my crazy outdoor pursuits</description>
    <item>
      <title>A Virus the World Needs : How to Topple the Reign of Internet Explorer</title>
      <description>&lt;p&gt;For my first project at my new job, a Ruby on Rails position with &lt;a href="http://www.teamsporttech.com/" title="Team Sport Technologies"&gt;Team Sport Technologies&lt;/a&gt;, I implemented a table builder, which allows a user to create simple tables using their browser without writing HTML or any other special markup. My JavaScript was a bit rusty, so it took a few days before I had the table builder complete. I was working with a brand new Mac Pro without Parallels installed, and so I had yet to try the table builder in Internet Explorer, but it worked perfectly in Firefox, Safari, and Opera. I soon found out that it failed miserably in Internet Explorer. I was assuming it would be a quick fix, but it turned out that Microsoft&amp;#39;s implementation of the DOM Event model is so messed up that I had to redo the entire implementation using a different approach.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Internet Explorer is a source of constant frustration and wasted hours of web developers across the world. All other web browsers follow standards set by the &lt;a href="http://www.w3.org/" title="W3C Web Consortium"&gt;W3C World Wide Web Consortium &lt;/a&gt;describing how web browsers should interpret Cascading Style Sheets, JavaScript, and the Document Object Model. Books on these subjects dedicate dozens of pages to detailing the crazy hacks that programmers need to use to get their web sites to operate in Internet Explorer. Microsoft breaks many of these standards intentionally, and can get away with it simply due to having a majority of the browser market.  &lt;/p&gt;

&lt;p&gt;Wikipedia has an &lt;a href="http://en.wikipedia.org/wiki/Usage_share_of_web_browsers"&gt;interesting chart on web browser&lt;/a&gt; usage which shows that in 2004 Internet Explorer had 95% of the market. According to &lt;a href="http://www.onestat.com/html/aboutus_pressbox53-firefox-mozilla-browser-market-share.html" title="OneStat.com"&gt;OneStat.com&lt;/a&gt;, in June of 2007 approximately 85% of people browsing the web worldwide use Internet Explorer. In recent years Firefox has been gaining users from Internet Explorer, but I don&amp;#39;t think we can expect this trend to continue. The typical non-technical person wants a simple and familiar web browser. Isn&amp;#39;t Firefox simple?&amp;nbsp; Of course, but it is not familiar. The refresh button looks different. Everything looks different. Most people dislike learning how to use new software. It doesn&amp;#39;t matter if the unfamiliar product is clearly superior. &lt;/p&gt;&lt;p&gt;So this leaves us web developers in a disgruntled state, forced to ensure our code works with a crappy piece of software that everyone uses. We can expect this as long as Microsoft and Windows dominates the world of computers. Windows only ships with Internet Explorer and people just don&amp;#39;t want to download and install a new browser, no matter how easy it is. So what can we do to topple the reign of Internet Explorer? I can imagine a program which automatically installs Firefox, pre-loaded with an &lt;a href="http://johnhaller.com/jh/mozilla/firefox_internet_explorer/"&gt;Internet Explorer theme&lt;/a&gt; so it feels familiar to people. This program could even relink the Internet Explorer shortcuts to point to Firefox, and then &lt;a href="http://www.techsupportalert.com/how_to_disable_internet_explorer.htm"&gt;disable Internet Explorer&lt;/a&gt; by assigning an invalid proxy server. And while unethical, wouldn&amp;#39;t it be nice if this program was released as a virus to spread across the world? Sure would be interesting. The word &lt;em&gt;virus&lt;/em&gt; has such a negative rap. It would probably go over better if we called it a security patch and actually asked the user if they would like to install it. After all, Internet Explorer is known to have quite a few security holes.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Previously I thought JavaScript was a crappy language and I was annoyed that it is essentially the only choice for a client-side browser programming language. Over the last two weeks my opinion has changed. JavaScript is a decent language, especially with the addition of excellent libraries such as &lt;a href="http://prototypejs.org/"&gt;Prototype&lt;/a&gt; and &lt;a href="http://script.aculo.us/"&gt;Scriptaculous&lt;/a&gt;. JavaScript even has &lt;a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"&gt;closures&lt;/a&gt;, an advanced programming language feature made popular by Lisp and not found in many other languages such as Java. But writing JavaScript code is still frustrating and will be as long as we have to play by the rules of Internet Explorer. It would make little difference if a Ruby interpreter came built-in to all web browsers. Internet Explorer would still fail to implement the Document Object Model correctly and web development would remain what it is today: An exciting fast paced industry pursued by a little devil with an eery cackle and a sharp pitchfork --&amp;gt; Microsoft. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Sat, 20 Oct 2007 17:39:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:19999c1b-1989-4c3a-8549-c0406539d8af</guid>
      <author>Luke Ludwig</author>
      <link>http://www.lukeludwig.com/blog/articles/2007/10/20/a-virus-the-world-needs-how-to-topple-the-reign-of-internet-explorer</link>
      <category>Programming</category>
      <category>JavaScript</category>
      <category>Internet Explorer</category>
      <category>Prototype</category>
      <category>Scriptaculous</category>
      <trackback:ping>http://www.lukeludwig.com/blog/articles/trackback/4</trackback:ping>
    </item>
  </channel>
</rss>
