When someone encounters somthing new, one has a tendency to compare it to something that already exists. This is a natural habit that everyone does to help provide a starting point for determining how to react to whatever this new thing is. For instance, when a new product is released, it will be compared to some existing product, and lists of advantages and disadvantages between the new and old will be created. It really doesn't matter that the new product has a very different purpose or not.

For instance, if you build a new revolutionary killer product that does all kinds of never-before-done things, but you put a Back button, and an address bar and Bookmarks on it, it is no longer a new revolutionary killer product, but just another web browser. It doesn't matter what you say, because people will look for the familiar in your new product, and compare your product to that. You can't create revolutionary products intentionally, so quit trying.

Why was XML successful? Likely much of its success was due its similarity to HTML. If XML had used square brackets or other different syntax, its possible that it wouldn't have gotten as far. People need a way to transition to new things so that familiarity is maintained thoughout the process. When building a new technology, you need to ensure that radical changes are minimal to encourage adoption.

For instance, a web developer that understands HTML forms would have no trouble with a few new tags or attributes added to HTML forms, but would really get lost when it comes to XForms. That would require one to grasp XML syntax, different tags for forms, the separation of UI and data, XPath, and a number of other things. The intuitive leap is just too great. Instead, technologies must be created which allow the developer to take baby steps from one concept to the other. In fact, Opera has provided an alternative to XForms which is much more transitional, and, if suitably implemented, would likely be more widely adopted.

I've mentioned XAML a number of times recently. It falls into the same category. People are looking for something familiar to compare XAML to, usually comparing it to XUL, since they are both XML languages for constructing user interfaces. They do have very different purposes though. XUL was primarily developed for constructing Mozilla's UI, and for constructing web oriented applications. It wasn't designed so one could write a better alternative to Microsoft Excel or Adobe PhotoShop. Thus, XUL builds on existing web technologies such as CSS and JavaScript. Web developers are familiar with these so the transition is much simpler and smoother. XAML, on the other hand, is a transition only for .NET developers since it contains things from there but contains almost nothing from the Web. The gap is much too large for web developers, which may mean that it may have trouble getting any usage by that group.

Have you noticed how popular the web is? The web has slowly changed the way that developers and companies think about things. You can't just light a match and blow it away. Progress is done in small steps.