So, where has all this DSL stuff been leading? One of my projects that has been sitting on the back-burner for a while has been Chama. Chama was born out of the frustration of writing the same boiler-plate code over and over for database-backed sites that are run on Tapestry. While you can certainly use something like Trails I was not happy with the additional amount of configuration I needed to do in order to get the forms to look and behave the way I wanted them to.
Why not use Ruby on Rails then, or even Grails if I want to stick with the Java theme?
A variety of reasons:
- I’m familiar with Tapestry, Hibernate, etc.
- I’m very familiar with Java
- I want to learn Groovy as a language
- I don’t want to switch out my deployment options to have to deal with deploying my apps to a new server and having to configure it all over again so that it’ll run RoR
- I like generators
, no really this is an exercise that I want to undertake and if others find value in it that’s great - Mostly to make it easier for me to get some app ideas I’ve had off of the ground
What will Chama use:
- Groovy as the primary language, with some Java thrown in where needed
- Most likely Yaml for configuration with JYaml for dealing with it
- Quite possibly several DSLs for each area (Model, View, Controller)
I don’t know yet exactly how far I’m going to take Chama, mostly I just want to get a tool together that will help me build stuff. If others find value in it and it gets extended from there and heads in a direction I never thought about, great! All the code will be available under an Apache License once I start working on stuff. I have some tentative dates setup in my Trac instance (what?! using Python for a Java app?). Comments are welcome, and I will use this blog to announce releases as they happen, the first milestone is set for 12/22/06 (oops was tomorrow, moving to two weeks, wow it’s been two weeks since I first set this up already).