<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LivinOracm</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LivinOracm"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/LivinOracm"/>
	<updated>2026-06-06T14:52:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=namespaces-considered-harmful&amp;diff=35165</id>
		<title>namespaces-considered-harmful</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=namespaces-considered-harmful&amp;diff=35165"/>
		<updated>2008-12-16T17:50:34Z</updated>

		<summary type="html">&lt;p&gt;LivinOracm: cnacnari&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;bocnobocdron&lt;br /&gt;
&amp;lt;h1&amp;gt; namespaces considered harmful &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
&lt;br /&gt;
In particular namespaces for '''content''' are considered harmful (e.g. XML namespaces, QNames in attributes etc.).  Namespaces for code is outside the bounds of the topic of this page.&lt;br /&gt;
&lt;br /&gt;
Author/Editor: [http://tantek.com/ Tantek Ãelik]&lt;br /&gt;
&lt;br /&gt;
== namespaced content has failed ==&lt;br /&gt;
Namespaced content on the Web has failed.&lt;br /&gt;
&lt;br /&gt;
It's been tried by numerous groups, before microformats, and after.  It's even been tried in the context of RSS and RDF, and in practice people write&lt;br /&gt;
scrapers that look for namespace prefixes as if they are part of the element name, not as mere shorthands for namespace URIs.&lt;br /&gt;
&lt;br /&gt;
If you want to carry on a theoretical discussion of namespaces, please do so elsewhere, for in practice, discussing them is a waste of time, and&lt;br /&gt;
off-topic for microformats lists.&lt;br /&gt;
&lt;br /&gt;
=== namespaced content is not well supported ===&lt;br /&gt;
Namespaces are actually *not* well supported in sufficient modern browsers, nor even sufficiently with enough W3C technologies or test suites as compared to [[semantic-xhtml|(X)HTML]] + [[semantic-class-names]] + CSS.&lt;br /&gt;
&lt;br /&gt;
=== articles documenting the failure of namespaced content ===&lt;br /&gt;
The mixed namespace approach has already been tried by *numerous* others since 1998 and has failed on the Web.&lt;br /&gt;
* [http://blog.davidjanes.com/:entry:davidjanes-2005-10-04-0000/ XML - what is it good for? by David Janes]&lt;br /&gt;
* [http://www.xml.com/pub/a/2004/07/21/dive.html XML on the Web has Failed by Mark Pilgrim]&lt;br /&gt;
* [http://microformats.org/blog/2006/01/09/tim-bray-on-creating-xml-dialects/ Tim Bray on creating XML dialects]&lt;br /&gt;
&lt;br /&gt;
=== implementation experience lacks beneficial anecdotes ===&lt;br /&gt;
As [http://krijnhoetmer.nl/irc-logs/whatwg/20080801#l-153 hsivonen noted in IRC 2008-08-01]: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;I had dinner with friends who write software. It seems to me that when people who have had to deal with Namespaces in XML can talk freely, they never have anecdotes about how Namespaces have helped them. Instead, they have negative comments. OTOH, devil's advocate scenarios where Namespaces could help come from people who don't have to deal with Namespaces as part of their work.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== namespaces for content are a negative ==&lt;br /&gt;
Namespaces are actually a *huge* negative.  Search for:&lt;br /&gt;
* [http://www.google.com/search?q=namespaces%20Tower%20of%20Babel namespaces Tower of Babel]&lt;br /&gt;
* [http://www.google.com/search?q=namespaces+syntactic+vinegar namespaces syntactic vinegar]&lt;br /&gt;
&lt;br /&gt;
=== namespaced content discourages interoperability of data ===&lt;br /&gt;
Namespaces encourage people to seclude themselves in their own namespace and invent their own schema rather than reusing existing elements in existing formats.  This hurts interoperability because a dozen different namespaces can all have their own slightly different semantics for the same element.  See [http://esw.w3.org/topic/BuildOrBuyTerms BuildOrBuy] for support for this argument, specifically &lt;br /&gt;
&amp;lt;blockquote&amp;gt;Use somebody elses rather than making aliases on purpose. It's one thing to make your own and then discover that there's something equivalent out there. It's quite another to willfully clutter the semantic web with aliases; the latter increases the burden on the community of consuming your data, so it's anti-social.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you start thinking about the web in terms of OOP and polymorphism, namespaces break the polymorphic model that allows you handle widely varied data structures using the same methods.&lt;br /&gt;
&lt;br /&gt;
=== using namespaces cost a lot of time ===&lt;br /&gt;
From the #whatwg IRC channel on irc.freenode.net [http://krijnhoetmer.nl/irc-logs/whatwg/20071025#l-148 on 2007-10-25]: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;# [15:43] &amp;amp;lt;&amp;lt;cite&amp;gt;hsivonen&amp;lt;/cite&amp;gt;&amp;amp;gt; I wonder how many hours in my life has been wasted looking up namespace URIs for copying and pasting&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== example of fundamental software engineering error ===&lt;br /&gt;
As [http://krijnhoetmer.nl/irc-logs/whatwg/20080801#l-160 othermaciej observed in IRC 2008-08-01]: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;Namespaces are an example of the Fundamental Software Engineering Error, which is that something too terrible to actually use can be fixed by adding a level of indirection. Sometimes that is true but software engineers try to do it even when it clearly is not.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== non-namespaced techniques have been succeeding ==&lt;br /&gt;
On the other hand, XHTML + [[semantic-class-names]] (aka [[POSH]]) has seen widespread adoption among the web authoring/design/IA/publishing community.  Microformats is leveraging the approach that is both working better and frankly dominating in practice on the Web.&lt;br /&gt;
&lt;br /&gt;
== more ==&lt;br /&gt;
=== Well, what about hAtom? ===&lt;br /&gt;
[[hAtom]] appears to use to namespaces. In particular:&lt;br /&gt;
* entry-title&lt;br /&gt;
* entry-content&lt;br /&gt;
* entry-summary&lt;br /&gt;
&lt;br /&gt;
It just looks like it uses an &amp;quot;emulates namespace&amp;quot; - the definition of those three items ''is so specific to the problem domain'' that we invented names specifically for that. For example,  &amp;quot;entry-title&amp;quot; isn't any old title, it's specifically the Atom concept of a title. You could imagine a blog post semantically marked up where a &amp;quot;fn&amp;quot; is around the entry-title with some more information (&amp;quot;David Janes says...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[plain-old-xml-considered-harmful]]&lt;br /&gt;
* [[microformats-easier-than-xml]]&lt;br /&gt;
* [[semantic-xhtml]]&lt;br /&gt;
* [[semantic-class-names]]&lt;br /&gt;
* [[namespaced-attributes-considered-harmful]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Namespace Wikipedia on namespaces]&lt;br /&gt;
* [http://wiki.whatwg.org/wiki/Namespace_confusion Namespace confusion on the WHATWG wiki]&lt;/div&gt;</summary>
		<author><name>LivinOracm</name></author>
	</entry>
</feed>