<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On Sep 8, 2005, at 20:22 , Richard A. O'Keefe wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">My first comment is that I found it very difficult to read.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">In two senses.<SPAN class="Apple-converted-space"> </SPAN>I normally browse with an old Netscape, and</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">basically all I saw was a sea of black with a few dots of</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">colour here and there.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV> This isn't a valid complaint. Although the page needs some minor changes to comply with the standard it's claiming, it's more or less what one would expect on any modern web site. If your browser is ten years old (a really dark time for the web), you shouldn't expect things to work well.</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Once I switched to Mozilla, the</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">only trouble was that it was horribly ugly, the kind of stuff</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">which says more about the page designer than about the content.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Normally I would not bother to read anything which pays so</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">little attention to the needs of readers.<SPAN class="Apple-converted-space"> </SPAN>Please, PLEASE,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">***PLEASE*** read Nielsen on web page design (<A href="http://useit.com">http://useit.com</A>).</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">The erlang-vs-java.html violates HTML readers' expectations in</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">so many pointless ways.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV> I think naming one or two of them would have been nice here.</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">plus a warning in the text that setters would add a lot more</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">code.<SPAN class="Apple-converted-space"> </SPAN>Well, if *I* were writing Java, I'd write</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space"><SPAN class="Apple-converted-tab"> </SPAN></SPAN>private accessor<> float callAmt;</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV> That is *not* java. When you write this, you do not write java. This is effectively saying you'd make a new language and transform it to java before compiling. If I do that in vim, it points out my syntax error. If I open that in eclipse, my project will just fail to work because it's not valid java and won't compile under a java compiler.</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Note that contrary to the comment in that web page, if you use ELIDE</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">to generate getters and setters (or anything else), the *generated*</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">code does *NOT* have to be maintained.<SPAN class="Apple-converted-space"> </SPAN>The Java+ELIDE programmer</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">need never as much as see it.<SPAN class="Apple-converted-space"> </SPAN>All that needs to be maintained is the</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">field declaration:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space"><SPAN class="Apple-converted-tab"> </SPAN></SPAN>private accessor<> mutator<> float callAmt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">It's not a matter of code being generated when you *edit* a program,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">but when you *build* it, just like nobody maintains the C code that</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">the Yacc parser generates.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV> Right, but people will need to maintain this code at some point. I've opened a lot of my projects in eclipse just for the sake of having it detect certain errors (I've used several other analysis tools as well...some work on source, some work on bytecode). This would not be an option here since you're really making a custom language that's almost, but not quite java.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> It's more like calling your yacc input ``C'' code to use your example. Sure, after running it through the special tool, it will compile under a C compiler, but it's hardly C.</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On the other hand, comparing Erlang binaries with explicit Java code</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">rather than Java serialisation *is* fair.<SPAN class="Apple-converted-space"> </SPAN>Erlang gets to inspect the</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">binary and decide whether to trust it, whereas Java serialisation means</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">letting the sender create an object in your address space (doing who</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">knows what in its constructor) *before* your program gets a chance to</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">look at it.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV> I don't quite understand what you're saying here. Objects don't have constructors, classes do. You can't deserialize a class the same way you deserialize an object. A deserialized object when being unmarshalled has to represent an instance of a class that is already available by name to the classloader that is deserializing it.</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">And of course most Java programmers don't have ELIDE, but that's</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">their problem, not mine.<SPAN class="Apple-converted-space"> </SPAN>If I didn't have ELIDE, I'd do whatever had</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">to be done in M4, or build my own tools in Prolog or Erlang or Scheme.</DIV></BLOCKQUOTE><BR></DIV><DIV> I don't think it's fair to call something ``java'' that no java tools recognize.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">--</P><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">SPY My girlfriend asked me which one I like better.</P><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">pub 1024/3CAE01D5 1994/11/03 Dustin Sallings <<A href="mailto:dustin@spy.net">dustin@spy.net</A>></P><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">| Key fingerprint = 87 02 57 08 02 D0 DA D6 C8 0F 3E 65 51 98 D8 BE</P><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">L_______________________ I hope the answer won't upset her. ____________</P><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><BR class="khtml-block-placeholder"></P> </DIV><BR></BODY></HTML>