<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>BlackBox : New project "Chama"</title>
    <link>http://www.warneronstine.com/blog/articles/2006/12/07/new-project-chama</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Where technology and art disappear</description>
    <item>
      <title>New project &amp;quot;Chama&amp;quot;</title>
      <description>&lt;p&gt;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 &lt;a href="http://warneronstine.com/cgi-bin/trac.cgi/"&gt;Chama&lt;/a&gt;. 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.&lt;/p&gt;

&lt;p&gt;Why not use Ruby on Rails then, or even &lt;a href="http://grails.codehaus.org"&gt;Grails&lt;/a&gt; if I want to stick with the Java theme?&lt;/p&gt;

&lt;p&gt;A variety of reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I'm familiar with Tapestry, Hibernate, etc.&lt;/li&gt;
&lt;li&gt;I'm very familiar with Java&lt;/li&gt;
&lt;li&gt;I want to learn &lt;a href="http://groovy.codehaus.org"&gt;Groovy&lt;/a&gt; as a language&lt;/li&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;I like generators ;-), no really this is an exercise that I want to undertake and if others find value in it that's great&lt;/li&gt;
&lt;li&gt;Mostly to make it easier for me to get some app ideas I've had off of the ground&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What will Chama use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groovy as the primary language, with some Java thrown in where needed&lt;/li&gt;
&lt;li&gt;Most likely &lt;a href="http://yaml.org/"&gt;Yaml&lt;/a&gt; for configuration with &lt;a href="http://jyaml.sourceforge.net/"&gt;JYaml&lt;/a&gt; for dealing with it&lt;/li&gt;
&lt;li&gt;Quite possibly several DSLs for each area (Model, View, Controller)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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 &lt;a href="http://warneronstine.com/cgi-bin/trac.cgi/"&gt;Trac&lt;/a&gt; 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).&lt;/p&gt;</description>
      <pubDate>Thu, 07 Dec 2006 22:50:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:9acd0cf1-1b27-4e2e-a9f1-913a59d5ab06</guid>
      <author>Warner Onstine</author>
      <link>http://www.warneronstine.com/blog/articles/2006/12/07/new-project-chama</link>
      <category>programming</category>
      <category>dsl</category>
      <category>java</category>
      <category>tapestry</category>
      <category>groovy</category>
      <category>chama</category>
      <trackback:ping>http://www.warneronstine.com/blog/articles/trackback/4</trackback:ping>
    </item>
  </channel>
</rss>
