Treehouse

Confessions of a Web Developer V

By on  
Confessions!

It's been quite a while since I've gotten a few things off of my chest and since I'm always full of peeves and annoyances I thought it was time to unleash:

  • Remember when CSS was replacing JavaScript functions like "onmouseover" image swapping in navigation? Now we're using JavaScript to make up for CSS' weaknesses. Of course a lot of the blame goes to IE6 for that but I am disappointed CSS isn't advancing faster.
  • We all bitch about IE6 but I contend it's downright irresponsible to not support IE6 on client websites without telling them. And if you convince them that IE6 isn't important you're really just trying to make your job easier at the customer's expense. Do whatever you want for personal sites, intranets, etc but don't cost your customer business...
  • ...but you don't have to give the IE6 user all the "goodies" either, like rounded-corner elements or displaying print links with CSS. Or any of my other 7 Quick CSS Enhancements for Better User Experience.
  • Too many people judge JavaScript frameworks based on their popularity and not their range of functionality. Don't mistake popularity for usefulness and flexibility.
  • I've noticed my fellow developers getting more and more frustrated with Firebug and Firefox lately. Firefox tends to stop responding more often than I'd like and Firebug seems to be quirky. Firefox has also become a memory pig. I left it up over the weekend at work and when I came in on Monday it had reached 800MB. Insane. And what's always made Firefox a great browser? Development tools. If Chrome and Safari implement great developer tools...why would we use Firefox?
  • The MooTools JavaScript framework is going to kick the JavaScript community's ass later this year. Depender, Forge, MooTools 2, MooTools More...it's going to be awesome. I'm proud of all of our developers, contributors, and the MooTools user community. MooTools FTW.
  • I always get caught by jQuery's fadeTo method requiring speed as the first argument and not the opacity level to fade to. Does anyone else get caught up by that? Shouldn't that be changed?
  • Possibly the most frustrating IE6 problem is dealing with PNG opacity. I know there's the .htc fix and a bunch of JavaScript fixes but I still don't know if I've found one that doesn't show a quick "flash" of grey in each image for mess with other JavaScript on the page.
  • In my first Confessions post a year and a half ago I mentioned that at 24 I didn't know if being a Web Developer was the career for me...and at 26 I still don't know. I may even feel more negative about it now.
  • Chrome Frame may have a chance. IT Directors will be much more open to installing a Google plugin than upgrading all of their IE installs. Don't expect GFrame to be a savior but I appreciate their effort.
  • The most popular keyword/keyphrase used to get to my website over the past year has been "david walsh." Not the most desirable of keywords but I guess it's nice people know my name.
  • The MooTools class I created that I use the most: Clickables.
  • It's hard not to use JSON as a crutch -- it's so useful that I want to throw it at everything.

Your rebuttal?

ydkjs-1.png

Recent Features

  • CSS @supports

    Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS.  What we end up doing is repeating the same properties multiple times with each browser prefix.  Yuck.  Another thing we...

  • CSS Animations Between Media Queries

    CSS animations are right up there with sliced bread. CSS animations are efficient because they can be hardware accelerated, they require no JavaScript overhead, and they are composed of very little CSS code. Quite often we add CSS transforms to elements via CSS during...

Incredible Demos

  • iPhone-Style Passwords Using MooTools PassShark

    Every once in a while I come across a plugin that blows me out of the water and the most recent culprit is PassShark: a MooTools plugin that duplicates the iPhone's method of showing/hiding the last character in a password field. This gem of...

  • Google Font API

    Google recently debuted a new web service called the Font API.  Google's Font API provides developers a means by which they may quickly and painlessly add custom fonts to their website.  Let's take a quick look at the ways by which the Google Font...

Discussion

  1. David, this is why I love your site.

    It’s hard to find someone who loves mootools and JSON as much as myself.

    The IE PNG thing still kills me. But im not as hardcore as you are. I figure an opaque PNG is enough of a trade for using IE6. Their experience is already lacking, and as long as it does not stop them from getting to the content they need…

  2. Nice list – I know it feels good to “unleash” every so often.

    “We all bitch about IE6″
    – I agree with your take on IE6. Being able to conquer it is almost a badge of honor. For personal sites, I’d rather not spend the extra time to deal with IE6, except for the fact that it may come across as lazy or that you are not able to handle IE6.

    “Don’t mistake popularity for usefulness and flexibility.”
    – Why I use jQuery ;) That and the friendly/helpful community.

    “I didn’t know if being a Web Developer was the career for me”
    – At 35, I feel the same way ;) I love using technology to solve problems; it doesn’t mean I want to write PHP and JavaScript for the rest of my life.

    “getting more and more frustrated with Firebug and Firefox”
    – There was a period of time where I was very happy with Firefox 2 and Firebug (except the memory issues). It seems to me that they both have become less stable. I’m not sure why – trying to add too many features?

  3. I agree with you about not knowing if being a web developer is the life for me. I think the problem for me though is not being able to see myself working for someone else until I retire. I’m hoping someday I can support myself and family on my own projects. If I could develop my own projects all the time, that would be awesome :)

    James

  4. Love the iPhone version ofyour site btw.

    I totally agree with you about ie6 and chrome frame.

    I support ie6 90% for 90% of my clients. Some have demanded pixel perfect support all the way back to ie5 and I’ll do that for them, but only because they are special clients. Most sites get full content and functionality with slightly uglier graphics or no animations. But my most recent project was full fx for ie6.

    Frankly, I’m happy that the kids today aren’t leaning how to work around ie6. More work for me :-$

  5. “Too many people judge javascript frameworks based on their popularity and not their range of functionality. Don’t mistake popularity for usefulness and flexibility.”

    … Roughly translates to: “I think MooTools is better than jQuery”

    Not trying to start anything here. Each to his own!

  6. kolin

    “In my first Confessions post a year and a half ago I mentioned that at 24 I didn’t know if being a Web Developer was the career for me…and at 26 I still don’t know. I may even feel more negative about it now.”

    you aren’t the only one, ive been thinking this for many years now! its a damn stressful job…..

  7. I’ve stopped using Firefox a couple of years ago, because it was too slow. Safari is in my opinion by far the best browser, which has all the developer tools a web developer will need. (They’re available through Preferences > Advanced).

  8. Web development sucks – it is just a milestone towards desktop programming and game programming imho

  9. Gappa

    Hi David,

    nice list, I mostly agree with the slight difference being more of a Prototype/Scriptaculous “fan” :-)

    For PNG troubles there is an another approach that does not use that quirky alpha image loader as all the other fixes do – http://www.dillerdesign.com/experiment/DD_belatedPNG/. It even allows background repeating and such stuff.

    It uses VML elements that have the nice feature of showing opacity on PNG just right.

  10. Colin

    Hi David

    First post, but want to say I read the site every day and enjoy your work, keep it up!

    In a slight twist of irony, I can only see this page in Firefox. There is a JS bug in IE8/Opera that stops half the page appearing.

    Look forward to more from you soon… and yes at 30 I am still wondering about this career path :)

  11. Being a web dev isn’t the career for you, or programming isn’t? Big difference. Surely web development will continue to change quickly.

  12. Mr.X.

    “Don’t mistake popularity for usefulness and flexibility”
    ” If Chrome and Safari implement great developer tools…why would we use Firefox?” – For now I am only using firefox for debugging, waiting for Chrome 4 (and plugin support) to replace it in total.
    “MooTools FTW”.

    Well put.

  13. Derrick Nelson

    By continuing to support IE6, you’re not providing any incentive for IE6 users to upgrade. Why would they bother taking the time to upgrade to a standards-compliant browser when developers will just cater to their laziness instead? And in light of that, I contend that these developers are the irresponsible ones, since they’re directly inhibiting the progression of technology.

    Once developers stop supporting IE6, its users will start upgrading. When that happens, you’ll no longer have to worry about costing your clients business and yourself headaches.

  14. Gappa

    @Derrick Nelson:
    I agree, but I see a potential issue here:

    A particular developer/company stops supporting IE6. A customer is choosing his contractor. Now, being in his position, which one would you pick – the one that still supports IE6 or the one that doesnt – while looking at browser usage charts?

    Seen from the perspective of a company, stopping support for IE6 means giving your competitiors an edge over you – that you surely dont want. You’ll be losing customers because of this.

    Well, at least this is the way I see it, kind of vicious circle :)

  15. Oh yeah… you may like this
    http://getfirebug.com/lite.html

    Firebug for IE/Safari/Opera !!

  16. Dan

    I do agree with most of what you are saying but if we keep on having to screw around with sites to make them compatible in IE6 then what good are we doing for the web. It is our job as designers and developers to keep moving forward and if we are constantly catering to people who are using crappy buggy none compliant browsers then we will always be taking a step back. It is our job to educate our clients and explain to them why its important to create compliant websites that work in the majority of browsers and why we should leave the older browsers behind. Great article David, keep it up.

  17. @Thomas Aylott: Yep — thanks for the work IE6-hating kiddies!

    @James: Coming from the person whose latest blog post is “jQuery Plugins are Broken”! :)

    @Gappa: I’ve used that before. I want to say it had an issue with Moo or that it was really slow though.

    @Derrick Nelson: I contend you’re wrong but I’ll respond in a blog post (hopefully this week).

  18. Bobby

    IE and png handling is a problem past IE6. Ever try to do a fade on a transparent png in IE8?

  19. Jason

    The comment section is hidden behind/under your content div when viewing with ie6

  20. @Bobby: Let me check that out. It’s hard to imagine why the team at M$ keeps dropping the ball.

  21. I’ve tried making it as a web developer for over two years now. The main thing I learned (and already knew) is that computers are, for me, best kept a hobby. It zaps me of the energy I would normally use on personal projects like http://battleofthebits.org and it makes my lower back hurt. Now I’m a bouncer in a bar, which doesn’t pay nearly as well, but I have moar energiez, my back and self-esteem feeling much better. I’m still doing net work here and there but now I don’t have to loot the trenches for clients which often led to slight despair.

  22. While i have questioned my profession many times over the years, I tend to see myself as one who solves problems. Not necessarily a programmer (although I have been writing code for over 25 years), not much of a designer (started out as a production artist for pre-press) and not a great marketeer (college emphasis on business/marketing) – but find myself using all the components to help clients solve their real problems.

    All this experience translates to being able to see the overall picture, whether design, technology or marketing, and sum up the problems and have the ‘chops’ to fix them. This is what makes for a fun and exciting career in this arena. A production coder, not so much.

    Based on your statement, “I just make them work” – I think you are in the right career path, may just need a little massaging, similar to how we make designs/css work in IE6. (I remember the days of *only* coding for IE, relying on their ‘tricks’) – and yes, it is annoying, but needs to be addressed, especially for client sites.

    For those of you who see IE6 as just a burden, perhaps you have not been doing this long enough to appreciate how far things have advanced and where we were back in the day prior to IE4 – a lot can still be accomplished. Sometimes though, a ‘degraded’ design is just what is needed, and semantic markup helps for that, so it’s not all in the css.

    Just one more thing, @darkimmortal, I would not consider web development as a ‘stepping stone’ to desktop programming, much different, and not even worth much more discussion. Each have their own merits, and as one who has written software for the desktop, for mobile devices and real applications for the web, it’s good to have experienced all the above so that an appropriate user experience is achieved.

    Keep up the good work, and don’t let problems get you down, they need someone to solve them!

    ~Jeremy

  23. @Gappa: I *strongly* second DD_BelatedPNG, and David, it’s plenty fast and compatible with all the libraries.

  24. I search “David Walsh” to get to your site a lot. There are lots of things on this site which I need to keep comming back to. So I just search. I still haven’t got the hang of favourites ;)

  25. Listen2Me

    You write pretty passionately about web dev for someone who is unsure of his career path. Maybe it’s just a “grass is greener” thing?

  26. Ylodi

    Developer tools? Look at Opera and Tools – Advanced – Developer Tools (Dragonfly). It’s my first choice.

  27. Daron Robinson

    A website is a means to an end for most clients, a vehicle for promoting their actual service or product, but as developers it’s easy to become focussed on the website as if it were the product.

    Supporting IE6 is a drain on developers chargeable time, so we usually end up billing more for that work. Some developers might argue that if a client asks for it, and is prepared to pay for that extra work, then that’s just fine for everyone, but if we are honest we know that the client is going to see very little return on the substantial investment of time spent polishing the turd that is IE6.

    That cost and effort would almost certainly be better spent on developing improved features that add value for the overwhelming majority of their paying customers.

    It’s part of our job as developers to inform and advise our clients about all aspects of the investment they are making when developing a website, including helping them to see when the numbers don’t actually stack up.

    We are their to share our expertise and domain knowledge to help them achieve their ultimate goals, not just to maximise our profits by executing work of dubious value to both them and their users.

  28. Varun

    IE6 is still with you because of this logic that we have to support it.
    Grow some balls and tell clients No.Only then will it be gone for good.
    Whatever the arguments its not enough to convince me that IE6 should be supported in any way form or circumstances,even if the world depended on it being supported.

  29. @Varun: Unfortunately, in the corporate world, IE6 is still prevalent, due to it’s continued support by Microsoft. This is typical in large-scale deployments. While I agree for smaller companies that are selling goods/services it is good to provide a lo-fi solution for IE6, in companies where business units may need to access the site, or even a portal application, corporate policy dictates support.

    Some current clients I am working, GE and Toyota, corporate policy is still set on IE6, but the portal applications are targeted for ‘modern’ browsers, yet still degrade nicely for IE6. This is also true of some education clients I support, where one cannot eliminate access to constituents simply because of a design preference, laziness or arrogance (take your pick)

    Based on your logic, if applied to vehicles, we should not have any cars that are out of warranty on the road. While that may be a little bit of a stretch, it just goes to show that we cannot always be on the edge of technology, and even if we are, we need to make the best decisions for our clients.

    As professionals it is our duty to provide the best support to our clients, guide them, educate them, and work with them – after all, they are writing the checks…

    (MS Lifecycle info: http://support.microsoft.com/gp/lifesupsps/#Internet_Explorer)

  30. Derrick Nelson

    Let’s be real here, guys.

    “Not supporting IE6″ does not mean every IE6 user out there is going to come to your client’s site, see some overflowing divs, non-transparent images, etc. and freak out and hit the eject button.

    While it will definitely make for a less appealing experience for them, if you design your site well structurally, it should not be unusable in IE6, and should not cost your client much (if any) business. Ugly maybe, but not unusable.

  31. I agree with Derrick. I do not consider IE6 anymore in my designs, meaning I won’t spend more than a few minutes making compromises. IE6 users shouldn’t get comfortable with that browser, us supporting it so that sites work perfectly on them doesn’t help and in a strong way adds to the problem of (ridiculously) late upgrades.

  32. Patrick

    If you write really lean and clean markup, supporting IE6 isn’t much of a problem – problems do occur, if you’re creating much too complicated markup and use “dirty” CSS-hacks to achieve your goals – hacks which only work because we got lucky with Chrome or Firefox.

    In all my past professional projects for a big gaming/internet company, I never had much of an issue with IE6 – the occasional double margin bug occured, yes, but nevertheless most things where fixed by half a page of CSS included via a conditional comment.

    Concerning 24bit PNGs – where it’s not essential, use 8bit-gifs instead (again, “overwriting” the same background-definitions via a conditional comment and extra CSS), especially on clickable elements, as the htc-fix doesn’t like those. For background and their like, the htc-fix does the work as intended.

    Nevertheless, there are still things that can’t really be fixed, like the IE not being able to give input-values a negative text-indent, so image replacement for buttons doesn’t really work – either use image-inputs or use JS to remove the value-property. I’m using a FancyForm-Class which does form checking, noticing the user about unfilled or invalid input contents and if the browser is in fact using the Trident-engine, removing certain problems with IE in this case.

  33. I agree with David that web developers can’t ignore the impact that not supporting IE6 could have on our clients. As I wrote a few months ago in a post on my oft-neglected blog (http://vancouverwebconsultants.com/is-ie6-dead-yet/), I think it’s key to be honest with a client, if they are requesting fancy features that are harder to implement on IE6, that there could be an increased cost associated with ensuring compatibility (which in itself could put the issue to rest), or that a particular feature might not be compatible at all. When a “feature”, whatever that might be, requires hacks/overrides alternate code/stylesheets for IE6, it’s usually because of that browser’s non-adherence to some standards, and we know that the best practice is to code for standards compliant browsers first. If you write standards oriented code, adding IE6 compatibility at the end is inherently an “extra”.

    Let’s face it though, we all know that IE6 compatibility is usually a trivial matter and we should do it automatically. Still, I sometimes like to remind my site users that they are not seeing the web in all its splendour if they’re using IE6, and that they should upgrade or switch their browser. There’s nothing wrong with educating our users, and leading them in the direction of open standards as a counterweight to some corporations that have historically led them in the opposite direction. We are stewards of our medium and should use our influence to support the health of the web’s ecosystem.

  34. Hiya David

    So we all know your a big lover of Mootools. Have you looked at YUI 3? I’d love to hear your thoughts about it.

    Love the blog by the way :)

  35. “If Chrome and Safari implement great developer tools…why would we use Firefox?”

    Not sure what you’re saying here but what does firebug have that the developer toolbar in Safari (webkit) doesn’t? I never touch firefox.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!