<div dir="ltr">I don&#39;t think the approaches are that much different, except the design choice to build the compiler in Smalltalk versus C# offers the ability to support both a scripting model and an image-based model. It also makes the AST available as Smalltalk objects in addition to .NET reflection. I haven&#39;t seen much about what the DLR does outside of a scripting context but it seems to me you would need wrappers for all the hosted objects. The scripting model model is necessary in any case, if you want to allow fileins.<br>
<br>In my opinion the Smalltalk image and the .NET application domain are very similar concepts, although existing .NET tools don&#39;t emphasize that much. The DLR seems to address that, but it shouldn&#39;t matter what language it&#39;s written in. If there are MS scripting services that are already built in C# it should be straightforward for them to call .NET objects written in Smalltalk.<br>
<br>Smalltalk&#39;s incremental approach is much more flexible, and I think this is why most people don&#39;t do &quot;scripting&quot; in Smalltalk. IMHO, the best approach to support a development community is to build the best possible tools for yourself and make them available to whoever wants to use them. I wouldn&#39;t want to second-guess that people want something that I&#39;m not happy with. The more mainstream tools are also 20+ years old and a lot of the reasons they are the way they are is because that&#39;s how they&#39;ve always been, if you know what I mean :-)<br>
<br>Most of the work is done already in #Smalltalk so it makes sense to me to start there. I&#39;m not familiar with the parser generator and tokenizer tools for .NET - do IronPython and IronRuby use some equivalent of yacc and lex (aka bison and flex)? By all accounts the ruby parser is particularly nasty, but the Smalltalk syntax should be much easier to deal with. The SmaCC grammar should be possible to port if you think that&#39;s a superior approach.<br>
<br>Steve<br><br><div class="gmail_quote">2008/8/19 Gary Short <span dir="ltr">&lt;<a href="mailto:gary@garyshort.org">gary@garyshort.org</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">











<div link="blue" vlink="purple" lang="EN-US">

<div>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">The way I envisaged this progressing was to proceed much like
they did with IronPython; creating a tokenizer, a parser and an AST. I would
also envisage moving away from an image based model to a file based model. I'm
sure there are many out there who see this a blasphemy but I always saw this as
an impediment to Smalltalk being taken up by the general programming
population, even as far back as Smalltalk /V I saw this problem with me fellow
devs.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">As always, comments welcome.</span></p><div class="Ih2E3d">

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Regards,</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Gary</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"><a href="http://www.garyshort.org" target="_blank">http://www.garyshort.org</a></span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

</div><div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;">

<div>

<div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0cm 0cm;">

<p><b><span style="font-size: 10pt;">From:</span></b><span style="font-size: 10pt;">
<a href="mailto:uksmalltalk-bounces@lists.squeakfoundation.org" target="_blank">uksmalltalk-bounces@lists.squeakfoundation.org</a>
[mailto:<a href="mailto:uksmalltalk-bounces@lists.squeakfoundation.org" target="_blank">uksmalltalk-bounces@lists.squeakfoundation.org</a>] <b>On Behalf Of </b>Robert
Johnson<br>
<b>Sent:</b> 18 August 2008 04:28<br>
<b>To:</b> UK Smalltalk events<br>
<b>Subject:</b> Re: Whats happening with IronSmalltalk ?</span></p>

</div>

</div><div><div></div><div class="Wj3C7c">

<p>&nbsp;</p>

<div>

<p style="margin-bottom: 12pt;">Sorry I haven&#39;t communicated
sooner but I am fighting off a cold. <br>
<br>
Gary I definitely have time to work on this project starting next week. <br>
<br>
I think agree with Steve when he says: &quot;The easiest way to get this up and
running would probably be to have a look at SmaCC and #Smalltalk&quot;<br>
<br>
Why reinvent the wheel when there is a working model to create a baseline for
an IronSmalltalk implementation. I have been in contact with one of the authors
of #Smalltalk and he was great about answering a few questions.&nbsp; Tomorrow
I am going to take another look at the #Smaltalk code and implementation. <br>
<br>
I&#39;m open to any other Ideas that you and Steve ma have.<br>
<br>
Robert<br>
<br>
<br>
<br>
</p>

<div>

<p>On Sat, Aug 16, 2008 at 12:15 PM, Steve Wart &lt;<a href="mailto:steve.wart@gmail.com" target="_blank">steve.wart@gmail.com</a>&gt; wrote:</p>

<div>

<p>I took a look at the latest snapshots of the IronRuby code
from svn://<a href="http://rubyforge.org/var/svn/ironruby" target="_blank">rubyforge.org/var/svn/ironruby</a>
but I wasn&#39;t able to build it this time.<br>
<br>
There&#39;s an in-depth article about the DLR and IronPython at <a href="http://msdn.microsoft.com/en-us/magazine/cc163344.aspx" target="_blank">http://msdn.microsoft.com/en-us/magazine/cc163344.aspx</a>.
Python builds nicely and you can execute sample scripts but the code seems to
have been refactored quite a bit since then and the tutorial is now quite hard
to follow. The source is at <a href="http://www.codeplex.com/IronPython" target="_blank">http://www.codeplex.com/IronPython</a> - you will need to
install TortoiseSVN and a thing called SvnBridge to get the latest code from
Microsoft. The license is BSD-compatible.<br>
<br>
Both these projects and the underlying DLR seem to assume that dynamic
languages are scripting languages. I think that this is not entirely consistent
with the way Smalltalk works, but I suppose there&#39;s no reason you couldn&#39;t
build a Smalltalk compiler that works as a scripting language. You would need
to do something like this to bootstrap the environment anyhow.<br>
<br>
One of the things I like about Smalltalk is that all the tools (e.g.
Transcript, Workspace, Code Browsers and Debuggers) are all written in
Smalltalk (it&#39;s tortoises all the way down!). I think it would be interesting
to implement these components in a library that could be loaded into an
application domain for development purposes. I don&#39;t think that using vim or
emacs to develop Smalltalk code would be particularly productive and some
native tools would provide a more incremental development environment than
Visual Studio.<br>
<br>
To get started on a project like this I guess you would need to have a look at
building a Smalltalk Language Provider. The easiest way to get this up and
running would probably be to have a look at SmaCC and #Smalltalk - I think the
parsing and code generation would be much the same whether you&#39;re targeting the
CLR or the DLR.<br>
<br>
A key milestone might be to have something that&#39;s self hosting. If the DLR was
packaged as a DLL instead of a project dependency, then you could write the
compiler in Smalltalk instead of C#.<br>
<br>
The code is here <a href="http://www.refactory.com/Software/SharpSmalltalk/" target="_blank">http://www.refactory.com/Software/SharpSmalltalk/</a> - I think
it&#39;s already self-hosting on the CLR. I believe that John Brant discussed some
of the conceptual differences between Smalltalk and .NET on comp.lang.smalltalk
a few years ago.<br>
<span style="color: rgb(136, 136, 136);"><br>
Steve</span></p>

<div>

<div>

<p style="margin-bottom: 12pt;"><br>
<br>
</p>

<div>

<p>On Fri, Aug 15, 2008 at 7:06 AM, Steve Wart &lt;<a href="mailto:steve.wart@gmail.com" target="_blank">steve.wart@gmail.com</a>&gt;
wrote:</p>

<div>

<p style="margin-bottom: 12pt;">Could be interesting. I&#39;m not
using Windows much anymore but my PC should be here in a couple of weeks. I
managed to build IronRuby from source at one point. Based on what I&#39;ve read on
various blogs it sounds like it should be possible to extract the DLR from
that, but maybe your contacts in MS can point us at a DLR-specific svn
repository ;-)<br>
<br>
I suggest we set up a google or yahoo group to drive into the details. Anyone
who&#39;s interested in helping or lurking can follow along there.<br>
<br>
Cheers,<br>
Steve</p>

<div>

<p>2008/8/15 Gary Short &lt;<a href="mailto:gary@garyshort.org" target="_blank">gary@garyshort.org</a>&gt;</p>

<div>

<div>

<div>

<div>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Hello Robert,</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">With regard to IronSmalltalk, I
started it up just after I came back from the MVP summit in Seattle, I&#39;d been
talking to the dynamic languages team out there and got really fired up about
the idea. As normal, right after I posted about it I got swamped with work and
so, to date, it has gone nowhere. However, coincidentally, I am now in a
position to start working on it again. I&#39;m in the process of getting my head
around the DLR and the ANSI Smalltalk spec so, as yet, no actual code has been
written, but I&#39;m going to be getting to that soon (for some definition of soon
&lt;grin&gt;). As for do I need help? Hell yeah! LOL, are you (or anybody else)
interested?</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Regards,</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Gary</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"><a href="http://www.garyshort.org" target="_blank">http://www.garyshort.org</a></span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">MVP C#</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;">

<div>

<div style="border-style: solid none none; border-color: -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0cm 0cm;">

<p><b><span style="font-size: 10pt;">From:</span></b><span style="font-size: 10pt;"> <a href="mailto:uksmalltalk-bounces@lists.squeakfoundation.org" target="_blank">uksmalltalk-bounces@lists.squeakfoundation.org</a> [mailto:<a href="mailto:uksmalltalk-bounces@lists.squeakfoundation.org" target="_blank">uksmalltalk-bounces@lists.squeakfoundation.org</a>]
<b>On Behalf Of </b>Robert Johnson<br>
<b>Sent:</b> 14 August 2008 13:30<br>
<b>To:</b> <a href="mailto:uksmalltalk@lists.squeakfoundation.org" target="_blank">uksmalltalk@lists.squeakfoundation.org</a><br>
<b>Subject:</b> Whats happening with IronSmalltalk ?</span></p>

</div>

</div>

<div>

<p>&nbsp;</p>

<div>

<p>In May there was some discussion between Gary Short and Steve Wart<b> </b>about
the creating an IronSmalltalk implementation. Is someone currently working on
IronSmalltalk ? If so do they need any help?<br>
<br>
Robert Johnson</p>

</div>

<p>&nbsp;</p>

</div>

<p><span style="font-size: 10pt;">No virus found in this incoming message.<br>
Checked by AVG.<br>
Version: 7.5.524 / Virus Database: 270.6.3/1610 - Release Date: 13/08/2008
16:14</span></p>

</div>

</div>

</div>

<p>&nbsp;</p>

<p><span style="font-size: 10pt;">No virus found in this outgoing message.<br>
Checked by AVG.<br>
Version: 7.5.524 / Virus Database: 270.6.3/1612 - Release Date: 14/08/2008
18:03</span></p>

<p>&nbsp;</p>

</div>

</div>

<p style="margin-bottom: 12pt;">_______________________________________________<br>
uksmalltalk mailing list<br>
<a href="mailto:uksmalltalk@lists.squeakfoundation.org" target="_blank">uksmalltalk@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk</a></p>

</div>

<p>&nbsp;</p>

</div>

</div>

<p>&nbsp;</p>

</div>

</div>

</div>

<p style="margin-bottom: 12pt;"><br>
_______________________________________________<br>
uksmalltalk mailing list<br>
<a href="mailto:uksmalltalk@lists.squeakfoundation.org" target="_blank">uksmalltalk@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk</a></p>

</div>

<p>&nbsp;</p>

</div>

<p>&nbsp;</p>

</div></div><p><span style="font-size: 10pt;"><div><div></div><div class="Wj3C7c">No virus found in this incoming message.<br>
Checked by AVG.<br></div></div>
Version: 7.5.524 / Virus Database: 270.6.4/1617 - Release Date: 17/08/2008
12:58</span></p>

</div>

</div>

</div>


<br>

<p><font size="2"><div class="Ih2E3d">No virus found in this outgoing message.<br>
Checked by AVG.<br></div>
Version: 7.5.524 / Virus Database: 270.6.5/1619 - Release Date: 18/08/2008 17:39<br>
</font> </p>
<br>_______________________________________________<br>
uksmalltalk mailing list<br>
<a href="mailto:uksmalltalk@lists.squeakfoundation.org">uksmalltalk@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk</a><br>
<br></blockquote></div><br></div>