<?xml version="1.0" encoding="UTF-8"?>











<rss version="2.0" xmlns:jf="http://www.jivesoftware.com/xmlns/jiveforums/rss">



<channel>
    <title>Support Forums: Message List - Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
    <link>http://www.theserverside.com</link>
    <description>Most recent forum messages</description>
    <language>en</language>
    
        <generator>Jive Forums Silver 5.5.30 (www.jivesoftware.com)</generator>
    
    <pubDate>Sun, 26 May 2013 05:42:53 -0400</pubDate>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>I think a more elegant solution, than having to define a class for each stage, involves using interfaces.<br>In essence your builder class should implement various interfaces (one for each stage), and instead of merely returning the builder...]]></description>
        

        <pubDate>Wed, 23 Apr 2008 04:26:10 -0400</pubDate>

        

        <jf:creationDate>Wed, 23 Apr 2008 04:26:10 -0400</jf:creationDate>
        <jf:modificationDate>Wed, 23 Apr 2008 04:26:10 -0400</jf:modificationDate>
        <jf:date>Apr 23, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[I think a more elegant solution, than having to define a class for each stage, involves using interfaces....]]></description>
        

        <pubDate>Wed, 23 Apr 2008 02:35:43 -0400</pubDate>

        

        <jf:creationDate>Wed, 23 Apr 2008 02:35:43 -0400</jf:creationDate>
        <jf:modificationDate>Wed, 23 Apr 2008 02:35:43 -0400</jf:modificationDate>
        <jf:date>Apr 23, 2008</jf:date>
        <jf:author>Gregory Vandenbroucke</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote><blockquote>closures: same as higher order functions</blockquote><br>There's a distinction. Closures refers first of all to scope binding.<br></blockquote>...]]></description>
        

        <pubDate>Mon, 21 Apr 2008 18:05:01 -0400</pubDate>

        

        <jf:creationDate>Mon, 21 Apr 2008 18:05:01 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 21 Apr 2008 18:05:01 -0400</jf:modificationDate>
        <jf:date>Apr 21, 2008</jf:date>
        <jf:author>Jesper Nordenberg</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>closures: same as higher order functions</blockquote>...]]></description>
        

        <pubDate>Mon, 21 Apr 2008 11:27:32 -0400</pubDate>

        

        <jf:creationDate>Mon, 21 Apr 2008 11:27:32 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 21 Apr 2008 11:27:32 -0400</jf:modificationDate>
        <jf:date>Apr 21, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote><br>Actually I don't think that in this particular case you can get much more readable in Scala or Haskell. And the things you mentioned are not actually that important, what makes functional DSLs so powerful and what I'm sorely missing is...]]></description>
        

        <pubDate>Mon, 21 Apr 2008 08:04:22 -0400</pubDate>

        

        <jf:creationDate>Mon, 21 Apr 2008 08:04:22 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 21 Apr 2008 08:04:22 -0400</jf:modificationDate>
        <jf:date>Apr 21, 2008</jf:date>
        <jf:author>Jesper Nordenberg</jf:author>
        <jf:replyCount>2</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>Yes, it's as powerful as what you can build in Scala, but until Java gets closures, type inference, case classes, pattern matching, implicits, operator overloading, for comprehensions etc. it's not nearly as readable as it would be in Scala....]]></description>
        

        <pubDate>Mon, 21 Apr 2008 06:01:38 -0400</pubDate>

        

        <jf:creationDate>Mon, 21 Apr 2008 06:01:38 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 21 Apr 2008 06:01:38 -0400</jf:modificationDate>
        <jf:date>Apr 21, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>3</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[Yes, it's as powerful as what you can build in Scala, but until Java gets closures, type inference, case classes, pattern matching, implicits, operator overloading, for comprehensions etc. it's not nearly as readable as it would be in Scala. I'm not...]]></description>
        

        <pubDate>Mon, 21 Apr 2008 03:49:53 -0400</pubDate>

        

        <jf:creationDate>Mon, 21 Apr 2008 03:49:53 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 21 Apr 2008 03:49:53 -0400</jf:modificationDate>
        <jf:date>Apr 21, 2008</jf:date>
        <jf:author>Jesper Nordenberg</jf:author>
        <jf:replyCount>4</jf:replyCount>
    </item>


    <item>

        <title>Re: Like Linq</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<a class="jive-link-external" href="https://bean-properties.dev.java.net/orm.html" target="_newWindow">https://bean-properties.dev.java.net/orm.html</a>]]></description>
        

        <pubDate>Sun, 20 Apr 2008 19:43:02 -0400</pubDate>

        

        <jf:creationDate>Sun, 20 Apr 2008 19:43:02 -0400</jf:creationDate>
        <jf:modificationDate>Sun, 20 Apr 2008 19:43:02 -0400</jf:modificationDate>
        <jf:date>Apr 20, 2008</jf:date>
        <jf:author>Rodolfo  de Paula</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Re: Like Linq</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>This example is amazingly like <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">Microsoft's Linq</a> in C# 3.0, which is a very elegant way to incorporate querying capabilities into C#. Is this something that can be done...]]></description>
        

        <pubDate>Sun, 20 Apr 2008 13:36:13 -0400</pubDate>

        

        <jf:creationDate>Sun, 20 Apr 2008 13:36:13 -0400</jf:creationDate>
        <jf:modificationDate>Sun, 20 Apr 2008 13:36:13 -0400</jf:modificationDate>
        <jf:date>Apr 20, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>Like Linq</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[This example is amazingly like <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">Microsoft's Linq</a> in C# 3.0, which is a very elegant way to incorporate querying capabilities into C#....]]></description>
        

        <pubDate>Sun, 20 Apr 2008 10:41:31 -0400</pubDate>

        

        <jf:creationDate>Sun, 20 Apr 2008 10:41:31 -0400</jf:creationDate>
        <jf:modificationDate>Sun, 20 Apr 2008 10:41:31 -0400</jf:modificationDate>
        <jf:date>Apr 20, 2008</jf:date>
        <jf:author>Andrew Eisenberg</jf:author>
        <jf:replyCount>2</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>In theory this is tempting, in practice this is ridiculously tedious, especially with today's tools.   The simple example though demonstrates the ability to accomplish that, doesn't expose the difficulties.</blockquote>...]]></description>
        

        <pubDate>Sat, 19 Apr 2008 15:01:49 -0400</pubDate>

        

        <jf:creationDate>Sat, 19 Apr 2008 15:01:49 -0400</jf:creationDate>
        <jf:modificationDate>Sat, 19 Apr 2008 15:01:49 -0400</jf:modificationDate>
        <jf:date>Apr 19, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>I think a better example would be this:<br>Person p = new PersonBuilder().setFirstName("Jean-Claude").setHair(Hair.BROWN).setHair(Hair.GREY);<br>The trick is to stage building<br>class PersonBuilder {<br>  public PersonHairBuilder...]]></description>
        

        <pubDate>Sat, 19 Apr 2008 13:36:12 -0400</pubDate>

        

        <jf:creationDate>Sat, 19 Apr 2008 13:36:12 -0400</jf:creationDate>
        <jf:modificationDate>Sat, 19 Apr 2008 13:36:12 -0400</jf:modificationDate>
        <jf:date>Apr 19, 2008</jf:date>
        <jf:author>Ilya Sterin</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>It seems to me that the only way to know that setHair() is no longer valid is to run code inside that object, which therefore needs to be compiled.</blockquote>...]]></description>
        

        <pubDate>Fri, 18 Apr 2008 18:53:25 -0400</pubDate>

        

        <jf:creationDate>Fri, 18 Apr 2008 18:53:25 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 18 Apr 2008 18:53:25 -0400</jf:modificationDate>
        <jf:date>Apr 18, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>4</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[<blockquote>p=new Person().setFirstName("Jean-Claude").setHair(Hair.BROWN).setHair(Hair.GREY);In this case, you can see where setting the hair color is done twice, which Jevgeni addresses by saying:<blockquote>The type you return from your DSL method...]]></description>
        

        <pubDate>Fri, 18 Apr 2008 18:20:02 -0400</pubDate>

        

        <jf:creationDate>Fri, 18 Apr 2008 18:20:02 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 18 Apr 2008 18:20:02 -0400</jf:modificationDate>
        <jf:date>Apr 18, 2008</jf:date>
        <jf:author>Cedric Beust</jf:author>
        <jf:replyCount>5</jf:replyCount>
    </item>


    <item>

        <title>Re: Typesafe DSLs in Java: Part 1 — Typesafe Bytecode</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=49095</link>

        

        
            <description><![CDATA[To give credit where credit is due -- the typesafe SQL stuff is joint work with Juhan Aasaru and Rein Raudjärv.]]></description>
        

        <pubDate>Fri, 18 Apr 2008 15:30:21 -0400</pubDate>

        

        <jf:creationDate>Fri, 18 Apr 2008 15:30:21 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 18 Apr 2008 15:30:21 -0400</jf:modificationDate>
        <jf:date>Apr 18, 2008</jf:date>
        <jf:author>Jevgeni Kabanov</jf:author>
        <jf:replyCount>3</jf:replyCount>
    </item>



</channel>
</rss>

