I'll come in again...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

I'll come in again...

Andreas.Raab
 
Folks -

I feel like I've been thoroughly misunderstood in the recent discussion
about using a distributed version control system. Let me try to make my
point as clearly as possible:

First of all I don't *care* whether to use a "distributed" VCS or not.
Is that clear? I really don't. What I care about for a version control
system is how easy it is to use and how well it integrates with the
system I use.

Having been clear on the initial point, my concern in this discussion is
about *why* people seem to be excited about using an DVCS. What I'm
hearing is "great, now we can fork" instead of "great, this will make it
easier to contribute".

There is a difference between a "branch" and a "fork". A "branch" is
something where you (usually temporarily) diverge from the main line in
order to make the original product better. A "fork" is a (usually
permanent) divergence from the main line WITHOUT the intention to make
the original product better. For example, Cog is a branch, Pharo is a fork.

Branches are *great*. Branches allow us to explore directions without
destabilizing the main development. Forks are *terrible*. Forks split
communities, force duplication of efforts, and split mindshare that
would better be spent on making the system better for everyone.

As a consequence, when I hear people being excited about the ability to
"fork" I am starting to ask myself what we can do to avoid the need for
forks. Forks don't just happen - there are events that lead up to it and
I am trying to understand if there's something we can do to alleviate
the perceived need for forking.

I'm not trying to tell you that you *must* host your private experiments
on Squeak.org - I am asking to find out what kind of frustration exist
in our current development process, and what we can do to address them.

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: I'll come in again...

stephane ducasse-2


On Jun 27, 2010, at 9:02 PM, Andreas Raab wrote:

> Folks -
>
> I feel like I've been thoroughly misunderstood in the recent discussion about using a distributed version control system. Let me try to make my point as clearly as possible:
>
> First of all I don't *care* whether to use a "distributed" VCS or not. Is that clear? I really don't. What I care about for a version control system is how easy it is to use and how well it integrates with the system I use.
>
> Having been clear on the initial point, my concern in this discussion is about *why* people seem to be excited about using an DVCS. What I'm hearing is "great, now we can fork" instead of "great, this will make it easier to contribute".
>
> There is a difference between a "branch" and a "fork". A "branch" is something where you (usually temporarily) diverge from the main line in order to make the original product better. A "fork" is a (usually permanent) divergence from the main line WITHOUT the intention to make the original product better. For example, Cog is a branch, Pharo is a fork.

a fork as croquet, Tweak and Etoy were (I recall myself harvesting Etoy changes in 3.9 without real support),
so just one more :)
For the record we knew that. Now this was the only way to move and as one of the writer of most of Squeak book and related material this was never an easy decision.

> Branches are *great*. Branches allow us to explore directions without destabilizing the main development. Forks are *terrible*. Forks split communities, force duplication of efforts, and split mindshare that would better be spent on making the system better for everyone.
>
> As a consequence, when I hear people being excited about the ability to "fork" I am starting to ask myself what we can do to avoid the need for forks. Forks don't just happen - there are events that lead up to it and I am trying to understand if there's something we can do to alleviate the perceived need for forking.
>
> I'm not trying to tell you that you *must* host your private experiments on Squeak.org - I am asking to find out what kind of frustration exist in our current development process, and what we can do to address them.
>
> Cheers,
>  - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: I'll come in again...

Igor Stasenko
In reply to this post by Andreas.Raab

On 27 June 2010 22:02, Andreas Raab <[hidden email]> wrote:

>
> Folks -
>
> I feel like I've been thoroughly misunderstood in the recent discussion
> about using a distributed version control system. Let me try to make my
> point as clearly as possible:
>
> First of all I don't *care* whether to use a "distributed" VCS or not. Is
> that clear? I really don't. What I care about for a version control system
> is how easy it is to use and how well it integrates with the system I use.
>
> Having been clear on the initial point, my concern in this discussion is
> about *why* people seem to be excited about using an DVCS. What I'm hearing
> is "great, now we can fork" instead of "great, this will make it easier to
> contribute".
>
> There is a difference between a "branch" and a "fork". A "branch" is
> something where you (usually temporarily) diverge from the main line in
> order to make the original product better. A "fork" is a (usually permanent)
> divergence from the main line WITHOUT the intention to make the original
> product better. For example, Cog is a branch, Pharo is a fork.
>
> Branches are *great*. Branches allow us to explore directions without
> destabilizing the main development. Forks are *terrible*. Forks split
> communities, force duplication of efforts, and split mindshare that would
> better be spent on making the system better for everyone.
>
> As a consequence, when I hear people being excited about the ability to
> "fork" I am starting to ask myself what we can do to avoid the need for
> forks. Forks don't just happen - there are events that lead up to it and I
> am trying to understand if there's something we can do to alleviate the
> perceived need for forking.
>
> I'm not trying to tell you that you *must* host your private experiments on
> Squeak.org - I am asking to find out what kind of frustration exist in our
> current development process, and what we can do to address them.
>

Say, i want to build & maintain my custom-built VM with minor tweaks.
Out of my mind: change the icon, splash image, initial window size,
build using custom set of plugins and things like that.
It is fine, when i only need these things in my corner, but when it goes to
share these things, i have a problem: i can't meaningfully share it,
without dubious sets of steps and instructions how to do it.
Does these tweaks constituting a full-blown fork? I don't think so.
Do a custom and/or highly experimental VMs constituting a new fork? I
don't think so.
It is the same as 'my custom 4.1-based image', which i want to share
with people.
So, what is wrong with that? And what harm it could do to the community?

As you said, fork is a divergence from the mainstream.
But you missing one important detail: it is always a political decision, not a
technical one.
For forking, it really doesn't matters what tools you use(d). Because
when you deciding to fork,
this is a least thing you care about, obviously, because since you
forked, you are free to choose
any other tools you might wanna use, tools that different from those
which used by mainstream.

My proposal to switch to DVCS was to make VM contribution process easier.
Easier to share developer's artifacts for review and evaluation.
Easier to track contributions and easier to integrate them to mainstream.

If results of some experiments, for some reason are not folded to mainstream,
then there are only one good reason for it: they are not accepted by
community because either
not very good or userful one.
And if looking from this point, what sense to fork then, since nobody
will use it anyways?

But completely different case, when some artifacts are not integrated,
because of technical issues
related to VM build & distribution process or they are lost and forgotten,
or there are simply not enough time for core developers to review them.
This is not acceptable, because it discourages developers from
contributing to VM and creates an
atmosphere of closed cult of high priests, which the only one who can
decide what to do and when.

> Cheers,
>  - Andreas
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: I'll come in again...

CdAB63
In reply to this post by Andreas.Raab
 
Em 27-06-2010 16:02, Andreas Raab escreveu:

>
> Folks -
>
> I feel like I've been thoroughly misunderstood in the recent
> discussion about using a distributed version control system. Let me
> try to make my point as clearly as possible:
>
> First of all I don't *care* whether to use a "distributed" VCS or not.
> Is that clear? I really don't. What I care about for a version control
> system is how easy it is to use and how well it integrates with the
> system I use.
>
> Having been clear on the initial point, my concern in this discussion
> is about *why* people seem to be excited about using an DVCS. What I'm
> hearing is "great, now we can fork" instead of "great, this will make
> it easier to contribute".
>
> There is a difference between a "branch" and a "fork". A "branch" is
> something where you (usually temporarily) diverge from the main line
> in order to make the original product better. A "fork" is a (usually
> permanent) divergence from the main line WITHOUT the intention to make
> the original product better. For example, Cog is a branch, Pharo is a
> fork.
>
> Branches are *great*. Branches allow us to explore directions without
> destabilizing the main development. Forks are *terrible*. Forks split
> communities, force duplication of efforts, and split mindshare that
> would better be spent on making the system better for everyone.
Forks are not always terrible. Sometimes they're just necessary. What's
terrible is when forked communities keep frictioning. I put things like
a divorce: when it happens friendly it's ok but litigious is usually nasty.

In the case of smalltalk and more particularly of squeak I am sorry and
bitter about the forks because community is just too small to allow a
friendly divorce. What is meant here?

First: there's just not enough people to ensure each fork will go ahead.
Most work is done in personal basis, without any kind of corporate
support (even academic) and results are not flourishing in terms of
commercial products, PhDs or even relevant papers. Fact is that even in
squeak.org we can't find a relevant list of recent papers. Much is
implementation of infrastructure that may turn out to have commercial
value (like seaside) but where are (really significant) commercial
results? Why seaside (for instance) didn't catch up like, let's say,
zope & people are still usually unaware even about its existence? IMOH
one of reasons is that efforts are very fractionated and potential
investors are averse of the kind of dispute that arouse inside community.

Second: the forks didn't happen due to extreme different visions related
to architecture or other key technical issues... in fact, most of
discrepancy originated in fields that could not be further from
scientific or technical development. Thus, science and technology didn't
profit from the split and key pending issues (like concurrency, etc)
stay open.

Third: as result of (1) and (2) above, it's not easy to get bucks ($$$)
for research & development either for squeak or any of the forks. Ok...
perhaps one or other of the parts receive some funding for some period
of time but if no papers/PhD/products or media coverage show up money
will just go away and what will stay is a bad name...

IMHO, all "forks" should be branches. It would allow people to keep
cooperating in a friendly way. It would allow people to concentrate in
experiments, science and industry and let "administrative tasks" for a
small committee instead of having "administrative committees" managing
tiny split communities. In Portuguese we say: too many chiefs for so few
Indians ("muitos caciques para poucos índios").

>
> As a consequence, when I hear people being excited about the ability
> to "fork" I am starting to ask myself what we can do to avoid the need
> for forks. Forks don't just happen - there are events that lead up to
> it and I am trying to understand if there's something we can do to
> alleviate the perceived need for forking.
>
> I'm not trying to tell you that you *must* host your private
> experiments on Squeak.org - I am asking to find out what kind of
> frustration exist in our current development process, and what we can
> do to address them.
>
> Cheers,
>   - Andreas
>
Best regards,

CdAB


signature.asc (269 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: I'll come in again...

Colin Putney
In reply to this post by Andreas.Raab


On 2010-06-27, at 12:02 PM, Andreas Raab wrote:

> Having been clear on the initial point, my concern in this discussion is about *why* people seem to be excited about using an DVCS. What I'm hearing is "great, now we can fork" instead of "great, this will make it easier to contribute".

I think it's just a matter of terminology. Github has a "fork" button which lets you make a copy of somebody else's public project and set up a separate repository for your own work. Later you can contribute your changes upstream with the "merge" button. This was a really big deal in the Github community, because it made branching into a one-click operation.

So I wouldn't worry about it. After all, people have always been able to fork the VM. What's been missing, and what a DVCS provides, is a way to merge again after you've done so.

Colin
Reply | Threaded
Open this post in threaded view
|

Re: I'll come in again...

John Dougan
In reply to this post by Igor Stasenko
 
Maybe some external input would help here:

http://www.joelonsoftware.com/items/2010/03/17.html
http://redmonk.com/sogrady/2010/04/01/github/
http://utsl.gen.nz/talks/git-svn/intro.html

"Distributed version control software is not incompatible with communal, centralized development. In practice, most projects that use distributed software still have one central repository that everyone syncs and submits to. They're not using the distributed software to split development off into isolated forks; they're using it precisely to allow work to be shared more easily without such hard boundaries between established developers and new contributors."

It's hard to explain the benefits, but perhaps I can show drawbacks. Monticello is a DVCS (albeit the simplest one imaginable and desperately needing better tool support). What would it Squeak development be like if we had no choice but to sync to the one SqueakSource rather then our own local package caches and network repositories? How would this change the ease of making contributions, trying complex experiments, managing the repository, working offline, etc.

Cheers,
  -- John

On Sun, Jun 27, 2010 at 13:06, Igor Stasenko <[hidden email]> wrote:

On 27 June 2010 22:02, Andreas Raab <[hidden email]> wrote:
>
> Folks -
>
> I feel like I've been thoroughly misunderstood in the recent discussion
> about using a distributed version control system. Let me try to make my
> point as clearly as possible:
>
> First of all I don't *care* whether to use a "distributed" VCS or not. Is
> that clear? I really don't. What I care about for a version control system
> is how easy it is to use and how well it integrates with the system I use.
>
> Having been clear on the initial point, my concern in this discussion is
> about *why* people seem to be excited about using an DVCS. What I'm hearing
> is "great, now we can fork" instead of "great, this will make it easier to
> contribute".
>
> There is a difference between a "branch" and a "fork". A "branch" is
> something where you (usually temporarily) diverge from the main line in
> order to make the original product better. A "fork" is a (usually permanent)
> divergence from the main line WITHOUT the intention to make the original
> product better. For example, Cog is a branch, Pharo is a fork.
>
> Branches are *great*. Branches allow us to explore directions without
> destabilizing the main development. Forks are *terrible*. Forks split
> communities, force duplication of efforts, and split mindshare that would
> better be spent on making the system better for everyone.
>
> As a consequence, when I hear people being excited about the ability to
> "fork" I am starting to ask myself what we can do to avoid the need for
> forks. Forks don't just happen - there are events that lead up to it and I
> am trying to understand if there's something we can do to alleviate the
> perceived need for forking.
>
> I'm not trying to tell you that you *must* host your private experiments on
> Squeak.org - I am asking to find out what kind of frustration exist in our
> current development process, and what we can do to address them.
>



--
John Dougan
[hidden email]