Saturday, February 21, 2009

FrameMaker. Again.

At the end of the day, if you're going to write a book using some kind of authoring technology, you must decide on the technology you're going to use. I have real-world experience with FrameMaker, LaTeX, and Open Office, and I've looked into or played around with reST, XML with DocBook or DTBook (via Daisy), and Microsoft Word. I've tried to weigh their strengths and weaknesses with respect to issues I've discussed in this blog: conditional content, conditional and personalized formatting, WYSIWYG versus markup, multiple-platform publication, etc. The day has been long, but the time has come to end it, and my conclusion is that none of my choices is particularly attractive. Were I made of the same stuff as Donald Knuth, my solution would be to invent my own authoring technology, but I'm no Knuth, so I'm going to hold my nose and choose the least objectionable of the available options. For me, that's FrameMaker. Again. Sigh.

To a large degree, the decision boiled down to choosing the devil I know over the devils I don't. The more I looked into XML-based approaches, the more I became convinced that I'd have to educate myself in XML, XSLT, and CSS, technologies I don't know. (Not knowing them puts me horribly out of step with the modern world, but I've been busy with other things. If you want to know about the interaction of relaxed hardware memory models on C++ compiler optimizations, how to efficiently make use of the STL, or how to model embedded-system FSAs in C++, I'm your guy. I can also tell you a thing or two about the challenges of multiple-platform authoring.) I could learn those technologies, of course, and it would be interesting and useful for me to do so. But if I honestly want to get Fastware! written, I have to focus on that, and XML, XSLT, and CSS don't fall within that focus. Besides, I suspect (but have not confirmed) that when using an XML schema, I'm constrained to using the style (element?) names defined by the schema, and I'd prefer to use book-specific style names instead of generic names.

Regarding reST and LaTeX, the former I don't know, and the latter I've mostly forgotten. Both would require dealing with learning curves that would ultimately leave me in a place where I still would be unlikely to be able to achieve everything I wanted. Neither is WYSIWYG, for example, and a short time with reST revealed that it's not as expressive as I'd like.

Microsoft Word doesn't really do conditional content (though there is apparently an add-on that makes the feature available), and it has the irritating constraint that certain of its style names can't be deleted, but the real problem is that, based on my limited experience with it, the learning curve is both steep and essentially limitless. (In an earlier post, I likened it to that of C++.) It doesn't help that many authors with Word experience talk about it as if they were the victims of unusually sadistic domestic abuse.

My experience with Open Office led me to conclude that it simply isn't up to authoring the kind of book I want to write.

FrameMaker I already know. It's lacking in the areas of conditional formatting, per-copy personalization, and separation of content from presentation, but I have some ideas for how to deal with these limitations. Furthermore, FM can generate MIF, a textual representation of its documents, and MIF can be transformed into other formats if you throw enough programming effort at it. There's also the FDK (FrameMaker Developer Kit), an API for FM documents, so, again, there's a programmatic hook to do things myself that FrameMaker can't do. I've never tried to transform MIF or use the FDK, so if I have to go that route, I'm back in the land of learning curves, but I think there's a learning curve in front of me no matter what technology I choose. My sense is that, overall, the ratio of time spent writing to time spent fighting with the authoring technology is likely to be best with FrameMaker.

The more things change, the more they stay the same, the saying goes, and certainly that's been the case for me and book-writing. For at least the last 10 years, each time I've finished a book using FM, I've vowed not to use it again. The next time I got ready to start a book, I investigated the alternatives and talked to authors for recommendations. Each time I came away with the impression that there was no choice I was likely to find less unpleasant than Frame. The stuff I'm made of is apparently closer to Britney Spears than Donald Knuth, because oops, I'm going to do it again.


Nimrod said...

Perhaps I wasn't following you closely enough but I am interested as to what too will you be using for drawing diagrams for the book? Framemaker builtin? MS Visio? Other?

As to FrameMaker ... It used to be very popular as a platform for technical documentation in many companies. This is no longer the case and I would hestitate to predict the future of this tool. What would you do if it was no longer maintained by the time you get to the 2nd edition?

Scott Meyers said...

I haven't made a decision about what I'll do for diagrams. In the past, I've used FM, but my inclination this time is to use something that generates SVG. With SVG, I can do conditional formatting within the diagrams. At least that's my understanding.

As for the future of FM, I'm not worried about it going away. Version 9 was released just last month. I'm currently using version 6 and have no plans to upgrade.

For my next book, my guess is that I'll go through another iteration of the "isn't there something better than FM?" loop, just like I did before this one (and the one before that and the one before that...). By that time, I expect XML-based tools to be a lot more mature with much more support for WYSIWYG authoring. Migrating Fastware! to a new format for a new edition is unlikely to be a huge effort, at least not compared to the effort inherent in the writing the new edition.

Knowledge Stockpile said...

I came across your series of posts on choosing an authoring technology, hoping to find whether to use reST for document preparation. I have similar concerns as you had. Your posts were helpful (I am not giving up on reST yet, but what your posts tell me is that I need to find more about it before I put in the time and effort into it). Meanwhile, since you did not mention ConTeXt, I thought I should mention it. I think it makes authoring easier than LaTeX. The community is much smaller than LaTeX and no physical books that I am aware of. However, I have enjoyed using it more than LaTeX.

Scott Meyers said...

Thanks for the pointer to ConTeXt. I'll look into it.