|
Russel Winder wrote: Adam, On Tue, 2008-10-28 at 08:36 +1100, Adam Murdoch wrote:Hi, My experience was the exact opposite. I spent maybe 3 hours last weekend doing a proof of concept port of the Gradle user guide to docbook. I started from scratch, with no knowledge of the docbook markup or the tools, and ended up with a gradle build which generates some reasonable looking html and pdfs. I followed the steps described in the user guide, and they just worked. No arcane art involved. Compare that to my attempts to generate the userguide using latex. I started with a build that was already set up, and latex source that had already been written. All I had to do was install the tools. Heh. I reckon it took about 5 hours. As a newcomer, I found the documentation cryptic, full of terminology no-one wanted to explain to me. I couldn't find any authoritative guide which would lead me through the installation and setup process. The tools didn't work and the usability of latex is insultingly bad when something goes wrong. Awful, just awful. And the end result was an ordinary looking pdf and some terrible html. To me, getting to the point where I could just generate the user guide was a truly frustrating experience. It most definitely was not a doddle. This is not the experience I want others to have when they want to contribute to the documentation. And I don't think my experience was unique for someone with no previous exposure to latex. I reckon it's representative of what most newcomers will go through. Then I decided to try to make the output look at bit better. I started with the html, as this was the worst by far. My experience was unpleasant beyond words. I reckon I spent 8 hours on this before I gave up. I could find no documentation to help me with this. I found snippets of config files on the internet. I dug through the source of tex4ht. I tried to find alternatives to tex4ht. Blerg. After all this I ended up with something that looked acceptable. But I still couldn't manage to do everything I wanted to. Any mechanism that involves a binary format such as Word or ODF is a disaster from a version control perspective. FlatFile ODF generates single line files, at least in OpenOffice.org, and so is useless for version control. The only sane formats are LaTeX and XML. And XML sucks for any form of human authorship -- it is a communication notation only for consenting computers. What's the problem with xml in this instance? You have to put pretty much the same mark-up in pretty much the same places as you do for latex.
This is one of the things I tried in my proof of concept. You can compose any logical docbook component (book, chapter, section, program listings, etc) from multiple source files, using the <include> tag: <include href=""/> Pretty much the same as latex. OK there are known idioms using entities for creating books from chapters, but it is including parts of code files that DocBook/XML seems to have no way of handling. True. I have the words backwards. The benefit is that I can put together a distribution of reasonable size (10s of megs) which the gradle build can install (by download or from source control), on any platform, and have a pretty good chance of the documentation generation working for any newcomer. And for the CI builds. The 100% Java bit is just the implementation. The tool support above is a much better line. Except that I don't want to write XML programs in IntelliJ IDEA :-) Yeah, but we're just writing a user guide here. We're not publishing a book. The docbook tools just have to work well enough. And they do. Both the html and pdf output look pretty good to me. XML-FO is simply an intermediate representation used by the toolchain I happened to use. There are other options for toolchains if we want to use them. For example, the build could use dblatex for pdf generation if it is installed, and fall back to xalan/fop if not. This gives us both the super low cost of contributing, with the typesetting goodness of latex.
But what choice do I have as someone who uses a mac? 600megs is a big distribution. For a while I thought the download was the wrong thing to get (how could it possibly be that big?) and kept chased around the documentation looking for the actual download. It's another factor that makes one think twice about contributing to Gradle's documentation. The argument about managing the toolchain is, however, a strong one, so keep on with that. I still hate authoring material in XML, or HTML for that matter. Also Subversion should be avoided as well :-) Yeah, but we're not writing books. We're writing a user guide. And we want people to contribute. To me, the most important factor for Gradle's documentation system is that it have the smallest possible mental and time cost for someone to pay before they can start to contribute. Docbook easily trumps latex here. Small cost of contributing is more important than whether we can do typesetting for printing. Or even what the markup language is.
Maybe it does. I couldn't find it. I spent a lot of time searching for it. I did find some good tutorials on how to write latex documents. But they really only covered the basic stuff like how to create a section or a table. They stopped long before all my questions were answered (such as, how do I install it?) Compare this with my docbook experience. About 15 minutes of searching found me the definitive guide and the user guide. These told me exactly what steps I needed to take. And answered pretty much all my questions about authoring, generation, and customisation.
I have managed to produce better looking output using docbook in far less time that it has taken using latex. I still don't have acceptably good output using latex. This is certainly another data point suggesting the crapness of latex. It takes only a small amount of effort (admittedly relatively expert effort, but then this is also true of DocBook?XML) to make a LaTeX document look good But it doesn't. The effort also includes the work of figuring out how to make the change. And in my experience, this is very high with latex. -- cf. "Python for Rookies" by Sarah Mount, James Shuttleworth, and errr.... me. Typeset purely in LaTeX by errr... me. And I am not a LaTeX expert, for that you need Sebastian Rahtz or one of that crew. (http://edu.cengage.co.uk/instructors/product.aspx?isbn=1844807010 http://www.amazon.co.uk/Python-Rookies-Sarah-Mount/dp/1844807010/ go on, you know you want to buy it :-) It would be nice to weave some of the content into the website. For example, chapter 2 would make an excellent 'Gradle in 10 minutes' page. And all of the samples with the associated words would work well assembled as a cookbook/FAQ page. So I think there are 3 outputs: standalone pdf and html userguides, and the website. There is no point in planning for situations that will not happen. Yeah, like publishing a book from this content. I suspect the quality of the HTML generation is a factor of the configuration of the tools not a problem with the tools per se. Refer back to the PDF generation issue. It is not LaTeX that is the problem here it is the configuration of LaTeX for this case. But configuring the tool is part of the cost of using the tool. It is very much an important factor for those who have to use it.
Quite possibly. My comments are, however, based on doing stuff, rather than just reading about stuff. Adam --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
- [gradle-dev] ditch latex? Adam Murdoch
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Adam Murdoch
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Adam Murdoch
- Re: [gradle-dev] ditch latex? Russel Winder
- Re: [gradle-dev] ditch latex? Adam Murdoch
- Re: [gradle-dev] ditch latex? Hans Dockter
- Re: [gradle-dev] ditch latex? Russel Winder
- Re: [gradle-dev] ditch latex? Hans Dockter
- Re: [gradle-dev] ditch latex? Russel Winder
- Re: [gradle-dev] ditch latex? Phil Messenger
- Re: [gradle-dev] ditch latex? Russel Winder
- Re: [gradle-dev] ditch latex? Peter Ledbrook
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Helmut Denk
- Re: [gradle-dev] ditch latex? Adam Murdoch
