A series of thoughts: (01)
== Refactoring == (02)
The need to refactor is not, in any way, unique to Wikis. Any attempt to
record knowledge and then update it faces this problem. Our ideas of how the
information is best organized for use changes over time. Even if we could
have all the information at the beginning, which we never do, we would still
need to reorganize it as our ideas of how to use it change. (03)
Refactoring is necessary in programs, Wikis, documents of all sorts, novels,
songs, ... anything that lives and evolves requires refactoring. (04)
== Wiki Words == (05)
Discussing wiki words in cognitive terms is an after-the-fact operation.
Wikis were a hack developed by programmers for programmers. In a programming
language, you need to have identifiers or names for the constructs that are
programmer defined. Once language could use reasonable length names, we
found the need to have multiple words in the names. There are essentially 2
approaches that won out -- separate the words with underlines (C-like) or
camel case (Pascal-like). Both require shifted characters, and camel case
won and stuck (partly because links are underlined and so camel case is
distinctive when underlined. (06)
Given that, the cognitive issue is the same as that in a programming
language -- haw best to construct an identifier. The fact that the
identifier is another page of text doesn't change the essential
characteristic at all. (07)
Problems develop when people who have never programmed try to use Wikis cold
to create documents. They don't have quite the mind set to make that easy. (08)
== Uses of "Smart ASCII" == (09)
That then brings up the different uses of "smart ASCII", and how different
uses affect the language definition. Wikis require more care in construction
that email in the sense that wiki pages are intended to persist, where email
is "one off". The wiki editor is typically the simple minded editor
available in browsers. The test is short. The author is (sort of) expected
to have some of the mind set of the creator -- programming. (010)
Etext as in Project Gutenberg is intended to be as vanilla text as possible
for historical reason, and the problem is to deduce intent in order to
create markup. (011)
If you are using StructuredText or reStructuredText, you are generally
creating sizeable documents rather than notes or essays. Thus the need for
more structuring tools, and facilities for documents (footnotes, citations,
index entries). (012)
== HTML as a Target == (013)
All of these systems translate to HTML as one of their main transformation
targets. Thus most of the features of the markup systems are more or less
directly HTML features, at least in the early stage. Complication begins to
set in big time as the markup system tries to encompass more and more HTML
features. (014)
Wiki links are simple to create, but then you start wanting to reference
URLs outside the wiki, and the link syntax gets increasingly complex as the
variety of links that need to be represented grows. (015)
Nearly every markup system needs to be have some simple way of specifying
the text and the URL for a hyperlink in addition to whatever simple syntax
it uses for its common links. (016)
== Template Systems == (017)
Just to get really hairy, some markup systems have turned into templating
systems where program code can be either mixed or separated (depending on
your approach), and the markup again starts out simple and gets
progressively more complex. (018)
== Design Principles == (019)
More on this later, but the general idea is that the simplest of things
should be simple and look good, and the harder things should be only a bit
harder. (020)
No matter what, there comes a point where you just bit the bullet ad go to a
full markup system such as any of the HTML variants, or some text
presentation system (TeX, RTF, etc.). (021)
Thanks, (022)
Garold (Gary) L. Johnson
DYNAMIC Alternatives.
dynalt@dynalt.com (023)
--
This message is archived at: (024)
http://collab.blueoxen.net/forums/cgi-bin/mesg.cgi?a=tools-yak&i=MIEJJJFBHJEBDEKGPHOPIEMPEDAA.dynalt@dynalt.com (025)
|