<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.6000.16809" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial><FONT size=2>Okay, so&nbsp;<SPAN 
class=321271219-07032009>my</SPAN> project of the moment is to package a simple 
game app developed and running<BR>in Squeak into a lightweight and 
easily-distributable runtime.&nbsp; This isn't really a<BR>request for help or 
anything, and might be off topic for the list, (let me know if so)<BR>but might 
be of interest to some.&nbsp; More important to me :-) I might get some 
feedback<BR>that sends me in a better direction.&nbsp; So, if I sound like I 
need to know something,<BR>feel free to hit me with it.<SPAN 
class=321271219-07032009>&nbsp; (Also, btw, none of this should be seen as 
criticism; I'm</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=321271219-07032009>kind of 
falling in love with Squeak system, and my point here is to try to find 
ways</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=321271219-07032009>to spend more 
of my time doing more of it)</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Options:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>-&nbsp; Stripped Squeak image:&nbsp; I've picked up 
hints of various attempts at this (Dependency-<BR>walker type things, and 
scripts that disable developer tools).&nbsp; Seems that this is a<BR>hard 
problem though, between type-inferencing where variables can take on arbitrary 
types,<BR>and reflection, and dynamic evaluation, and so on.&nbsp; So, for now 
at least this is kind<BR>of a cumbersome and unwieldy way to deal with app 
deployment.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I need to look into the VM generation stuff.&nbsp; 
There's the whole thing about the Slang<BR>subset and C code generation of 
Smalltalk code, so there's already-existing knowlege and<BR>code to build 
on.&nbsp; </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Seems like it would be a good fit to go a level 
higher, and translate a bigger subset of<BR>Smalltalk into a higher-level 
language like C#, or maybe Java or C++.&nbsp; You'd be able to<BR>automatically 
translate a lot more of your Smalltalk codebase, and for the parts where<BR>you 
can't or don't want to (say to avoid bringing along the whole Morphic thing) 
you'd<BR>have a much better fit for plugging in a replacement 
library.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial size=2>RBParser/RBFormatter</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>So how much of Smalltalk libraries/image could be 
auto-dumped into C# classdefs?&nbsp; I'm<BR>looking at the RBParser/RBFormatter 
stuff now, and liking it -- nice little Visitor<BR>pattern for walking the parse 
nodes, and really a pretty small set of implementation<BR>methods to do the code 
generation.&nbsp; At a quick look it doesn't look hard to make a<BR>C# code 
generator out of it.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>UI libraries</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Anything currently running in squeak is probably 
going to be doing UI the squeak way<BR>-- which seems to mean one of several 
different, apparently kind of monstrous, packages,<BR>the which I haven't even 
begun to get a good handle on.&nbsp; All that Morphic (for example)<BR>stuff 
might be kind of cool, and might be necessary in a seriously cross-platform 
<BR>environment like Squeak,&nbsp; --but what about something like what Newspeak 
apparently did?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I've only skimmed this so far, but apparently 
they'd got running to some extent at least<BR>a UI system that uses native 
widgets for speed and simplicity.&nbsp; Their Hopscotch browser<BR>shows dynamic 
switching between Morphic and their native-style UI.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial size=2>So here's what I'd like to do.&nbsp; I think I 
heard that Newspeak got open-sourced due to<BR>lack of funding.&nbsp; So, I'm 
thinking that if I bring the Newspeak UI stuff into Squeak,<BR>and use it as the 
UI layer to develop in Squeak, I get the benefits of the 
rapid-<BR>prototyping/RAD Smalltalk style, using all the tools available 
therein.&nbsp; And I get the<BR>ability (maybe) to take the resulting Squeak 
application code, run an auto-translator<BR>on it to generate for example C# or 
Java versions of the application-specific classes,<BR>and link that code against 
a (so far non-existing) library that mimics the Newspeak 
UI<BR>classes.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial size=2>Anybody got thoughts on all this, or 'already 
been solved' kinds of comments?&nbsp; <BR>--A little bit of experimenting around 
in VW and in Dolphin Smalltalks shows that<BR>they at least have some kind of 
auto-deployment, at least for Windows.&nbsp; Am I missing<BR>the Squeak version 
of that, or am I right in thinking it's something that needs to<BR>be 
done?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial><FONT size=2>Kevin<SPAN class=321271219-07032009> 
Kelley</SPAN></FONT></FONT></FONT></DIV></DIV>
<DIV class=Section1>
<P class=MsoAutoSig style="TEXT-ALIGN: right" align=right><A 
href="http://kelleysoft.com/">kelleysoft.com</A></P>
<P class=MsoAutoSig style="TEXT-ALIGN: right" align=right><?xml:namespace prefix 
= o ns = "urn:schemas-microsoft-com:office:office" /><o:p>&nbsp;</o:p></P></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>