Over the past few years, I’ve written a fair amount of text using HTML-based programs like MediaWiki, Atlassian’s Confluence, or Markdown. I’ve used Microsoft Word more than I care to admit. And while I can appreciate the niches that both Illustrator and OmniGraffle fit, and use both moderately heavily, neither is a general-purpose drawing program. Frankly, the entire crop of writing and drawing programs I’ve used in the past 10 years suck.
I miss WriteNow, FrameMaker, MacDraw, Canvas. I miss the promise of OpenDoc (that was so badly betrayed by its lackluster implementation). And while I’m a big booster of open source, none of the open source writing and drawing programs are very usable, stable or powerful.
Everyone writes, everyone draws, and everyone communicates. So, while the market for the tools I want is niche, I think there’s a huge market for a tool suite that can cater to all of us. WriteNow was a very good start for something that was easy to use and could produce decent results. FrameMaker was awesome, and while it had a learning curve, it wasn’t insanely steep like with Adobe Illustrator.
This is not a technical problem any more. Computers are far more powerful and software engineers far better at their craft compared to 30 years ago. It blows my mind that no one has produced a great writing program. It also is mindboggling that while we have phenomenal painting tools, we don’t have any great drawing tools. I mean, people use Visio to do their vector graphics! There’s something wrong with a world where that happens.
I would write these, except then I would be even farther from working on the projects I really want to do. We have the user expertise to just sit down and do these.
Part of the problem is that most of the effort goes into web-based tools that create HTML content, and HTML content just isn’t rich enough for book-level layout, not at the source level. You can render something into HTML that looks decent, but it would be too verbose to actually write it that way. And since the effort is going in to web-based tools, the drawing side uses SVG, and SVG is still immature, both in rendering and in capability.
Hmm, this just turned into a rant about the idea of separating content from presentation, which was the entire premise of markup in the first place, going back to at least the 1960s (my first experience with markup and writing was with Wordstar), and which drove the development of SGML – which most of you only know because its most famous sibling, HTML.
Here’s the killer program that needs to be written – we have very powerful computers that can do pattern recognition, so take advantage of it and create writing and drawing programs that can infer your structure from examples, letting you write in whatever form you want but be able to take advantage of both working at a very denotative manner (“hmm, I’ll make this Bodoni 18 point bold because I need this to stand out as a chapter heading”), but have the software be able to figure that out (“gosh, a lot of this text is in 12-point strung together in paragraphs, interspersed with some larger text set aside with whitespace, that must be a heading and that other thing is the first subheading, and I’ll just infer that structure”). So that half-way through, when you want to replace Bodoni with Palatino, you just do it annotative in the structure that was built for you. Or, you tweak the structure, or you completely replace it with the New Yorker style guideline because you’re submitting part of your magnum opus as a magazine article, or you take 20 of your books and completely reformat them into a consistent whole with a few simple operations.
Someone please make that, so I don’t have to.
And then, make a drawing program that’s the same way. I’d love to draw on a tablet and have my pitiful lines turned into the correct regular images, and I’d like to be able to apply styles to drawings the same way that we apply style sheets to text, and I’d like the drawing program to be able to figure out the difference between a connective line that sticks to a shape, and a decorative line that nonetheless should be grouped with related objects even if I don’t drag-select when I move. And of course when I put graphics into my text, the text and the graphics should know about each others’ visual properties so I can apply consistent styles automatically.
Someone make that too, please, so I don’t have to.