MS Urging Developers To Prep For IE 7
Mike Savior writes "Eweek has a story stating that Microsoft is telling web site developers to prepare their sites for IE 7. From the article: 'One area that Microsoft has clearly articulated as being one in which developers can start work now to prepare for IE 7 involves the UA (user agent) string. First discussed in the company's Weblog in April, the code change prompted a reminder on Wednesday to developers, telling them that Microsoft continues to run across Web sites that are not expecting Version 7 of the browser, and urging them to test their UA strings. '"
Oh yes, gotta prepare all those sites out there so they don't shut out IE7, like they do non-MS browsers. Personally, I think it would be refreshing for IE7 users to see something like: "We are sorry, but we don't support your browser. Please upgrade to the latest Internet Explorer. We don't believe in standard HTML."
First off, anyone using the user agent for ANYTHING is stupid. It's so easily changed in browsers other then IE that I can get into sites intended for IE with any browser.
Second, why should this type of warning even be needed? Because Microsoft themselves are guilty of telling developers to ONLY code for thier browser....something no other browser asks developers to do. Microsoft has definitely shown yet again that they want people to ONLY use their stuff and they want a web that ONLY works in thier browser.
Gorkman
"Developers should ensure that their sites are ready for the IE 7 user agent string and treat IE 7 just like they would IE 6,"
I hope not. IE6 is not totally standard compliant, I would be more pleased if they ask web developers to treat IE 7 just like they would Firefox or Konqueror (at least for HTML, CSS and Javascript...).
Quote:
"There are undoubtedly many Web sites that are so poorly built or tested that IE7 will break them," he said, "So it's not entirely dumb to make a fuss about IE7's impending release."
Translation:
IE7 will continue IE's ways of non-standardization. Expect IE7 to break your site.
"I don't use IE at all, but I'll test on it because I have to," said Web designer Donna Donohue, owner of Norwich, Conn.-based development firm KidoImages. "We code to standards to be compliant with Firefox, and then hack for IE."
Oh, so true, Firefox is also my main testing and QA platform, though I do try to code to standards then adapt to the quirks of a single application, even Firefox has the odd lack of compliance.
[sarcasm]Looking forward to IE7, Firefox has dominated the browser competition for too long [/sarcasm]!
Usually it's better to check for DOM objects than user agent strings.
GETPKG - Package Management for Slackware
But the user agent string is probably the worst way to do it.
Valid HTML/XHTML..... Check
Valid CSS.... Check
READY!
Any ideas what the "flaw" is?
The owls are not what they seem
It's good that browsers like Firefox have cleared the path for Microsoft, by forcing web developers to create web pages that work with any browser, instead of working with just one or two browsers.
I wonder when Microsoft will send their thanks to Firefox team.
Validating your HTML/XHTML code is a good idea, but the professional web designer should test his work on any popular browser out there.
Putting a disclaimer such as the one you are proposing, is offensive and amateurish. It's not the users who should adjust -- it's the designers.
Detecting (and acting on) the browser type isn't just silly, it's the biggest baddest broken thing there is on the Internet. I14y be damned! Jon Postel is spinning in his grave.
Most /. readers already know not to use user-agent string evaluation to conditionally server content (it's lame to do so).
However I tried to persuade the readers of the original forum where the article was posted with a post. I adopted a rational argument and hopefully it will influence the non-slashdot audience with what I hope is an eloquent statement against this inane (but perfectly understandable from the vendor's perspective) advice.
original article
And here's my post there:
"Coding for all browsers is expensive and increases our development and support costs".
That's the BS I usually hear from people who develop only for one browser - typically the "corporate standard" browser.
Interestingly enough, I have the opposite experience. We reuse our proven code to make sure that our sites work properly with all modern browsers. Pretty standard stuff for all serious software development professionals.
We use a lot of fancy features, support a fancy text editor, calendar widgets, hierarchy controls... basically, everything that people want out of a modern browser interface. And do you know what? Our resulting software works and looks great with IE, FireFox, Opera, Konqueror, and more.
We have tens of thousands of "very active" users per day, and we never get a complaint about our software not working with a less popular browser.
We have a very small software development staff. As the manager of this organization, I can say with confidence that supporting all browsers versus just one costs us zero dollars.
It's all about good design and management practices. If you do some planning for the future by making good, solid, reusable code the first time, you actually end up saving a ton of money. Save time, money, and sanity.
Sadly, most software development organizations just can't handle doing their job right. They don't bother to build good reusable code, resulting in a tedious, unreliable, never-ending tweaking effort whenever the next service pack is released.
No wonder why so many companies have outsourced their development to the 3rd world. Lousy software development practices, such as coding for just the one corporate standard browser, is prohibitively expensive.
The problem for Firefox is that it's existing Windows users will buy a new computer some day, with IE 7.0 installed. Will this version still be so bad that they are motivated to install Firefox again?
This is the advantage that Microsoft always has, and what allowed them to defeat Netscape. The browser only has to be "good enough" and indifference of the users will work for them.
Uhhhgghh!! I've met "progressive enhancement" once before. You've never seen such ugly, malformed, duplicitous code. Non standards compliant web site code that tries to be cross-browser is most of the reason I decided not to get into web development.
Perhaps you're thinking of a different 'progressive enhancement' than I'm used to. When I think progressive enhancement, I think of the method I (and those I know) use to construct websites.
Where a lot of developers make their mistakes is that they use things like Javascript and (to a lesser extent) CSS for the main functionality of their site - for example, a navigation bar of non-links with dropdown menus of links. If, however, the javascript doesn't work in your browser, you get no links and cannot browse the site.
The proper way to do things is to build a site that works before even adding CSS. Once you have your content in a presentable manner, then you add CSS. This ensures that your HTML will be usable across all browsers (e.g. w3m). Once that is done, you add CSS to style it. This makes it a lot easier to work around crappy IE bugs, because you're doing it one step at a time and don't have to worry about putting hacks into the HTML or using nonstandard tags.
Only after one has a working site should one add Javascript - the rare exception can be said to be 'web applications', where the functionality of the site requires client-side scripting. Regardless, adding Javascript last means that your site will work without Javascript or without the Javascript implementation you're used to. This is important.
For an excellent example of these principles used, specifically the use of Javascript as an extension of the page, and not as a component of the page, take a look at the Happy Spork image gallery. Play with it with Javascript on, and with Javascript off, and notice that the functionality is exactly the same - just accomplished differently - in either case.
That is what I think of when I think progressive design. Maybe I'm thinking of something different than you are.
but you just have to format to fit the lowest common denominator
Why not format to fit the largest common denominator?
...will obviously be: developers can start work now to prepare for IE 7 involves the UA (user agent) string, just so you know. I would be much happier if they had ever began warning web "developers" to change their codes to conform to html/xhtml and css2 standards. Instead they warn to check for the new IE version string, probably to be able to write yet another customized hack for your pages to work.
:] G'Kar if your friend ] drive MS as a company, and how lame-proof they want to make their OS and software. Make software that 1). is good, 2). that works, 3). isn't bloated [does it's function, nothing more, but does it well], 4). doesn't cost a fortune [at many places on this planet].
Hell, last time of such a hack [regarding IE6] happened when I rewrote a javascript menu into a quite simple and clean css version: it was pretty in firefox, konqueror, mozilla and opera, but it didn't even look like a menu in IE6 (w/ xpsp2). It took me 2 hours and about a dozen customized lines of code especially for IE, to make it look like it did elsewhere, in real browsers.
I don't care how high levels of enlightened self-interest [
Sometimes MS reminds me of good old OCP from Robocop movies: it's so big and it's so alone that you have no choice but to live with it.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
If you do that, you have most of the web.
The rest are then people using outdated tech
(like Netscape 4.x, IE 4/5 etc)
Most is often not enough. If you are developing and supporting a website that has tens or hundreds of thousands of users, and even a few percent are still using old browsers, your complaints department will be swamped by annoyed users. Simply telling them that they are out of date is not good enough. I speak from harsh experience.
Checking the user agent string is often an unfortunate necessity.
Change absolutely nothing. Your strategy is as simple as that. Continue to develop for W3C standards, and make the usual pragmatic concessions to allow for IE 5 and 6. Make no special attempt to accommodate IE7 whatsoever.
This strategy is a clear winner for one simple reason. The only reason MS gets a lot of developers to code for IE is because it's big. When you have 90% market share, you don't follow the standard, you define it, regardless of what the W3C and its supporters might wish were the case. As a corollary, when you have 90% of market share, a lot of ill-informed cheaposoft developers will code for your software because they don't know any better.
However, when IE7 comes out, it will not have 90% market share. It starts at 0% like everyone else, and if it isn't directly compatible with either the W3C standards or Microsoft's previous one (the now-well-known quirks in IE 5/6) then it gets a category of its own.
Moreover, since MS were making a big point of how IE7 will only be part of Longhorn and won't be available as a retrofit onto the previous versions of Windows, they are almost condemning it to be a minority player for several years. Just look as how many home users are still running ME, and how many businesses are still on 2000, never mind XP. (As an aside, I heard rumours of this policy changing, though I've not personally noticed anything official from Microsoft about it yet. I'll be amazed if there isn't an IE7 upgrade for WinXP available the moment it releases, though.)
If critical web sites like banks and the big e-shops don't immediately work reliably with IE7 -- and that information will probably spread very fast -- then this will hurt Microsoft's sales and market share. Microsoft will not sell as many copies of its new operating systems as long as they rely on IE7, so they will either have to fix IE7 or drop it and advise users to switch to something that works. In the meantime, big players like Dell will not be selling as many new PCs, or they'll be stuck with the overheads of supporting multiple OS configurations at supply time. After they had to do that with Win2K, when many major customers said they just didn't want the untried-and-untested WinXP installed on their new systems, I suspect they'll be very reluctant to do it again because of something as stupid as a web browser.
In summary, Microsoft only bullies the dev community right now because it has huge market share. IE7 will not start with a huge market share, and if Microsoft does restrict it to Longhorn only as they threatened in the past, IE7 will not develop a huge market share either. Thus IE7 is not a tool with which to bully the development community, it is a tool that must comply with the will of the development community. If it does not, Microsoft and the customers and business partners it most cares about will lose money, and that is the one thing they will not allow to happen.
Of course, Microsoft are well aware of this risk, which is why their legendary PR machine is now trying to mitigate it. All that is necessary to defeat this ploy is to see the PR for what it is: an attempt to trick the dev community into helping Microsoft, not the other way around.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
All the JS fans are conveniently forgetting about those MSIE users who've turned off active scripting, often as a requirement by in-house IT. Better idea is to go server-side -- e.g., PHP or, for M$-devotees, [gag] ASP.
Discussion System prefs link: http://slashdot.org/users.pl?op=editcomm
Nice fantasy land you live in.
/. about the "right way" is laughable - it's like a guy who once put up a shed trying to critique an building engineer.
/. when cretins claim it's just as easy as ABC.
Here's the real world of site development.
1. You already have several thousand pages of content output from a database that includes HTML directly in the dataset.
1a. There is no additional developer resource to modify the database and/or the database itself serves other clients who want it the way it is.
1b. Understand your site is going to be "invalid" from the get go.
2. Mark up your new *framework* code using web standards.
2a. Discover that the interplay between the "good" mark-up and the "bad mark-up" is causing problems in multiple browsers.
2b. Don't bother fixing just yet - the design process will also gave an impact on structure whether you like it or not - unless you are one person doing everything in which case you don't have these kind of problems - equally bragging on
3. Once the framework is marked up meet with the Interaction designer, the Brand manager and any other stakeholders.
3a. Discover they've already got a brand design in mind. It's contrarian to the way you coded your framework. Understand they're also professionals and have a point. Realise you can't force them to do it your way because arguments about semantic mark-up and clean code matter little versus the vast amount of cash they've sunk in the brand identity over the life of the company.
3b. Go back and stare at your framework and sample output.
3c. Try some things.
3d. Rinse and repeat.
3e. Arrive at framework that pretty much supports the interaction and branding requirements.
4. Convert the graphical design to CSS and apply to sample content - testing as you go - the fact you don't control all the mark-up makes you swear a lot. You drink coffee. You do the best you can and document the hacks and exceptions in the vain hope that those come after you may finish the job properly.
5. (mandatory) Modify existing Javascript to maintain the exsiting functionality of the site users have been using for three years plus.
5a. You may need to go look at that framework again some.
6. Test, test again, test some more.
6a. Release.
7. Spend futile debrief meeting begging for the additional budget to migrate the database content to proper separated semantic mark-up and content.
7a. Accept management will look at you blankly. Then refuse the request. Then start making plans for additional features instead.
7b. Make occasional acerbic posts on
This coward works for a large media organisation you all frequently claim is one of the best in the world.