Re: [Python-Dev] And the winner is...
Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git? (My personal feeling is that any of the three is a huge improvement over subversion. I think git probably should have been written in Python with some stuff in C where necessary, and (perhaps) the hg guy really is right when he claims that Linus should have skipped git and used hg from the start. That notwithstanding, though, it kind of looks like git has won the mindshare war at this point, and I think the best hg can hope for from this point forward is a sort of *BSD to git's Linux. I do hope that it lives on, shutouts being fascist, etc. Aside: I once worked with the guy maintaining git, and he might have the greatest sum of talent plus humility of any programmer I ever met.)
On Mon, Mar 30, 2009 at 7:59 PM, Mike Coleman
Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git?
(My personal feeling is that any of the three is a huge improvement over subversion. I think git probably should have been written in Python with some stuff in C where necessary, and (perhaps) the hg guy really is right when he claims that Linus should have skipped git and used hg from the start. That notwithstanding, though, it kind of looks like git has won the mindshare war at this point, and I think the best hg can hope for from this point forward is a sort of *BSD to git's Linux. I do hope that it lives on, shutouts being fascist, etc.
Yeah, I also think I'll just stop developing Python now and suggest that you all switch to Java, which has clearly won the mindshare war for languages. :-)
Aside: I once worked with the guy maintaining git, and he might have the greatest sum of talent plus humility of any programmer I ever met.)
But is his humility enough to cancel out Linus's attitude? -- --Guido van Rossum (home page: http://www.python.org/~guido/)
Guido van Rossum wrote:
On Mon, Mar 30, 2009 at 7:59 PM, Mike Coleman
wrote: Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git?
(My personal feeling is that any of the three is a huge improvement over subversion. I think git probably should have been written in Python with some stuff in C where necessary, and (perhaps) the hg guy really is right when he claims that Linus should have skipped git and used hg from the start. That notwithstanding, though, it kind of looks like git has won the mindshare war at this point, and I think the best hg can hope for from this point forward is a sort of *BSD to git's Linux. I do hope that it lives on, shutouts being fascist, etc.
Yeah, I also think I'll just stop developing Python now and suggest that you all switch to Java, which has clearly won the mindshare war for languages. :-)
Aside: I once worked with the guy maintaining git, and he might have the greatest sum of talent plus humility of any programmer I ever met.)
But is his humility enough to cancel out Linus's attitude?
All the humility in the world pales besides Linus's attitude. But that's probably just because we are all fools. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ Want to know? Come to PyCon - soon! http://us.pycon.org/
On Mon, Mar 30, 2009 at 9:54 PM, Guido van Rossum
Yeah, I also think I'll just stop developing Python now and suggest that you all switch to Java, which has clearly won the mindshare war for languages. :-)
Heh. :-) Guess I should have said "mindshare among people whose technical opinions I give weight to". In that sense, Python mindshare seems to have been and to still be increasing steadily. (My Magic 8-ball says "future unclear" for Java.) The TIOBE index is entertaining, if you haven't seen it before: http://www.tiobe.com/content/paperinfo/tpci/index.html
But is his humility enough to cancel out Linus's attitude?
Why would I want to do that? :-) Seriously--thanks for all of your responses. If it wasn't clear, I was asking because I was curious about whether and why I should look some more at hg. I would never dream of trying to change anyone's mind... Mike
Mike Coleman writes:
Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git?
I think really it comes down to Guido's intuition. However, without attempting to channel Guido, as the git proponent in the PEP I'd like to go on record as saying that I'm quite satisfied with the outcome. The main thing is that git strongly encourages direct manipulation of the commit DAG, in the way that Lisp encourages direct manipulation of lists (even more so than Python does!) This opens the door to dramatic changes in the public workflow over time, viz. movement toward a Linux-kernel-like workflow. But the BDFL is not Linus, and Python is not the Linux kernel. My feeling (as the git proponent in the PEP who was surprised about the pushback I felt) is that some Python developers are visceral conservatives about workflow. Even cracking that door is unnerving. And most would rather avoid changes in the *community* workflow, despite eagerly looking forward to the changes in *personal* workflow that any of the distributed VCSes will enable. My feeling is that in that context, it's not a matter of which is "best". They're all good. But from the point of view of maintaining the good points of the current workflow, while enabling experiment and improvement by individual developers, I think Mercurial is most conservative alternative of the three. I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
I think git probably should have been written in Python with some stuff in C where necessary,
It wouldn't be that hard to do a rewrite in Python, but the git programmers are mostly kernel people. They write in C and shell. No big deal -- except to Pythonistas.<wink>
and (perhaps) the hg guy really is right when he claims that Linus should have skipped git and used hg from the start.
Unlikely. As Terry says, people have different preferences for tools. The important one here is whether you see history as immutable fact and direct manipulations of the commit DAG as falsification, or not. People who lean toward the DAG as *recording* history will prefer Mercurial or Bazaar. People who tend to see the DAG as a tool for *presenting* changes will prefer git.
On Tue, Mar 31, 2009 at 12:31 AM, Stephen J. Turnbull
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
I found the post interesting. Here's a link to the start of the thread: https://lists.ubuntu.com/archives/bazaar/2009q1/055805.html There's a bit of bafflement there regarding Python culture. I can relate--although I love Python, I don't feel like I understand the culture either.
It wouldn't be that hard to do a rewrite in Python, but the git programmers are mostly kernel people. They write in C and shell.
I mentioned this once on the git list and Linus' response was something like "C lets me see exactly what's going on". I'm not unsympathetic to this point of view--I'm really growing to loathe C++ partly because it *doesn't* let me see exactly what's going on--but I'm not convinced, either. It looks like there might be a Python clone sprouting here: http://gitorious.org/projects/git-python/
People who lean toward the DAG as *recording* history will prefer Mercurial or Bazaar. People who tend to see the DAG as a tool for *presenting* changes will prefer git.
I've noticed this tension as well. It seems to me that both uses are important, so I suspect all three will eventually steal each other's features with respect to this over time. Mike
On Tue, Mar 31, 2009 at 3:04 PM, Mike Coleman
It looks like there might be a Python clone sprouting here:
AFAIK, git-python is just a lib to manipulate git repos from python, not a git clone. Dulwich is more like it: http://samba.org/~jelmer/dulwich/ -- Eduardo de Oliveira Padoan http://importskynet.blogspot.com http://djangopeople.net/edcrypt/ "Distrust those in whom the desire to punish is strong." -- Goethe, Nietzsche, Dostoevsky
Mike Coleman wrote:
I mentioned this once on the git list and Linus' response was something like "C lets me see exactly what's going on". I'm not unsympathetic to this point of view--I'm really growing to loathe C++ partly because it *doesn't* let me see exactly what's going on--but I'm not convinced, either.
I think Python lets you see exactly what's going on too, at the level of abstraction you're working with. The problem with C++ is that it indiscriminately mixes up wildly different levels of abstraction, so that it's hard to look at a piece of code and decide whether it's doing something high-level or low-level. Python takes a uniformly high-level view of everything, which is fine for the vast majority of application programming, I think -- VCSes included. -- Greg
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stephen J. Turnbull wrote:
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
Thank you very much for your writeups on that thread: both in tone and in content I found them extremely helpful. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJ0riB+gerLs4ltQ4RAir2AJ4rXedI4gfkaZxP5LRiOSonAI/csQCgqkpb CY6QHmE8VHpGYGaENeUMnXQ= =t/1R -----END PGP SIGNATURE-----
On Tue, Mar 31, 2009 at 5:42 PM, Tres Seaver
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Stephen J. Turnbull wrote:
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
Thank you very much for your writeups on that thread: both in tone and in content I found them extremely helpful.
I'd like to read that thread for my edification -- might there be a URL for it perhaps...? Thanks, Alex
2009/3/31 Alex Martelli
On Tue, Mar 31, 2009 at 5:42 PM, Tres Seaver
wrote: Stephen J. Turnbull wrote:
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
Thank you very much for your writeups on that thread: both in tone and in content I found them extremely helpful.
I'd like to read that thread for my edification -- might there be a URL for it perhaps...?
https://lists.ubuntu.com/archives/bazaar/2009q1/055850.html https://lists.ubuntu.com/archives/bazaar/2009q1/055872.html -- Alexandre
On Tue, Mar 31, 2009 at 6:33 PM, Alexandre Vassalotti wrote:
... html https://lists.ubuntu.com/archives/bazaar/2009q1/055850.html
https://lists.ubuntu.com/archives/bazaar/2009q1/055872.html Perfect, thanks!
Alex
On Tue, Mar 31, 2009 at 6:33 PM, Alexandre Vassalotti wrote:
... html https://lists.ubuntu.com/archives/bazaar/2009q1/055850.html
https://lists.ubuntu.com/archives/bazaar/2009q1/055872.html Perfect, thanks!
Alex
On Tue, Mar 31, 2009 at 5:42 PM, Tres Seaver
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Stephen J. Turnbull wrote:
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
Thank you very much for your writeups on that thread: both in tone and in content I found them extremely helpful.
I'd like to read that thread for my edification -- might there be a URL for it perhaps...? Thanks, Alex
2009/4/1 Tres Seaver
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Stephen J. Turnbull wrote:
I also just wrote a long post about the comparison of bzr to hg responding to a comment on bazaar@canonical.com. I won't recap it here but it might be of interest.
Thank you very much for your writeups on that thread: both in tone and in content I found them extremely helpful.
Agreed. Paul
Mike Coleman wrote:
Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git?
Every single git command line example I have seen gives me exactly the same gut reaction I get whenever I have to read Perl code. You can extol the tool's virtues to me all day long, but you're never going to eliminate that visceral horror at its interface, any more than someone that loves Perl is going to have any luck convincing me that it really can be a sane choice of language for anything more than write-once-read-never throwaway scripts. Note that it *isn't* the idea of a using a directed acyclic graph in general that bothers me (since all DVCSs are pretty much forced to do that): it's specifically the way the sensibilities of git's original audience are reflected in the CLI, and the subsequent offense to my own personal sense of aesthetics :) The Mercurial and Bazaar interfaces on the other hand, both seemed perfectly palatable (e.g. a bit more inclined to use words over arcane symbols), and Hg appears to be a clear winner against Bazaar when it comes to performance *right now*. So Guido's intuition actually sounds perfectly reasonable to me. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia ---------------------------------------------------------------
2009/3/31 Nick Coghlan
Mike Coleman wrote:
Just for curiosity's sake, could someone outline the five (or so) most significant pluses of hg relative to git?
Every single git command line example I have seen gives me exactly the same gut reaction I get whenever I have to read Perl code. You can extol the tool's virtues to me all day long, but you're never going to eliminate that visceral horror at its interface, any more than someone that loves Perl is going to have any luck convincing me that it really can be a sane choice of language for anything more than write-once-read-never throwaway scripts.
Note that it *isn't* the idea of a using a directed acyclic graph in general that bothers me (since all DVCSs are pretty much forced to do that): it's specifically the way the sensibilities of git's original audience are reflected in the CLI, and the subsequent offense to my own personal sense of aesthetics :)
The Mercurial and Bazaar interfaces on the other hand, both seemed perfectly palatable (e.g. a bit more inclined to use words over arcane symbols), and Hg appears to be a clear winner against Bazaar when it comes to performance *right now*. So Guido's intuition actually sounds perfectly reasonable to me.
It's also about what the community prefers. Git was eliminated because it didn't offer some stellar feature that warranted forcing core developers to use it when my little survey clearly showed it was the most disliked. Hg was chosen (in my view) because the community wanted it; after I said Git was out I had a lot of people come up to me stating their preference for Mercurial. Once again, while Bazaar would have been fine, there was not leaping out at me to cause me to think that I should potentially alienate part of the community by going against their preference. -Brett
Nick Coghlan writes:
Every single git command line example I have seen gives me exactly the same gut reaction I get whenever I have to read Perl code.
Every single one? Sounds to me like the cause is probably something you ate, not anything you read. In the examples in the PEP, about 80% of the commands were syntactically identical across VCSes. I hope nobody is put off either git or bzr by the result of this PEP. If there's anything striking about the PEP's examples, it's how similar the usage of the VCSes would be in the context of Python's workflow. There are important differences, and I agree with Guido's choice, for Python, on March 30, 2009. But all three are capable VCSes, with advantages and disadvantages, and were this PEP started next June rather than last December, the result could have been very different.
Stephen J. Turnbull wrote:
Nick Coghlan writes:
Every single git command line example I have seen gives me exactly the same gut reaction I get whenever I have to read Perl code.
Every single one? Sounds to me like the cause is probably something you ate, not anything you read. In the examples in the PEP, about 80% of the commands were syntactically identical across VCSes.
What, hyperbole on the internets? ;) The non-trivial examples are the ones I was talking about - as you say, for trivial tasks, the only difference is typically going to be in the exact name of the command.
I hope nobody is put off either git or bzr by the result of this PEP. If there's anything striking about the PEP's examples, it's how similar the usage of the VCSes would be in the context of Python's workflow. There are important differences, and I agree with Guido's choice, for Python, on March 30, 2009. But all three are capable VCSes, with advantages and disadvantages, and were this PEP started next June rather than last December, the result could have been very different.
Indeed! (although I doubt git's CLI will ever evolve into anything I could claim to love) Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia ---------------------------------------------------------------
participants (13)
-
Alex Martelli
-
Alexandre Vassalotti
-
Brett Cannon
-
Eduardo O. Padoan
-
Greg Ewing
-
Guido van Rossum
-
Jan Claeys
-
Mike Coleman
-
Nick Coghlan
-
Paul Moore
-
Stephen J. Turnbull
-
Steve Holden
-
Tres Seaver