In every organization and program I've worked in, on, or for, Microsoft Word has been the ubiquitous means of capturing prose--be it engineering memos, documentation, white papers, specifications, plans, etc. The only tools/applications/medium that can even begin to challenge its dominance are email, which specializes in rapid and temporal communication rather that the historical, for-the-record niche of Word, and PowerPoint, which I can't even get into right now but that mostly suffices to convey superficial understanding to people who only kind of care.
The reasons for Word's dominance, or that of word processors in general, seems obvious: word processors create documents and books and papers--the primary means of non-verbal communication and lowest-overhead means of widely disseminating complex ideas.
But when used in a typical work-group environment (i.e. not at home, not for writing your novel), Word has critical blind spots. As an engineer, the most obvious are a lack of integrated version control, of the ability to easily see was-is changes and of a means for teams to concurrently work on a document without stepping on each other's toes.
I realize Word used to have embedded version control, but I don't know of people ever using it, mostly because they didn't know it existed or because they were paranoid about shipping the final product without stripping the historical data (and either way the function has been removed). And I know Word has track changes, but that tool requires the user to remember to turn it before editing or to perform a non-intuitive and often confusing document comparison (which gets worse when comparing a baseline to multiple, independently edited revisions).
On the other hand, a benefit of modern word processing is the ability to customize formatting, and for certain applications this freedom is paramount (although most professionals use Quark or Illustrator for serious graphics-arts-type page layout). But for many use cases (e.g. technical specifications, analysis reports, plans, or procedures), where content is king and presentation is a means to organize and ease the digestion of dense technical material and not the ends, the opportunities to endlessly fiddle with formating generate a cost that outweighs the benefit. Furthermore, the binary file formats of
.docx, and even
.rtf render traditional version control and diff programs useless.
So I find myself wondering if there's an alternative solution that can meet the needs of the large technical community currently using Word as their word processor and email, fileservers, or SharePoint as an ad hoc version control system. For this use case, I only see a couple top-level requirements (but am interested in anything I'm forgetting):
- allows basic formatting of text, defined as basically everything that Markdown supports plus ideally the math formatting of a LaTeX-like system, and tables
- stores content in plain text format so they can be efficiently tracked in a version control system designed for source code (Mercurial, Subversion, Git, etc.), diffed easily, concurrently edited, and then accurately merged.
I've considered Wikis, which might be a good option, but I don't have enough experience with how they handle concurrent editing and they don't seem well suited to branching and merging as collaborative teams finalize a product. Plus the lack of positive canonical control over the official baseline is a must for something like a specification and the ability to quickly revert is an insufficient control mechanism. After all, the spec is a contract.
In using Stack Exchange, I've quickly become both familiar and enamored with Markdown. Unlike the traditional binary file formats, Markdown is plain text and readable as such. However, when rendered in a browser or appropriate text editor it supports a fairly rich ability to customize formatting and presentation. Furthermore because it's plain text Markdown text files could be controlled within a modern DVCS framework, which could manage diffs, concurrent editing, versioning, etc.
Could a system based on a a light-weight markup language and a VCS serve as a suitable replacement for MS Word in a large number of applications, while simultaneously providing additional critical functionality that is sorely lacking in the current tools? What critical features of word processors am I ignoring that this new approach could not replicate? What would be the obstacles (both technical and cultural) to adoption of a radically new paradigm for generating documents?