IE, I hate you, let me count the ways...
I've been doing a lot more web coding as of late than I have in my past. In the process I've been reading documentation and searching Google for tutorials until the cows come how. The one piece of awesome that I have encountered has to be
Firebug for Firefox. Firebug has saved my receding hairline and lots of time.
Now that I have my web app running to spec on Firefox I have had to turn my eye to that other browser... IE.
I can accept that IE doesn't like standards and that you have to use hacks here and there to support it but... Is there no script debugger for IE?
I found the developer toolkit which helps with laying out a page but I can't find anything for actual debugging of scripts and figuring out why my scripts work 100% of the time in Firefox but only 50% (if at all) in IE.
Here is one example:
I used jcarousel for jquery on a page and it works great in Firefox. When I browse to the same page with IE it does not work at all. When I browse to the jcarousel home page it works fine on IE.
I saved the page with Firefox, viewed it with IE and it worked! Now I have no idea why this is happening.
I used another PC in the house and browsed the page on the server with IE and it worked. Both PCs are Vista running the same version of IE7!
Is there a debugger or similar resource for IE that explains these things in detail?
Comments
Speaking of which: has anyone used IE8 yet? If so: how is it? It's not in the support matrix for the projects I'm doing now, so I haven't wanted to replace IE7 with it.
Reason #1 is that I do all my JavaScript with JQuery. So if for some reason my JavaScript works in one browser, but not another, it's JQuery's fault. Luckily, this almost never happens because the JQuery people take care of that shit.
Reason #2 is YUI. YUI is the Yahoo! User Interface library. It's mostly just another JavaScript library, like JQuery, or Prototype, or Mootools, but I ignore that part because I'm a JQuery person. However, YUI has another part that is for CSS. This part is reset, fonts, grids, and base. The most important part is the grids which helps you to lay out columns and rows on a page using nice HTML and CSS (no tables) that actually work and look the same in all browsers. You can see it in action on the front page of frontrowcrew.com. How do you think I made four colums that work in all browsers? YUI.
I do all my CSS with YUI and all my JavaScript with JQuery. Someone else deals with all the cross-browser problems, and I just make web sites nice and easy like. It's thanks to things like this that web development is still ok in my book. It's not hard to see how someone without these tools would rather kill themselves than make web sites.
...and there would be no IE 8. I must have tried this 4 times before giving up and using Firefox anyway, despite the website's protestations. So from my experience, the IE8 installer package is FAIL.
As for IE8, I have that on my computer at home because I (unlike the government) make a habit of having the most up to date browser. I can only report that it can access my company email site without issue. When they fixed Chrome to Windows 7 I went back to that.
Also, yeah, YUI and JQuery are super nice, but there are still times when you have to get down and dirty with CSS/JS. The Johnny Wander site isn't a bad example. Yes, it's super grid based, but there's all kinds of graphical flourish that required me to bend over backwards (in particular, that jagged line with the transparent tiled PNG that runs all the way down the page? Let me tell you that was a pleasure -_-). So when a client comes to me with a request, I can't just say: "Yeah, YUI won't do it, can't get it done for you." No, you learn how to do it in every browser.
JS is the same way, though to a much lesser extent. I do almost refuse to work in anything "below" Prototype.js now. JQuery is of course on top of the pile, but I'll at least look at MooTools and Mochi.
If I needed to convince a client that their design was stupid, I would just point at all the other sites on the net. Twitter, Digg, Google, etc. None of those people do anything weird. If you're smarter than them, then you're definitely smarter than me. In which case, you should just be doing this yourself. My time is too valuable than to waste it forcing a crazy design into the constraints of the web.
As for the JavaScript libraries, I have no allegiance to any one in particular. They all work. The thing is, I know JQuery pretty well. I've never really needed to try the other ones. If I'm in a situation where I need one of the others, I have no objections. It just seems to me like this is one of those situations where there's a lot of duplicated efforts. Are there really any super significant differences between them all?
One thing that does bother me is the modal situation. There are so many different modal plugins for JQuery and other libraries, and they all work differently. I really think that we need to make it something that is just built into JavaScript directly. Or at the very least, JQuery and other libraries need to agree on one thing. It's sort of a mess.