Development as gardening Was Re: [squeak-dev] [Cuis] Cuis

john wiljo at mac.com
Fri Jan 22 14:08:34 UTC 2010


Hello,

I've been lurking for the last seven years or so and I feel compelled to put in my two cents (quatre sous).

It really helps to look at open source development as a problem in non-linear dynamics. It is as likely that you will be able to predict the trajectory of development as it is that you will successfully herd cats with a cattle prod. What one can do, however, is condition the phase space in which developers interact. The idea is to establish a fixed point that represents the common ideals and values of the community. Then everybody takes a random walk in that space. As long as each step is contractive towards the ideal, the trajectory of the random walk will be an attractor process toward the fixed point.

How is this accomplished? I'd like to think the Squeak World Tour is a great example. It established the fixed point of reliable builds, modular code, comprehensive unit testing, agnostic app widgets etc. Someone once asked me if I felt bad that the World Tour was a failure. I paused for a moment to digest the message... it never occurred to me that it was anything but a resounding success.

So we don't have build scripts for components, but Squeak map certainly was inspired by the spike. We don't have ginsu and VSE like packages and clusters, but we have monticello and metacello. I recall the test runner opening up in those days with the SUnit self tests, the Exception tests we wrote and the Collection and Stream tests we wrote. Now, I find tests that cover a great proportion of the image. Oh yeah, there was that UIBuilder that built either MVC or Morphic widgets on top of the application model. That too has inspired a ToolBuilder project with devoted developers.

I care about ideals. There will always be friction in a community, but the evolution of trunk represents the community's trajectory toward the fixed point. It may not be the shortest route, but it is reliable. Big vehicles change direction slowly and should avoid acquiring such momentum that it shoots past its destination.

So my name isn't on the code. My way of doing each of these things is mouldering in a bit bucket somewhere. I care not a whit. Why? Because I'm more of a gardener. I don't make the seeds grow. I don't make the sun shine or the rain fall. But I am able to set up initial conditions and see what blooms. It seems there are two great gardens flourishing right now. The big meandering Squeak garden and the carefully pruned Pharo garden. Great! I love them both. Even better, they are now able to share improvements and discoveries each make with regard to the things growing in these gardens.

Sure, there are things that got lost on the way... (VSE style subsystems and programs with namespace support that didn't add any syntax to smalltalk and had no runtime cost is one I still long for) ... but look how far we have come as a community. I've been squeaking for more than a decade, and from that perspective I see great progress. For things the things I long for that are still missing, I must step back, assess where we are and ask myself, what seed captures the essence of what has been done before that should be again.... and start planning next years garden.

John Sarkela :-}>

On Jan 22, 2010, at 3:47 AM, Torsten Bergmann wrote:

>> Squeak ceases to be an interesting platform because it hasn't got any
>> continuous integration tools, it has no vision for such tools, and those 
>> it has got have just been discarded by the community without a second
>> thought.
> 
> There are CI tools available - have a look how Lukas builds 
> Seaside images from Pharo - he can even integrate the results in Hudson 
> (a Java CI platform), see [1] or check the builds live [2].
> 
>> If I use BOB to build and regression test my code it only makes sense 
>> if the seaside team also uses Bob to build and regression test their 
>> code and the same goes for magma etc  etc.
> 
> And since the seaside team is not going to use Bob and I dont see
> Squeak adopting your ideas after trunk I think your original vision 
> will not happen. At least not for Squeak/Seaside.
> 
> Most people I know use Monticello these days - it works even when
> there are still issues left. You are able to load/unload packages,
> have images with modularized packages and the ability to share
> work between platforms like Squeak, Gemstone and Pharo. You can
> even read Monticello into VisualWorks.
> 
> And there is Metacello now - solving the package management problem 
> for Monticello. Dont know if Squeak will adapt Metacello, if it will 
> not maintain Seaside or other packages separatly I think it should. 
> Hope people here will have a look at Metacello too. Only time will tell.
> 
> At least for Pharo I think Metacello becomes more widespread - 
> since Metacello does a good job (as far as I've tested) and it 
> is not bound to one platform. There are already many configurations
> available, even when it still lacks some tools. But it is maintained,
> documented, there is a commercial interest and it is well alive.
> 
> On the other side I dont see any progress on Sake/Bob these days
> (we all know about the reasons, but there is now no force behind it)
> 
> I understand most of your points, how hard it is to get fire from any
> side even when you tried to shape a better future and all
> the other problems discussed here - the real question for you is 
> if you are able to leave the past behind and will be able 
> to share a new future again within this community (even when it 
> will walk a different direction than you originally proposed/shaped).
> 
> Bye
> T.
> 
> [1] http://astares.blogspot.com/2010/01/hudson-build-for-smalltalk.html
> [2] http://hudson.lukas-renggli.ch/
> 
> -- 
> Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 -
> sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser
> 




More information about the Squeak-dev mailing list