Thinking about picking the Groovy DSL book up again 6

Posted by Warner Onstine on March 26, 2008

But before I do I thought I’d ask everyone out there (who are interested in such a book), what would you like to see in it?

One possibility I’ve been tossing around is to turn it into a techniques or cookbook-style book. I’ve been reading through “Designing Interfaces” by Jennifer Tidwell. In this book she organizes the interface solutions into different sections and goes through each one with an example and what it solves and when to use it. I really like this idea (but others might not). Originally my book was a “How do I get started designing DSLs?” and “What in the world are they and why should I care?”.

Another thing I’ve been thinking about is ditching the Java part and making it Groovy only. This appeals to me because I feel that Groovy is much cleaner to implement an Internal DSL than Java is. Can you do DSLs in Java? Of course you can, but I’m not sure that I can give it the best treatment because it isn’t what I’m passionate about.

So, sound off in the comments, let me know what topics you’d like to see covered, what challenges have you faced in writing a DSL (or API/Framework) that you would have liked someone to trailblaze for you to show the dead-ends first?

Share and Enjoy:
  • Print
  • Digg
  • Reddit
  • del.icio.us
  • Twitter
  • Facebook
  • Google Bookmarks
  • DZone

DSL book on hold…unfortunately

Posted by Warner Onstine on October 30, 2007

Well we got the first round of reviews back from the technical reviewers and there’s a lot of work to be done. So much so that we’ve decided to put the book on hold while we regroup and figure out if/how we are going to address the issues that the reviewers found with the book. In a lot of cases it is going to require a complete rewrite of the example (and hence the chapter itself). Personally I feel the core is there, but maybe the examples weren’t as fleshed out as they could have been.

Now of course I’m a little embarrassed that I announced the book before it was done, but that’s what happens sometimes. Not sure at this point whether or not the book will continue, taking some time to regroup/rethink things and see if it is something that I want to push forward with.

I will keep everyone up to date here on the progress of things once I’ve decided what to do. In the meantime I am going to get back to some of my back-burner projects (a few of which have some DSLs in them ;-) .

Share and Enjoy:
  • Print
  • Digg
  • Reddit
  • del.icio.us
  • Twitter
  • Facebook
  • Google Bookmarks
  • DZone

DSL book in progress 6

Posted by Warner Onstine on October 10, 2007

Now that things feel a little bit more final to me I thought I would take this opportunity to announce the book that’s been keeping me from blogging. The tentative title is Creating DSLs using Java and Groovy and it will be published by Pragmatic Programmers. I started working on this idea after last years No Fluff Just Stuff where I saw Neal Ford speak on DSLs and I talked to him briefly about a project I was working on. His talk inspired me to push forward with using DSLs for code generation specifically using Groovy.

The book will cover both Java and Groovy techniques for writing DSLs, as well as have some general guidelines for writing DSLs. We also have a chapter on ANTLR and JavaCC for writing external DSLs using Java. I tried to cover as much as I could of Groovy meta-programming and some of the additional capabilities of Groovy that make it a good language to write an internal DSL on top of, but there’s only so much space ;-) .

We just sent off the book for peer review, which means its about half-way finished, maybe a little more. We are currently shooting for a release date sometime early next year, which looks very doable at this point, but I expect a ton of edits to come back from this first review.

On a final note I just want to say what a pleasure it has been working with the PragProg crew. I love, love, love their book build system and my editor Susannah rocks. I have had a blast working with them so far on this book and am looking forward to finishing this up and getting it published.

Share and Enjoy:
  • Print
  • Digg
  • Reddit
  • del.icio.us
  • Twitter
  • Facebook
  • Google Bookmarks
  • DZone

Passionate Programmers

Posted by Warner Onstine on December 21, 2006

This post started as a seed from interviews that we are holding for the project I’m working on for my day job (Kuali). The vast majority of the programmers that are working on this project are the cream of the crop from each institution. That isn’t to say that I’m one of those or that the rest of the programmers are not excellent, they are, but it’s a higher standard. This standard makes us that more critical when we choose new programmers that are going to come on to the project.

One of the qualities that I tend to look for (without really knowing it until recently) is passion. When someone comes in and just does the bare minimum or a little above that to get the job done it tells me that they have no passion for what they do. All of the good or excellent developers that I know all have a passion for programming. To them it isn’t just a job, it’s something they enjoy doing and they enjoy expanding their horizons, not because it is a part of their job, but because they truly enjoy it.

I think that this passion extends further than just this though, most of the good programmers that I know are passionate about other things and aren’t afraid to share their passion with other people. This of course can lead to either a healthy discourse or heated debate in the office or elsewhere ;-) , this is what happens when you get passionate people together. Of course one of the tricks of a truly good developer is to know when to put your passion (and your ego) on the shelf for the betterment of the project or task at hand.

Further along this line of thinking lies creativity, in his piece ”Hackers and Painters”, Paul Graham describes the commonality between hackers and painters

What hackers and painters have in common is that they’re both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things. They’re not doing research per se, though if in the course of trying to make good things they discover some new technique, so much the better.

And honestly I couldn’t have said it better myself, but I’ll elaborate on this idea a little further based on my personal experience. Every really good programmer that I’ve met has had some other creative bent, most of them have been musicians of one form or another, or they have really been into photography, painting, etc. I think that this derives from the desire to create, to make. One of the reasons why I like programming is because I like to make stuff, for me this has also extended to music, film, and writing (in fact I started out writing fiction way back in grade school). But it is the act of making, the act of getting something to work that fascinates me still. Whenever I hear a problem that needs a solution my mind immediately shifts into “maker” mode and I start thinking about how I could so do that – if only there were like 20 of me all of the cool ideas I’d ever had would be done ;-) .

This all leads back to passion, if you are truly passionate about what you do then you will do better at it, it really is that simple. But that doesn’t mean that that is where your passion has to end, I would say that if you are currently playing around with the idea of learning how to draw, or learn how to play an instrument, do it, don’t wait.

Share and Enjoy:
  • Print
  • Digg
  • Reddit
  • del.icio.us
  • Twitter
  • Facebook
  • Google Bookmarks
  • DZone

Easy AdSense by Unreal