<div dir="ltr"><br><br><div class="gmail_quote">On Thu, Aug 28, 2008 at 3:18 AM, Gary Byers <span dir="ltr">&lt;<a href="mailto:gb@clozure.com">gb@clozure.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">I suspect (I don&#39;t know for sure) that the thing that&#39;d help most<br></div>
people the most in getting up to speed with using Cocoa in CCL is<br>
comfort and familiarity with CCL&#39;s FFI. &nbsp;If that&#39;s true (and to the<br>
extent that it is), it&#39;s somewhat unfortunate; when he first started<br>
working on it, Randall Beer said that ideally he&#39;d like the bridge to<br>
expose as much of Cocoa as possible while hiding as much of ObjC as<br>
possible. &nbsp;It&#39;s gotten closer to that goal over the years, but I<br>
suspect that a lot of things that people have trouble with could<br>
be blamed on the fact that ObjC (and some of the arcana of dealing<br>
with it) still isn&#39;t hidden well enough.</blockquote><div><br></div><div>Of all the language embeddings/FFI&#39;s I&#39;ve worked with, I think that Clozure CL&#39;s</div><div>implementation is the easiest I&#39;ve worked with. &nbsp;When getting started on the</div>
<div>Open Agent Engine port, it was pretty amazing how simple (and straightforward)</div><div>it was to translate a snippet of Objective C code from Apple&#39;s documentation</div><div>into something that would work in CCL.</div>
<div><br></div><div>The only &#39;complaint&#39; or suggestion I would have regarding the FFI would be to</div><div>make it easier to generate the CDB files. &nbsp;This is generally easy, but in some</div><div>cases (especially with the release of Leopard with the new ObjC 2.0 syntax)</div>
<div>it requires some clever declarations to ignore various things that Lisp doesn&#39;t</div><div>care about.</div><div><br></div><div>Perhaps you ship the FFI generator with Clozure; previously this had to be</div><div>
obtained from Gary or others (perhaps a valid first step in embarking on the</div><div>journey of accessing foreign data -- you will probably be chatting with Gary at some</div><div>point!)</div><div><br></div><div>I wish other Lisp&#39;s had Clozure&#39;s FFI facilities. &nbsp;Well, actually I don&#39;t really care</div>
<div>since I don&#39;t use them. &nbsp;;-P</div><div><br></div><div>-Brent</div></div><br></div>