The Pitfalls and Perks of Adopting a New Standard
Monta writes to tell us that IBM DeveloperWorks has an interesting article about the pros and cons of 'adopting a standard before it becomes one'. From the article: "Whether a standard will succeed and be widely adopted is ambiguous at first, regardless of who endorses it -- a major player or a fringe element. So if most people don't like to welcome the new guy, why would they put all their eggs in a standards basket when that basket might not exist tomorrow?"
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
I, for one, welcome the new guy!
Getting a product to market with a new technology can advance the adoption of a standard.
Chicken, meet egg.
Of course it's a gamble...
but that's one way to make the big money.
You can't talk about Wikipedia's flaws on Wikipedia
For one example of pitfalls and perks, consider stylesheets. Netscape threw their weight behind JSSS, Internet Explorer threw their weight behind CSS. CSS got taken up by the W3C, JSSS got chucked. Internet Explorer 3 was first with CSS support, Netscape 3 had none, and Netscape 4's CSS support was an abysmal wrapper around JSSS.
Another example is XSLT; Microsoft implemented a draft version, and ended up with support that was incompatible with the final specification and later versions of their own browser.
Of course, who was first doesn't matter in the long run. What matters is an ongoing commitment to conformance - being first with partial support means nothing if you do as Microsoft did with CSS and forget to implement the rest for years.
Bogtha Bogtha Bogtha
What does it mean to have or be a "standard"? Average business practices? Average technology? "Average" doesn't sound too bad, but the word "mediocre" sure does. As a business owner, I would hate to have mediocre technology.
When your software is online, running on servers, controlled entirely by you... why go for average or mediocre? Why not be smart about it and go for something simple that bucks the "standard" trend? (SOA comes to mind).
Critical thinking and a complete disregard for standards (especially tech standards driven by corporations with marketing agendas) is useful when creating your own technology. It's the only way to break out of "mediocre".
I could be wrong. Your mileage may vary.
Stolen quote: The great thing about standards is that there are so many to choose from.
If you mod this up, your slashdot background will turn into a beautiful sunset!
lets see if we can /. IBM...
No seriously, You have nearly unlimited code and storage space for your programs in modern PCs. You have intelligent and hard-working programmers. And you have the specifications for the various 'standards'.
So just code all the 'standards' into your program so that it just fu*king works! , regardless of what is or becomes the 'standard'. Please spare your customers all the BS excuses as to why the program that they bought doesn't function correctly.
"Great minds think alike; hurried developers make similar mistakes."
"Little does he know, but there is no 'I' in 'Idiot'!"
.... To make sure that Zonk doesn't post dupes.
This is my opinion. To make sure you don't steal it, it's covered by the DMCA.
Little Red: why would they put all their eggs in a standards basket?
Big Bad Wolf: Heh.. Eggs??? Basket??? I didn't see anything... but why not?
Little Red: Even when that basket might not exist tomorrow?
Big Bad Wolf: *nervous laughter* Why would you think your basket would be missing tomorrow!?!?!?
Don't anthropomorphize computers: they hate that.
Intellectual Embracing the concept Expands ...
U'L have to do better than that!
It's getting kinda drafty in here!
Take a number and pass the FAQ.
Is that like going to McDonald's, ordering a Chicken Sandwich, and getting an Egg McMuffin?
"National Security is the chief cause of national insecurity." - Celine's First Law
...everyone has their own
E.
Never rub another man's rhubarb - The Joker
Adoption that makes things become standard. Not the other way around. At most, all you do is create a "recommended standard", which is interestingly what the RS stood for in that famous 25-pin bus.
File under 'M' for 'Manic ranting'
One well-adopted "standard" (which isn't a standard at all) is ID3 (and its successor, ID3V2), the standard for tagging files with metadata.
The interesting thing here is that it is as standard proposed and written in the spirit of Open Source -- its development is moderated by a core group of loosely-knit volunteers, and anyone can contribute to the discussion.
It has been adopted by practically every developer -- commercial, open source, Joe-in-Basement, etc. -- of multimedia software, even Microsoft.
No standards body (IEEE, IETF, ISO, NIST, W3C, IANA, etc.) has accepted it as a standard; to my knowledge it has never been submitted to any organization as a proposed standard.
By community involvement and acceptance, it has become a de facto standard, and for the most part everyone plays by the rules.
Give me my freedom, and I'll take care of my own security, thank you.
In Korea only old people follow standards!
Please sign petition to restore sanity to our banking system!!!
http://financialpetition.org/
Microsoft integrated XML pretty deep into .NET, so naturally they are trumpeting the usefulness of the XML standard and SOA. Have you noticed they sell tools? Have you noticed the implementations for SOA are so difficult that you need tools to create it? ($$$ for VS.NET, just to add [WebMethod] to a C# class)
All this hype about Ajax is great, but too many people are drinking the koolaid, exposing xml web services, and actually parsing XML in the client. Have you actually tried parsing xml using xmlHttpRequest? It's painful. Javascript Object Notation (www.json.org) is 100x simpler to use... and it just so happens to be a language feature of Javascript and Python. It's code AND data. XML is just data and a bitch to parse. This is just one little example of people not thinking critically and swallowing -- hook, line, and sinker -- whatever is marketed at them.
That is what you get when you have average developers of average ability following the average standard.
Again, I could be entirely wrong. Your mileage may vary. I find that simple solutions are always the best ones, despite whatever marketing hype you hear about a standard from MS, Sun, Oracle, or anyone else.
"So just code all the 'standards' into your program so that it just fu*king works! , regardless of what is or becomes the 'standard'. Please spare your customers all the BS excuses as to why the program that they bought doesn't function correctly."
/sarcasm off
Yes, and all developers, even small startups with possibly innovative products, have the resources to code the thousands of lines necessary.
And, of course, apps are only developed for PCs.
Let's make sure we have as much code bloat as possible when bringing new apps to the market.
Hell, for that matter, why can't my toaster, my microwave, my computer and all its peripherals all have two plugs, one for American outlets and one for European outlets? And also, have a huge battery case in case I wanted to string together a bunch of 6-volt batteries?
For that matter, why do we use TCP/IP? Why can't every computer be capable of reading every method of transmitting data via electric pulse?
Why would you think that introducing inefficiency would be the best solution?
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
"IBM DeveloperWorks articles requiring registration"
Huh?
The article was not a reg req offering.
Whatever you're smokin', pass it 'round.
It was going to be a new standard about 5-6 years ago...and that technology never came about.
When something new comes out, there will be a tendency to ignore it and watch it out of the corner of the eye to see if it goes away. Once something grows in size and complexity, it looks intimidating to get into. That disadvantage can be avoided by getting in early.
A new idea can sometimes be extended and new avenues of use can be found. Early adopters may get a chance to become innovators too that way.
...buying a Steak Egg and Cheese Bagel, then buying another one in a few months and realizing they added unwanted mayonnaise.* I also hope the W3C, etc. do have upcoming Recommendations/standards/wtf-they-call-'em, they check over them to prevent any errata that could give Microsoft (further) implementation legroom ("IE6 and IE7 reserve white space for [an] empty legend tag. The HTML 4.01 spec does not specify what should happen in this case."). (said HTML 4.01 spec)
*Disclaimer: This actually happened to me; remind me not to get another #7 for breakfast.**
**Disclaimer disclaimer: I love their other artery-blockers so much, and have so little hard feelings about said bagel, that I just linked to them with a nice word.
You can hold down the "B" button for continuous firing.
However, that is the model I believe standards should follow today: "This is the point you should be reaching now", not "This is the point you should have reached last year". By this argument, standards should ALWAYS be ahead of the game - describing how to make best use of new ideas and new approaches - and should be discarded as a description of the mediocre and pitiful.
Do the standard-bearers of the past proud, and let's use standards to define the charge of technology. The ones who are stationary are not the ones who need a standard to guide them. The ones who don't care where they are are not the ones at risk of getting lost. Let standards retake their rightful place on the field - at the front.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Yes, and all developers, even small startups with possibly innovative products, have the resources to code the thousands of lines necessary.
Share the code for all the standards. Don't reinvent the wheel. Have each company code one standard and freely share the code with all the rest of the companies.
This idea that every company hires programmers to write the same functions for the same types of programs is just total nonsense that should have been abandoned in the mid 1980's.
If there are legal problems, then just set up a subsiduary of the company in a country where you don't have these idiotic legal problems and sell your code from that country.
I used one important thing for at least a decade before the standard came out: the C language. And I've never regretted it.
;-).
// for comments, though.
Funny thing was that when ANSI C finally came into existence, there was hardly any of my old K&R code that didn't work. I just casually ignored the warning messages, until I got around to inserting the type-cast noise (all the while grumbling about idiotic compilers that obviously knew how to do it, just as the old compilers had
I did like the addition of
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
...they border on useless?
For example, the principle taken from the first section: Users want products that work but early adopters are willing to cut slack in some areas but not in others. Can that be responded to with much other than "Duh!"?
Not at all one of Peter's better articles.
I think you've missed the point of an accepted standard. No one wants multiple versions of something that accomplish the same thing equally, much less redundant standards that're inferrior. Do you really want an internet that supports every network protocol ever invented? Even if there were some magic way that all OS's could share protocol stacks just maintaining all that garbage would be a nightmare. As a programmer I certainly don't want to learn how to code to 15 different network protocol APIs. SMTP is the standard email delivery protocol now, and I'm quite glad that all that proprietary garbage all died 10 years ago. If it hadn't simply sending email to your friend with a different ISP probbably wouldn't be possible.
You're right that the size of the code is trivial. What costs is supporting the standard. More standards that accomplish the same thing just adds complexity without giving anything back.
AccountKiller
Yuo're still dealing with unnecessary bloat. It doesn't make any sense to have to insert code to deal with a dozen formats for data, or to create conversion utilities.
The whole point of a standard is to increase efficiency by eliminating the need to reinvent the wheel.
What you are talking about is not standards at all. Have each company create its own standard, and then have everyone else implement code to translate their format into the native format used by an app? That's not a standard at all, that's proprietary formats that people happen to share the code for. Every time you have a new company, you'd need to go back and insert new code into your post-market software.
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
"Whether a standard will succeed and be widely adopted is ambiguous ... why would they put all their eggs in a standards basket when that basket might not exist tomorrow?"
The reward of first mover advantage is worth the risk.
It sounds like you are really looking for a relational DB format of ID tagging.
...
A song can have many authors.
An author can have many names
An author can have many songs
A name can have many authors
You need a many-many for song/artist, for artist/name, for name/artist ("Monkeys", for example, may not mean the same people today as it used to), etc.
In fact, you'll have many/many tables EVERYWHERE in a really complete system, and you're going to want some way to transfer information from one DB to another DB maintaining the same many/many intermediate information as you transfer across DB's
> Secondly, it's a waste to have an extra entry just for that one song.
You will wind up having to use a lot of UUID's in pairs for each table entry, and you'll have a lot of those entries. Last time I checked, generating a UUID took 16 bytes, so each line of each many/many table is a 32 byte entry, and each song will trigger many many/many entries.
Were you trying to save space somehow?
Bah, I should not try to make database posts without a little p-coding as well.
Ultimately, you're developing a distributed relational DB. Either you need to refer all new additions through a uniquing site (which will prevent duplication, and eliminate the need for large UUID's all over the place), or you'll need to have a way to unique duplications together at each end (which is yet more tables for recombining entries).
Alright, I admit it: My RDBM experience is primarily non distributed; where it is distributed, each client is working on their own area at a time and using a global checkout model. Someone who knows distributed mass updating RDMBs can give you a real working solution to the music ID tags, and make it a viable standard.