Uncategorized

Explorer Destroyer

Slashdot | Explorer Destroyer – this is an extraordinarily bad idea and will most likely lead to another inter-browser jihad similar to that fought between Netscape and Internet Explorer in the late 90s, and trust me, nobody wants to go through that shit again. The trouble is, the pro-Firefox and pro-Opera and pro-not-IE zealots fail time and time again to understand the practicalities of developing sites and applications for modern web browsers.

The central issue is “web standards”. The W3C sets and maintains web standards which govern the specification and use of the various markup languages and how browsers should interpret said languages. This is all well and good, but only in theory. And it’s a good theory, make no mistake, but unfortunately we have a little thing called “real world” to contend with.

The trouble is that browsers are not standards compliant, which means that website coders by extension will waste their time by coding up a 100% standards compliant website, because the likelihood is that it won’t work, at least not fully, in any browser. Militant (read: non-commercially minded) developers stick to their guns on this, proclaiming that their site is 100% compliant, and to hell with the browsers, it isn’t their problem. Again, they do not live in the real world.

Some browsers are more standards compliant than others. Firefox and other Mozilla based browsers are more standards compliant than Internet Explorer. Safari and other KHTML browsers are more standards compliant than Firefox et al, Opera is more standards compliant than Safari et al, and so on and so forth. But none are 100% compliant. So, when coding up your website, you have to make allowances for this, which often means compromising design and/or functionality in some way. You either do this by changing your overall design, or you make browser-specific hacks. The former is the preferred method, but sometimes you’ve no choice but to do the latter, dirty as it may be.

Then there’s another issue in that some of the official web standards aren’t actually that sensible, with some bordering on pretty awful. Internet Explorer’s interpretation of the W3C standards is very flexible in some areas, and while this is technically not correct and it’s wrong of Microsoft to insist on their on take on the standards (another relic from the Netscape/IE war, anyone remember “Netscape tags”?), some of the modifications they have made are actually pretty reasonable, and really should be in the offical standards.

For example, the IE “box model” (how the browser calculates the dimensions of rectangular areas) in particular makes far more sense than the flawed and illogical W3C version, standard or not. The web development community recognises this particular issue, albeit reluctantly, so Microsoft aren’t all bad, even if their unilateral execution of the modification seems abhorrant to some.

I also tire of the shortsightedness of users of alternative browsers. On asking them why they prefer Firefox or whatever over Internet Explorer, their answers are generally one or more of:

  • $my_browser is more secure!
  • $my_browser has tabbed browsing!
  • $my_browser supports transparent PNGs!
  • $my_browser isn’t Microsoft! F/OSS! (free open source software)

The first one in that list is understandable, IE does have some problems with its security. But that’s nothing to do with how it renders web pages, and that’s the crux of the “standards” arguments. The same applies to the second item. Tabbed browsing is an application feature offered by the browser, and again, nothing to do with the page rendering. It is NOT REQUIRED by the W3C standard.

The third item is a cosmetic extravagence that frankly nobody needs and everybody has managed perfectly well without since the inception of the web. Granted, it would be a nice thing to have, but let’s face it, the web isn’t going to wither and die without it. Then on hearing the fourth item I stop speaking to the person because it’s then clear to me that it’s not about browsers and standards, they just want to bash Microsoft. Yawn. Move on.

IE isn’t perfect, not by any means. It’s old and it’s unsecure and its liberal take on published web standards can be infuriating. But it is a good, solid and above all popular browser, which 90% of the world uses. So while that’s still the case, developers working to a budget and who have to deliver return on investment will more often than not develop a site for IE, and then see what they can do to get it to work in other browsers, and even then they’ll probably stop at Firefox, the second most popular browser. Beyond that it’s just not commercially viable to spend time satisfying the various levels of standards compliance demanded by every subsequent minority browser. Sorry, but we don’t live in web standards utopia yet, we live in the real world, and we’ve all got to try to earn our keep in it.

This is a quite insightful comment regarding the perception and reality of standards:

I think you’re mistaking a standard for a formal specification.

I agree with you that it would be great if the whole browser world followed W3C recommendations, given their popularity outside the IE world, and the fact that they are formally specified. However, the word “standard” implies a widespread acceptance, and the only player in that game today is defined by “what IE 6 does”. Calling most specifications about the web from the W3C “standards” is, unfortunately, rather misleading; you cannot have less than 1/5 of the market share and claim to be any sort of standard, and AFAICS the W3C themselves rarely use that term.

You don’t like it. I don’t like it. But it is the way things are, and for the foreseeable future it’s the way things will be […] .

Returning to the subject of the referenced article, Firefox isn’t the holy grail of web browsers, so promoting it in such an invasive way is, in my opinion, no better than site that won’t let you in unless your’re using IE. Firefox lacks features just as Internet Explorer does, and it certainly does not have halos for standards compliance or security. Want a list? Be my guest.

Uncategorized

Web development truths

Anyone can be a web developer, right? Wrong. During the dot.com boom of the late 90s, any old jack-the-lad was claiming that he was a web developer, ranging from 14 year old nephews (known in the industry as Nephew Technology – used by company directors to produce their website in acts of blind faith in untrained schoolboys) to pensioners with way too much spare time on their hands. The dot.com crash of 2000 sorted the men from the boys as those who really didn’t have any genuine skills at all lost their jobs or customers, whilst those who did know what they were doing were more likely to retain theirs.

“Red Herring” websites that cost an incredible amount of money but at the end of the day proved to be little use to anyone became a thing of the past. The Emperor had finally seen the true nature of his new clothes and was no longer willing to pay over the odds for poor results.

I survived the dot.com crash by not getting involved with any of the silly companies that sprang up at the time, instead choosing to make reasonable money and consistently getting better at what I do. People can now easily see the value in my skillset and experience when they brief me for projects. But along the way I’ve learnt a few home truths, which I am not afraid to tell customer both new and existing when I need to:

“How much is a website?”

Never EVER ask a web developer this question. Imagine yourself walking in to a car showroom and asking the dealer – “How much is a car?”. Ludicrous isn’t it? The dealer can’t possibly tell you how much a car is because the price of cars ranges from £5,000 to £500,000 depending on what sort of specification you require and how much you’re willing to spend.

It’s exactly the same with a website. Before a web developer can even give you a ballpark price for developing a new website project, he/she needs to have a reasonably detailed description of what you want it to do.

If you don’t know what a website can be capable of, then they will be more than happy to present options to you, in much the same way as a car salesman will explain the meaning of the obscure acronyms you read on a car’s option list. You may not know what a car can be capable of, so ask the salesman, he’ll tell you. The same applies to web developers, although obviously not on the subject of cars.

You have to tell them what you want, only then can they tell you what it’s going to cost. Not all websites are alike. They don’t come in a set range of flavours. Almost every single website in the world is unique. You’re basically specifying a customised product, with a customised cost.

Fast, Good, Cheap – Pick Any Two

This is golden rule number 1 when constructing a brief for a new project or an extension to an existing project, and it’s by no means specific to website software. Think about it carefully: If you want a good quality product in a hurry, it’s not going to be cheap. Alternatively, if you’re still in a hurry but don’t want to spend a lot of money, the product isn’t going to be particularly good. Lastly, if quality and low costs really are paramount, then you’re not going to have it finished in a hurry. Personally I recommend option 1 followed by option 3 as I’m a perfectionist and actually find it quite difficult to produce something that’s not “good”.

Few companies, at least of the size that most web development agencies operate at, can offer all three, and those companies who claim to be able to do so often just try to sell you a pre-packaged website solution that probably won’t be directly suitable for your purposes, which then of course brings the “quality” factor back into question – are they really offering all three after all?

“I want to be able to update it myself”

This is, has always been, and always will be the biggest double edged sword in the whole website arena. It sounds like a marvellous idea doesn’t it – a website that the owner can control and update themselves with no programming knowledge or dependence on the web developer required. Cynics may well claim that web developers don’t like to produce such products because it subtracts from maintenance contracts, and to be honest there is an element of that, but it is by no means as extensive as you might think.

Principally, the simpler something becomes, the less flexible it also becomes. Again, this is not specific to web development projects, it applies to pretty much all software and hardware products that require some sort of human interaction, from Microsoft Word to your washing machine.

Let’s change the brief here to “I want it to just wash my clothes by pressing a button”, when you’re buying a washing machine. Imagine a washing machine with just one button – “Wash”. Sure, it would wash your clothes, at a fixed temperature and with a fixed programme, and for a lot of people this would be fine. It’s simple to use and virtually foolproof. But woe betide it ruins your Club Monaco wool-knit t-shirt because the programme was unsuitable, because then you would need to change how the machine operates when washing such garments. You need another button. Suddenly the machine has become twice as complicated as it was before.

The same applies to “update yourself” websites (the proper name for which is Content Management System, or CMS). I can provide you with a form with one single text box that allows you to change the content of a paragraph on your website. No problem, you just type the text and the paragraph is updated. But now you want to change another paragraph, and not only that, the paragraph is on another page, and furthermore you want to add an image and change the text colour and add a few links. But at the same time, you don’t want to have to know anything about HTML. Herein lies the problem.

Now you have two options. If you want your content management system to become more complex to satisfy your growing needs, you either need to start learning HTML (the markup language that’s used to define the layout and content of web pages), or you need to invest more money into the CMS in order that you don’t have to. One route is obviously more expensive than the other, and each have their disadvantages.

With the first option, many people fall into a common trap known as Microsoft Word, but the trap also applies to other HTML-producing software. Microsoft Word, a popular item of software on most peoples’ computers, claims to be able to export normal Word documents as HTML files. This, for the most part, is untrue. It may well be able to product HTML files, but the HTML it produces is the most god-awful excuse for markup code that’s ever been seen, and this is not just a personal opinion, this is one of those Internet-wide truths that everyone (bar perhaps Microsoft) accepts. Yet it’s all too tempting for website owners just to simply cut and paste Word HTML into the CMS and expect it not to completely screw up their website.

The point here is that allowing people to include their own HTML on their website empowers them to do a wide range of very powerful things. It also allows them to do some very bad things. If you want to manage a complicated website yourself, then you’re going to have to learn how to do some complicated things, including learning at least basic HTML that’s sympathetic to the site’s design and style, rather than how Microsoft Word thinks it should look.

The second option is also not without disadvantage. There is no end to how complicated your CMS can get in order that you don’t have to learn any HTML, and therefore there is no end to how much money you can sink into it just because you don’t want to have to “know about programming and stuff”. This is good for the likes of me, but bad for you. In some cases people spend more money on the CMS so they can then spend their own time updating the site themselves than they would have done paying their web developer to make the changes for them under their maintenance contract. There’s a point at which updating the site yourself simply ceased to be cost-effective.

It is necessary to strike a balance between allowing the CMS to automate and you to provide your own creative input by using HTML. The web, despite its apparently simplicity to the average user, is getting more and more complicated by the month underneath. If you want to be involved with controlling the back end then you too will need to become more complicated and technically literate. If you don’t have the skills for this, are not willing to learn the skills for this, or if it otherwise scares you, then leave it to someone else who does have the skills and isn’t scared to take advantage of it.

Rhydio customers should note that this quasi-rant is not aimed at anyone in particular – I just sometimes get this feeling of tremendous dread whenever I hear the immortal words “I want to be able to update it myself” :)

1 2 3