Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Take a look at this picture from XKCD.com

Hey, some mouse-hover text. Wonder if it says something about USB devices?

Browsers are a good example of this. While I develop websites for them, I have to search through the unique 'standards' for each to make sure my sites are fully compatible.

When developing a new program (to compete with existing products), I can see people thinking that their idea is worth putting there in a final product that other products will see the advantages and include it as well. Obviously this isn't always the case (browsers, are once again a good example). Some features are ignored by Webkit browsers and some by Gecko browsers and yet IE tends to just ignore everything quite frankly. In truth, these new 'ideas' or implantation tend to just cause problems for the end-user.

Now, sometimes these ideas are important to include. Without ideas, there would be no change and without change, no advancement or positive improvements.

At what point is an idea/feature worth implementing. What decides if a feature is worthy of becoming 'standard'?

share|improve this question
3  
IMO, reinventing "the web": HTML and CSS and JavaScript would be a good idea (if it is done right). In its current form it is messier than PERL. –  Job Jul 25 '11 at 1:57
4  
"Browsers are a good example of this." I fail to see how. They are all simply implementations of a standard. Different implementations will have different levels of conformance to that standard. But each browser itself is not a standard. You seem to be missing the difference between a standard and an implementation of that standard. –  Nicol Bolas Jul 25 '11 at 7:14
1  
@Nicol, This should be an answer. –  maple_shaft Jul 25 '11 at 11:06
add comment

5 Answers

up vote 14 down vote accepted

This is a very confusing question. At first you seem to be referring to the concept of a technical standard but most of the question content seems to relate more to choosing which features to implement in your product. These are two completely separate discussions.

In a nutshell:

  • Unless you are an industry-recognized standards body like the W3C, you don't get to invent a standard, at least not using the common definition of "standard" (i.e. an industry standard like, say, HTTP). You may have an in-house standard, and you can propose it as an industry standard, but that doesn't mean anybody else will adopt it. A private "standard" is more like a policy.

  • It's worth deliberately ignoring (not necessarily reinventing) an industry standard if you're already familiar with the existing industry standards and are certain that none of them meet your requirements. In other words, if reinventing the wheel is going to solve a real problem or give your business some competitive advantage, then by all means do it - but don't do it out of ignorance.

  • It's worth implementing a feature (questions of "standards" aside) if it's going to (a) directly generate revenue or (b) make your product more competitive with others on the market, and if the estimated revenue/competitive value is significantly higher than the estimated cost to implement it. That question must be answered on a case-by-case basis, and only you can answer it. If you can't, hire somebody who can, or work for somebody who can, because you're not going to get very far in the software biz without at least a little business savvy.

share|improve this answer
    
In addition, I'd say it's also worth ignoring a standard if doing so would cost you less than the patent royalties of existing ones. Aside from that, good and exhaustive answer. –  Martin Sojka Jul 25 '11 at 10:56
add comment

on the other end of the spectrum of the xkcd strip is

  • before: there is no standard which supports MY use case
  • lets make one that can also be used generally
  • after: new competing standard

programming languages are a good example of this mentality

share|improve this answer
add comment

Well the XKCD virtually sums up the argument against standards.

I'm all for standards such as the ANSI and W3C, in terms of web based applications/designs. An example I came across today was that IE opens or runs and .exe file straight from the browsers on an intranet. Yet Firefox and Chrome does not. I'm aware that this is a safety feature and of course it would be good to have, the standard of this safety feature and others should be uniform.

In terms of browsers themselves, they are a little different because you have different hardware, software and operating systems.

I would assume it is a lot harder to make one size fits all approach to cover all these.

share|improve this answer
add comment

In general, it's never good to reinvent a standard. You gave the example of browsers, but browsers aren't a standard. Rather, they interpret and implement standards (HTTP, HTML, CSS, Javascript, (interface to) Windowing system, the operating system, the language they are written in, etc, etc, etc).

If you're writing a "new standard" then you wouldn't be writing a new browser; instead you'd be writing a new markup language, client-side runtime (e.g. the next javascript, java, actionscript). You'd create proof of concepts and convince others to use your same methods because they're clearly superior to that which is already out there.

After years of gaining momentum, you'd submit an RFC or go to a standards body to get it ratified so it's easier for others to follow your "new standard."

So, when is it good to reinvent a standard? Never. It's good to introduce a standard when you have something that is dramatically superior to everything else that is out there, especially if it meets a need not previously satisfied.

share|improve this answer
add comment

Although, I can relate to the satirical comedy being shown here, I have to say that the current web programming platforms could use a major overhaul. AJAX and HTML are still a long ways away from being perfected. Although, this problem not only stems from the platforms themselves, but their varying implementations within the countless hordes of web browsers.

share|improve this answer
    
i agree.. what is more that the functionality overlaps. –  Muhammad Umer Mar 1 '13 at 20:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.