On Monday 13 April 2009, Eric Kow wrote: > On Mon, Apr 13, 2009 at 14:46:05 +0200, Daniel Carrera wrote: > > Before I say anything else, are you happy with "patch reordering"? I > > can go for that if you think it's really better. > > I can't speak for Stephen, but "patch reordering" seems to have the > right mix of conveying what we mean without making it sound magical or > hyped up.
I tried to think of what "patch reordering" can convey to me if I would be a new user and had no idea of the things I know now. To be honest it means ...nothing. At the same time it escapes me how reordering patches can help me or why would it be useful. Not only that, but it may even sound an alarm in my head if I'm used to all the other history based revision control systems out there. The VCS reordering the history of my repository without my consent? Why would anyone want that? IMO, the issue comes from the fact that technical, implementation related terms are used to describe it. I don't think such technical terms can be used in a description at all. They can only be brought on the table a bit later after the user gets some definitions and explanations of how things work. At that point you can already use the right terms, not some cosmetically trimmed down versions of them. When I first met darcs, it was a few years ago and there were not many distributes VCS out there. There was arch, tla (GNU's arch), bazaar (the first generation which was basically a derivative of arch) and darcs. In the non-distributed world, there were CVS and svn. I used CVS up to that point and was looking for something to replace it because of the numerous problems CVS had. svn looked like CVS on steroids and while it fixed some of the CVS problems it was still about the same. arch had an awkward, complex interface and using it felt like moving from programming in a high level language back to programming in assembly. bazaar was basically a clone of arch. There was word about bazaar-ng which attempted to implement the arch ideas but with a sane user interface, however it was in alpha so I didn't consider it. Then I came across the darcs site. I was immediately intrigued by the web page mentioning it was based on a theory of patches with roots in quantum mechanics. That immediately conveyed to me that it had a solid ground (theory of patches) and it made me curious what ideas from quantum mechanics were used. It was already available as a debian package, so installing it was easy. I tried it out and the first thing that I noticed was how simple and natural it was to use it. The user interface was (and still is) the best I found in a VCS. Today I would say that this quality and simplicity of the user interface comes from its symmetry and its orthogonality (both of which, I would say today, came from the quantum mechanics inspiration). The next thing I know, is that I have forgotten the references to the patch theory and quantum mechanics (even though they were the ones that intrigued me in the first place) and I was amazed by how easy it was to use darcs. The references to the patch theory and quantum mechanics were still in the back of my head and it was good to know that darcs had a solid foundation and was not yet another ad-hoc implementation. But they were intriguing intriguing enough in the first place to motivate me to try it out and discover the good things about darcs. So I think you must put something intriguing in the description, something to motivate people to dwell into it and learn more. Otherwise, no matter how non-technical the description is and how easy is for Common Joe to grasp the terms in it, it will be just another dull feature list to compare against the other VCSs. One may think that terms as "patch theory" or "quantum mechanics" are a no go for a description meant for new users, but in my case they made me curious enough to try it out and discover the good things about it. Another thing that captivated my attention was the idea that patches were central to the darcs philosophy, unlike revisions with the other VCSs. This appealed to me as a more natural approach, because this is how humans function. We think of a bug fix or a feature we implement as a patch that moves the tree to a new state. All of the darcs advanced featured like patch commutation and cherry picking were not obvious to me during the first contact and even if they would have been conveyed to me in a short description they would have probably meant nothing at that point. So if I'm to represent what captivated me in the first place was the nice user interface that made working with darcs a breeze and the novel concept of having the patch as the central entity in the system (I guess the latter is what actually stays at the base of all patch commutation, conflict resolution and other advanced features). The rest came in time because I was intrigued enough by the first contact and pleasantly surprised by the first use to want to move forward with it. I even remember later when I discovered notes about exponential conflicts and infinite waiting times in some cases, I still was motivated enough by the simplicity of the system to stay with it in spite of the serious problem it had in certain cases. Even nowadays, I find the darcs user interface to be the best available. Just as a comparison, many distributed VCS out there have almost if not over 100 (one hundred!) commands. That's insane. The closest that comes to darcs in this regard is mercurial which still has almost twice as many commands as darcs. IMO, you cannot represent a concept as patch commutation in a short description of darcs meant for newcomers, no matter how you dress it up to make it newbie friendly. What would help is to add the right hooks in that description that will intrigue people and make them want to learn more. If the ideas presented are intriguing they will want to find out more. Otherwise, if the terms you use do not captivate their attention and they do not understand it, or they don't see its relevance to them, they will simply discard it. -- Dan _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
