<br><br><div class="gmail_quote">On Sat, Jan 28, 2012 at 10:07 AM, Dale Henrichs <span dir="ltr">&lt;<a href="mailto:dhenrich@vmware.com">dhenrich@vmware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Janko,<br>
<br>
I think the limitation for Smalltalk lies in source code management tools/styles ...<br>
<br>
With a file-based language 200 engineers can contribute to the project ...  each engineer can checkout a version of the system work in isolation then commit his or her work to the shared repository resolve conflicts and move on .... other engineers can easily integrate the work and so on ... the source code management tools scale ...<br>

<br>
In the mid nineties at ParcPlace systems the image was passed around from engineer to engineer so that he or she could integrate their work into the production image... this doesn&#39;t scale...<br></blockquote><div><br>
</div><div>False.  We used change sets to exchange small deltas.  We constructed base-line images (analogous to releases), but I never got an image from someone else except as a context in which a bug was easily reproducible.  By the late 90&#39;s we were using parcels to exchange components, and composing the image from these components.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
There have been proprietary source code management tools that have been created over the years. You can bet that the large companies that are invested in Smalltalk are using systems that are based on these proprietary systems, but you can also bet that they&#39;ve had to customize those systems for their needs...<br>

<br>
The file-based SCM systems work out of the box and don&#39;t care what language or even development process that is being used ... they are managing files ...<br></blockquote><div><br></div><div>I disagree.  If you&#39;ve ever used e.g. svn to manage something even medium-sized you&#39;ll find out it handles merge and distribution far worse than e.g. Monticello or Store.  The main difference is definition-level differencing and decomposition into components.  Typical copmponents in a file-based system are spread over a set of files, often with components tangling with each other in certain files.  This still happens in Smalltalk, but to a lesser extent, being more manageable with package overrides and e.g. schemes such as menu pragmas to provide soft integration of overlapping components.</div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
There is no standard SCM for Smalltalk and none of the file-based SCMs really fit Smalltalk. When we are arguing about whether git or mercurial is better on the Pharo list, I will retract that statement:).<br>
<br>
Without a standard SCM, the first thing that a 200 person engineering groups needs to do to start using Smalltalk is figure out (for themselves) how to share their work and keep 200 individual images in synch ... I&#39;m not necessarily convinced that anyone has really solved this one.<br>
</blockquote><div><br></div><div>This is a straw man.  Here&#39;s a scheme that works and scales.  Routinely produce a new baseline image which has the accepted main line merged into it.  People take this image, load their components into it and program relative to it.  Then they commit to the central repository when ready (being able to use their own local repositories for their own branches etc).  This scheme has appeared in various guises, from the original Smalltalk group (6-monthly baselines, meetings to decide the contents of the base image) to e.g. weekly builds at Qwaq.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Personally I believe that the problem is surmountable, but for whatever reason the Smalltalk community hasn&#39;t focussed on seriously addressing the SCM issue .... in the last 30 years or so:)<br></blockquote><div><br>
</div><div>Personally I find Monticello significantly more powerful than mercurial or svn, that I have a lot of experience with.  I disagree also that no-one has focussed on the issue  Both Cincom has put in significant effort into Store, and the Squeak community (yourself included) has put significant effort into Monticello.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Being able to repeatably build images based on a minimal core image is certainly headed in the right direction, but we still have a ways to go on the tools front ...<br></blockquote><div><br></div><div>Sure, but one can put together something for Smalltalk by hand in very little time.  If you compare building an automated bootstrap for Smalltalk (I just did one for Newspeak over the last few days) compared to using e.g. ANT, there&#39;s not much difference, except that the Smalltalk one is easily debuggable.</div>
<div><br></div><div>If there is a difference it is the self-containedness of Smalltalk vs the catholicism of file-based tools.  Smalltalk falls flat on its face when one wants to do ANT-like things that build other than purely Smalltalk artifacts.  Things like ANT are far weaker but far more general tools than their Smalltalk equivalents.  For me this comes dow to not enough emphasis on Smalltalk as a platform, where platform is something that supports integrating with the surrounding ecosystem.  In Squeak the FFI, file system and external process interfaces are really weak.  A good challenge would be to reimplement ANT (a Java application) in Squeak/Pharo.  That would force us to address real weaknesses.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<font color="#888888"><br>
Dale<br>
</font><div class="im"><br>
<br>
<br>
----- Original Message -----<br>
| From: &quot;Janko Mivšek&quot; &lt;<a href="mailto:janko.mivsek@eranova.si">janko.mivsek@eranova.si</a>&gt;<br>
</div><div><div></div><div class="h5">| To: <a href="mailto:Pharo-project@lists.gforge.inria.fr">Pharo-project@lists.gforge.inria.fr</a>, &quot;Squeak&quot; &lt;<a href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a>&gt;, &quot;VWNC&quot; &lt;<a href="mailto:vwnc@cs.uiuc.edu">vwnc@cs.uiuc.edu</a>&gt;<br>

| Sent: Saturday, January 28, 2012 7:46:32 AM<br>
| Subject: [squeak-dev] Smalltalk for small projects only?<br>
|<br>
| Hi guys,<br>
|<br>
| Ralph Johnson in his InfoQ interview made an interesting observation:<br>
|<br>
| 2:55 minute: &quot;Smalltalk made an fundamental error ... image ... you<br>
| can<br>
| build something with 4-5 people what 50 people can build in Java, but<br>
| if<br>
| you take 200 people in Java ... it is really designed for small<br>
| systems<br>
| ...  &quot;<br>
|<br>
| Are we because of the image really destined for relatively small<br>
| projects and small systems (of Java 50 people project size)?<br>
|<br>
| Are we really not able to scale to bigger projects/systems because of<br>
| that?<br>
|<br>
| Ok, there are few exceptions of course (JPMorgan, OOCL, ..), but<br>
| still...<br>
|<br>
| [1] <a href="http://www.infoq.com/interviews/johnson-armstrong-oop" target="_blank">http://www.infoq.com/interviews/johnson-armstrong-oop</a><br>
|<br>
| Best regards<br>
| Janko<br>
|<br>
|<br>
| --<br>
| Janko Mivšek<br>
| Aida/Web<br>
| Smalltalk Web Application Server<br>
| <a href="http://www.aidaweb.si" target="_blank">http://www.aidaweb.si</a><br>
|<br>
|<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div><br>