Channels ▼


Interview With Ward Cunningham

DDJ: One of the big problems with wikis today is their complete non-portability. Do you have any thoughts about having some kind of standard markup or markdown format across wikis, or that they could all convert to, so that people could move wiki entries from one wiki to another? Do you have any thoughts on that?

Cunningham: Well, I do consider that a problem. I will point out that the wiki markup was completely portable until the second guy implemented a wiki. [Laughter.] But there was a time when wiki was young, and I was surprised at how often and how varied it was when cloned. Then I discovered 25 different ways to specify boldface. Do we need 25? Probably not. On the other hand, HTML had a completely adequate way to specify boldface and I chose not to use it. Actually, it had two ways, and I chose not to use either one of them. So I guess I'm not devoid of blame. As long as people have talked about the Tower of Babel, they've been wondering why we can't have just one language.

DDJ: I could extend this conversation to the back end, to the database entries for a wiki. It certainly seems like there should be some standard format that you could convert back and forth from.

Cunningham: I think there is a standardization project that got started, and then they approached me and I said, "You know, we're never going to get a standard, but we might come up with an interchange format. A little bit of everything, and good enough that you can communicate even if it isn't faithful to everything. And suggested the word "creole," which is kind of mixed language, you know, the native language and the enslaving oppressor language getting mixed together. So a couple years of effort, maybe more, went into defining that interchange format, including the strict and generous parsers of it. And it's been adopted in a number of places. It's just one more markup. So the only thing I can conclude is that as nice as having a universal or portable markup would be, it's not nice enough to cause people to give up what they're working on when they work on their wiki. I accept that as the state of nature and don't worry about it too much anymore.

DDJ: So is there, somewhere floating around in the universe, that interchange format for wikis?

Cunningham: Well, we ask that wiki implementers be able to read Creole and convert it to their format, and maybe export Creole. But if it ends up looking a lot like a mediawiki format, and maybe even a broken one at that, so if you didn't like mediawiki and you like something else, you want to do that. It had a fair shot at success and it didn't succeed. I will say that I'm trying again, and this time the hot new format that all the web kids do is JSON. So I'm saying, "Well, you know, at the higher levels, at kind of the page layout level, I'm happy with JSON. I'll use JSON. It's kind of a backend representation. And I'll have back ends talk to back ends passing JSON around. I think that that will be interesting. It's not going to replace mediawiki format, but for a new class of data wikis, I think it's just fine.

In the blogosphere, everybody gets their own blog site however they want to do it, and we all read each other's blogs. But that doesn't have the sharing characteristics of a wiki.

DDJ: So, what are you working on?

Cunningham: I'm wondering, where do all the wikis go to die? Or can they be immortal? In the document-preservation world, they say the only way to make something last forever is to let it duplicate without bounds. So I'm very interested in massive duplication of content. Of course, whenever you say prolific duplication, you've got to say, what gets duplicated? And it's kind of like gossip. And it puts out content out in kind of a Darwinian space, where the people who are paying to keep the disc spinning get to keep as much content streaming as they want. And the wiki aspect of this, of course this is exactly how the blogosphere works, right. In the blogosphere, everybody gets their own blog site however they want to do it, and we all read each other's blogs. But that doesn't have the sharing characteristics of a wiki.

And what I'm asking is, "What can I do to make something that has the storage and ownership sort of feel of a blogosphere but has the sharing capacity and the forming of consensus, as opposed to going off into our corners and talking to ourselves?" It's that consensus that you find in a wiki, and I believe I can do that by basically adhering to the formula that the Creative Commons gave us years ago, which is attribution, share alike. So I'll put my stuff out there and you're free to take it and make great stuff out of it, but just give me attribution, and when you're done, just share it the same way I am. And that's a formula.

Now if I back that up with software that makes that attribution automatic and makes that sharing, that creativity, let's call it refactoring. Let's say you write an article and maybe you write an article about me, and then I grab it and I say, that's not quite right, and I rearrange it because this week I think this is more important. And then my buddies look at it and say Ward is so vain, that's not important, these are the only three things he's ever done, and rewrite that article again. And it could bounce around a long time. And I wouldn't have much say about what they write, but I would be proud that they're writing about me. My notability will be measured by the number of people who bother to waste this space on me. So I call that the federated wiki, and the federation is the protocols that let us share effortlessly. So you have to kind of be OK with sharing, and kind of stamp that creative commons license on the page.

Now I call my project the smallest federated wiki, and that's just my excuse for really focusing on federation to the exclusion of a lot of other things. If I call it a wiki and I don't have any way to resolve conflicts, well, that's because I don't anticipate a lot of conflicts. If somebody else wants to put some conflict avoidance stuff or resolution into my wiki, that's fine. And I'll no longer be the smallest one. I have kind of a reputation for making systems that barely work but are always interesting.

DDJ: The smallest thing that could work, right?

Cunningham: Yes.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.