I need some advice about the book
I have got the final reviews about the book (Building Domain Specific Languages with Boo), and a few of them talk about a problem in the book that I am not sure how to solve.
The problem is, quite simply, the book talks about Boo a lot. I see the book not as a academic topic, but as something that would give the reader actionable knowledge. At the same time, I try to cover the entire life cycle of a DSL. So the book covers things like how to design a good syntax, documenting DSLs, how to structure them, versioning issues and other aspects that are mostly agnostic to the actual tool that we use to build the DSL.
On the other hand, things like integrating with a unit testing framework, or building UI, or the exact particulars about how to build certain aspects of the DSL and common recipes for frequent problems are strongly tied to the actual technology that we are using. Oh, we can probably discuss some of them in abstract, but I don’t think it would be nearly as valuable.
One of the goals that I have when writing this book is to create an actionable document, one that you can use to start working on a DSL right away. There are several DSLs out there that I can directly trace to the book (Simple State Machine and Horn), so I think that I did a good job there.
The problem, as reflected in the reviews, that people expected to see much more about DSLs and maybe get some brief discussion about the actual implementation in Boo.
I think that the main issue is different expectations that they had, and I am wondering what we can do about it. One of the options that we consider is to rename the book to reflect what it actually contain better. However, I don’t know what name would suit it better, and I don’t even know if that is the best solutions.
Can you offer some suggestions?
Comments
I don't know, but it says "Boo" in the Book title - I for one would expect that the book has a particular emphasis on Boo, otherwise it would be called "Building Domain Specific Languages", would it not?
I'm with Frank on this one. I would expect the book to be heavily baised on Boo development because of the title.
Maybe a sub-title might help? "Getting practical usage of the Boo language for more productive DSL development". Ok maybe that is not great but you get the idea.
I don't think it's bad to focus on Boo, in fact lots of us are probably most excited about that very aspect of it. It seems like Boo is one of the best DSL authoring tools at this point so I dont see a problem with that. Perhaps you could add a chapter that focuses on how you can take the knowledge learned in this book and repurpose it for other DSL technologies (MGrammar?).
I like the idea of focusing on something actionable throughout the book more than just the theory but you could probably tie it all together at the end with a little abstract overview of everything you discussed.
Funny thing. I actually see it the other way around. I really enjoyed the Boo parts of the book, most notably chapter 6, and not finding myself as interested in the DSL parts. There is very little documentation on Boo itself, and your book is important in that aspect.
But I see that the pure Boo stuff, although a good Boo compiler extension introduction, might not be just as relevant if you're "just" into DSL's, or if you know Boo well enough already.
Maybe chapter 6 should be an appendix? But whatever you do, release the Boo parts in one form or another. It's important for the Boo community.
Go with standard manning naming scheme, "DSL with Boo in Action"
Hi Oren,
I was actually one of the reviewers of your MS. The thing I remember about your was the combination of actionable content with academic content. The first academic content was quite difficult to read for normal developers.
But what I think is as follows: Not every developer will read this book, because they don't have to. Not all developers are going to be working on DSLs are they? I think the title exactly covers the contents. First of all it's about Building DSLs, and this is done with Boo. If the book was called Boo in Action it has to have different contents, I think.
Mark
according to Mark Monster it sounds like the problem is the content is both academic and practical. This would leave people wanting more of one type of content or the other.
another way to look at it is: who is your target audience for this book?
If you want the average joe developer to read the book and write a DSL then the more code samples the better. Focus on how to write DSLs specifically with Boo. Briefly mention why (if at all).
If the book is meant to cover the concepts of DSLs (similar to Domain Driven Design by Evans) then the coding samples should be simple and sparse with focus on why you solve the problem a particular way.
One of the reasons I got this book in the MEAP edition is because of BOO. I really enjoy that and I sincerelly hope you don't change it.
There are other books that talk just about DSL's without examples in an specific language.
I bought it because of three factors: dsl, ayende, and boo. I wanted to learn more about both boo and dsl, this book is perfect for that. Also, I wanted to support your writing efforts, but that was the least of the three factors. Meaning I would have bought this book if it was by someone else anyway.
guess i'm not really helping solve this. ..good book though.
I think it's suitable to use Boo as your language of choice to write a DSL. First of all, there are other books that will explain what DSLs are indepth, and how to write a DSL in a conceptual level. I've read your book and I think it surfices to say that writing about an actual implementation using an actual language (like Boo) is more beneficial to most developers than an academic view of a conceptual implementation of DSLs. Unless the goal of your book is to be used academically.
Don't worry, I think it's a great book, and the title tells it all. "Building Domain Specific Languages with BOO".
How much Boo is there? I'd personally want to see that most of the Boo-specific information is in it's own chapters, or the Appendix. The the rest of the Boo throughout the book is just to demonstrate DSL concepts.
I like the idea of having a lot of Boo stuff btw (so I don't have to go buy a boo book just to get the DSL examples working).
Having read the book cover to cover I found it to be 100% spot on and gave me exactly what i needed to help create my own DSL http://code.google.com/p/log4net-altconf so you can add that to the list, I too would hate to see the content have to be changed.
I think changing the book title to make it explicit that you are talking about DSL + BOO would be best. I'd go for something like
"Building Domain Specific Languages with Boo"
Oh, that's what it is called :-)
It's quite clearly a DSL book for Boo. Some people not interested in Boo might read it for the DSL part alone, but they have no reason to complain that it contains Boo specific code etc.
I think, as many have commented, the title is clearly about DSL with Boo.
When reading the book title, It makes sense that it would be Boo specific. In fact, it would quite surprise me if the content was based on Foo instead.
That said, I have three questions:
When will the book be finished?
Will it be available online or only in print?
And how do I get my employer to buy it for me even though my job has nothing to do with DSLs?
1) hopefully soon, the content is done, now it is in final review & editing phases
2) online & in print
3) your problem, sorry.
I didn't finish the book yet, I'm at page 105. I didn't expect the book to be more about boo. I read the book because it is about DSL's not because it is about the language boo. I did never see a reason to use boo myself before I started at the book. I can easily learn the language boo without a book and have a lot of fun with it. (That's why I didn't finish the book yet). Maybe you can print the word boo on the cover not in black and DSL in white. The emphasis is on DSL not on Boo. I'll probably finish the book in the next 2 weeks and I'll start coding my first DSL in production code right after that.
Another suggestion: publish the book in latex or in whatever you write it in, so it easier to reformat it on ebook readers.
I wrote horn without much boo or even dsl experperience thanks both to the book and the rhino.dsl tests so i'll vouch for it's eorth.
if you're describing an internal dsl then you need the context of the language.
the explicit title leaves no room for misinterpretation.
I find these comments odd.
I am trying to buy that book for quite some time now, but it's never in stock at Amazon.
What I expect from it is to better understand how to work with boo as a DSL and how it can make my life as a developer easier by providing me some means of configuration through a compiled DSL instead of wading through tons of slow XML documents.
So whenever somebody talks about something I can try out right away (while still giving me enough to grasp the concept behind it) i'm happy.
It's a shame the book isn't available right now at Amazon.
Personally, I would be very interested in a book on DSLs that goes into the practicalities of building them. I believe I would be able to "port" that learning to a different language if required - and also, I see it as a bonus that you chose Boo, because it will give me an excuse to get to grips with it.
I don't think that's useful as a solution to your problem, but it might be nice to know there's a sale over here ;-)
As others have stated, it's a perfect title for the book.
I am a novice on DSLs - never written one. But I might be able to, once I finish the book and grok the concepts in it. And also, I was not much aware of other languages (apart from Ruby) in which a DSL could be built easily. So when I came to know of your book, it was like a 'WOW' moment for me - a language which is .Net compatible, and I could write DSLs :)
Obviously, although the Boo website is helpful, but having something in one place (appendix or other information on Boo) is much helpful and needed.
On the contrary, I was thinking of asking you to put some more details about compiler related classes (in Boo) because I was stuck at some point. Thankfully Tore's (one of the commenters on this thread) tutorials on his blog helped me (Thanks Tore).
So the bottom line, whatever is there in the book (including the title) is absolutely fine. Maybe you could add some Boo details (my choice) or DSL details, but please don't remove anything.
Will this be available as an LPE (Low Priced Edition for Indian sub-continent) immediately?
Wish you good luck.
Send me a PDF or Word document and I'll comment...
As a fanatical Boo head, I love having a good text to prosteletyze so many of the most interesting parts of Boo. Given Boo's numerous metaprogramming capabilities, I'm not sure how you would "genericize" the content.
Comment preview