Sean,

What do I think? I think that's a loaded question:)

Honestly? I THINK that we've reached a cross roads for Monticello/Metacello. I 
THINK of Metacello as a pontoon bridge that keeps goods and services flowing 
while we build the real bridge.

The "relentless evolution" of Pharo puts pressure on all parts of the 
ecosystem, in a good way.

As developers, this evolutionary pressure is experienced as pain:

  - pain in having to port perfectly good code to 
    yet another version of Pharo
  - pain in having to wait for other developers to 
    port their projects 
  - pain in finding new bugs in parts of the system 
    that "used to work"
  - pain in having to work in a system without the
    high level tools that you'd like (because they
    haven't been ported yet)

This is not a complaint. This is the reality. We can fold under the pressure or 
we can grow stronger.

Pharo is evolving for all of the right reasons so we must respond and evolve 
and relieve the pain without surrendering progress:

  Change is painful. 
  Change is necessary. 
  Therefore pain is necessary.

Metacello was originally developed to address specific pain points. It did a 
good job of addressing pain in some areas and not so good in other areas and of 
course, it also introduced a set of new pain points...

Monticello/Metacello spans the following broad areas:

  version control
  configuration management
  build management  

And the strain of trying to address each of these areas is showing. 

I THINK that it doesn't make sense to continue to try to address all three 
areas under one umbrella. The version control area is probably Metacello's 
weakest point and is the area where the most difficult technical problems 
remain to be addressed.

I THINK the best answer at the point is to divide and conquer. 

Thus the "crossroads."

I THINK that Git/GitHub is superior to Monticello/Metacello/SqueakSource. See 
my talk on "Practical Git for Smalltalk" for my arguments[1]. 

I THINK that as a community we will be better off embracing the technology 
available in Git/GitHub than reinventing that wheel. Not only does Git/GitHub 
make it possible to share Smalltalk source between dialects (by having shared 
source code format[2] and a shared version control system), but Git/GitHub 
removes one of the barriers that newcomers to Smalltalk face: Git/Github is 
familiar to millions of developers.

By eliminating version control responsibility from Metacello and embracing 
Git/GitHub a whole set of pain points are addressed.

We have the new pain points of learning and using Git/GitHub, but with 
Metacello we have yet to INVENT the capabilities that Git/GitHub brings to the 
table, so I THINK we are ahead of the game by embracing Git/GitHub. 

If you skim through the "Metacello Scripting API" README[3] you'll get a taste 
of how I THINK Metacello can bridge the gap between 
Monticello/Metacello/SqueakSource and FileTree[4]/Metacello/Git/GitHub. Don't 
get me wrong, there are still some areas to be figured out ... Symbolic 
versions occupy a unique niche in our environment and I haven't quite figured 
out a way to replace them in the git/github world....

I THINK that the two worlds (mcz and git) must coexist for a long time so there 
must be a seamless integration of the two.

The scripting API is being designed such that it can be included in the base 
image, so I THINK the scripting API (and Git/GitHub) will go a long ways 
towards removing the mystery from Configuration loads, while making the 
supporting tool set easier to build. 

I am still working out some of the finer points of integrating Metacello and 
Git/Github, but I'm hoping to have some concrete developments in the next month 
or so ...

Dale


[1] http://portal.sliderocket.com/vmware/STIC-2012-Practical-Git-for-Smalltalk
[2] https://github.com/CampSmalltalk/Cypress/blob/master/README.md
[3] 
https://github.com/dalehenrich/MetacelloScriptingApiSpec/blob/master/README.md
[4] https://github.com/dalehenrich/filetree/blob/master/README.md


----- Original Message -----
| From: "Sean P. DeNigris" <[email protected]>
| To: [email protected]
| Sent: Friday, April 27, 2012 9:08:17 PM
| Subject: Re: [Pharo-project] What about making the    configuration   browser 
more visible?
| 
| 
| Schwab,Wilhelm K wrote
| > 
| > Put another way, if it's that simple, why all the contrary
| > instructions
| > over time?
| > 
| 
| I understand your frustration. We are like parents watching a child
| grow
| up...
| 
| For one thing, the API has been evolving as we've learned. From
| loadLast/Latest, to bleedingEdge/development, now to symbolic
| versions
| (which were sorely needed).
| 
| The other impediment was that Metacello couldn't be assumed to have
| preloaded any base classes. Thus, ConfigurationOfXxx classes rely on
| someone
| manually (or automatically via tools) adding convenience methods.
| Without
| these, the API is hidden away in the project class.
| 
| Recently, there seemed to be some agreement between Squeak and Pharo
| to load
| some base Metacello classes. If Configs had a common subclass, I
| think the
| system browser would be much more helpful.
| 
| Dale, what do you think about all this?
| 
| HTH,
| Sean
| 
| p.s. of course ultimately, success depends on people testing projects
| and
| updating the configs...
| 
| --
| View this message in context:
| 
http://forum.world.st/What-about-making-the-configuration-browser-more-visible-tp4590573p4594228.html
| Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
| 
| 

Reply via email to