<div dir="ltr">Hi Zak,<div><br></div><div>Its really impressive to hear what you've accomplished, but I think you have a tough road ahead attracting collaborators and funding to take it to the next level.  I'm sure you're aware you've got a chicken-egg problem**.   Everyone is invested in the Smalltalk dialect they use, which comes with multiple libraries, a community of specialized collaborators and existing commercial funding streams, all of which reduce the effort and risks of using the system.  The question will always be, "what is the *massive* benefit of the new over the existing to make the effort and risk worthwhile?"</div><div><br></div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote">On Tue, May 16, 2017 at 2:01 AM, Zak Fenton <span dir="ltr"><<a href="mailto:zak.fenton@outlook.com" target="_blank">zak.fenton@outlook.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> <br>




<div dir="ltr">
<div id="gmail-m_-939659216469866441divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p>Hi folks. I posted earlier in squeak-dev about a Smalltalk implementation I've been working on. The first post was a bit unwieldy, but there was at least some interest so I'm posting an update to vm-dev and pharo-dev.</p>
<p>Main strong points are that it's embeddable (like Lua or SQLite) and scalable (like Erlang). There are weak points too, of course (e.g. hot loop performance will be much worse than Squeak/Pharo at this point).</p></div></div></blockquote><div>Its been a long time coming, but recently there has been progress towards an embeddable VM...</div><div><a href="http://forum.world.st/Removing-most-of-the-windowing-code-td4924496.html">http://forum.world.st/Removing-most-of-the-windowing-code-td4924496.html</a><br></div><div><a href="http://forum.world.st/Minheadless-VM-flavour-status-update-td4928091.html">http://forum.world.st/Minheadless-VM-flavour-status-update-td4928091.html</a><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div id="gmail-m_-939659216469866441divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p><span style="font-size:12pt">The VM itself is pure C and has no dependencies apart from libc and libm. It doesn't require a filesystem (you can pipe VM images through custom stream implementations or arrays) and it should run well in tight (~1MB) memory situations.</span><br></p></div></div></blockquote><div>Is 1MB for both VM and Image?</div><div>For comparison, the size of our minimal interpreter (sqstkspurlinuxhtminimal) is 1.2MB </div><div>Pharo's bootstrap image is about 6MB, </div><div>An embedded Image that just toggls an LED is supposed to be possible in 1KB.</div><div><a href="http://forum.world.st/MQTT-for-Squeak-tp4919880p4920819.html">http://forum.world.st/MQTT-for-Squeak-tp4919880p4920819.html</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div id="gmail-m_-939659216469866441divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p><span style="font-size:12pt">The extension system is similar to the Unix system call and virtual filesystem APIs, so it's kind-of object oriented but in a very "C" way. All extension resources are managed properly (so the system can clean up safely and/or warn you if you allocate memory
 and don't deallocate it, for example).</span><br></p><p>
<span></span></p>
<p><br>
</p>
<p>Extensions are available for cells (threads/individual VMs), shared memory (so different cells can communicate efficiently - but also with memory protection and calling features for implementing domain-specific JIT compilers), windowing and event handling
 (based on SDL2) and 2D graphics rendering (based on Cairo). There are some higher-level libraries (stylable GUI system, tight OS integration, 3D modelling, etc.).<br>
</p>
<p><br>
</p>
<p>It's polished in some ways (there's a test suite, an integrated help system, colour shell, etc.), but it needs a lot more refinement in others (the current GUI style is terrible, it needs more documentation, there's only minimal support for keyboard entry,
 no networking library, etc.).</p>
<p><br>
</p>
<p>I'd like to release it (ideally as 100% public domain/CC0), but I don't want to do so without some way of funding development. The project promises a lot and I want to actually deliver with some ongoing updates and support (and being able to pay rent next
 week would also be a plus), so I'm not interested in just dumping it on GitHub and calling it a day.</p>
<p><br>
</p>
<p>So I'm open to any suggestions as to how to fund this project at least in the short term and how it might fit into the wider Squeak/Pharo/Smalltalk ecosystems, as well as any technical criticism relating to the implementation itself.</p></div></div></blockquote><div>In [pharo-dev] its common to hear people say "my plate is full" regarding things they'd like to do if they had time, so I expect there are not a lot of spare cycles to investigate your system.  <br></div><div><br></div><div><div>While we know that Smalltalk will eventually take over the world ;), for now it is still a niche language, so the pool of angel investors is small.  I wish you luck, but my tough advice is... don't treat your implementation as a golden egg.  Use the experience your developed to collaborate on OpenSmalltalk [1].  If you can adapt that to fit your parallelism ideas, then you automatically gain an audience/market rather than having to overcome the chicken-egg to build a whole new community yourself.  Show some proof of concept and this might be more likely to get funding because of the wider ecosystem you get for free.</div><div><br></div><div>[1] <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm">https://github.com/OpenSmalltalk/opensmalltalk-vm</a></div><div><br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div id="gmail-m_-939659216469866441divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p><span style="font-size:12pt">I've put together a basic website describing the implementation in a bit more detail (sorry, no downloads yet):
</span><a href="http://a4vm.info/" class="gmail-m_-939659216469866441OWAAutoLink" id="gmail-m_-939659216469866441LPlnk884847" target="_blank" style="font-size:12pt">
http://a4vm.info/</a></p></div></div></blockquote><div><br></div><div>btw, where in Australia are you from?  I live in Collie, Western Australia.<br></div><div><br></div><div>cheers -ben </div></div></div></div></div>