Live data from Hacker News

Git's Killer Feature (why it's better than Mercurial)

codemac.net

1–10 of 13 posts

Re: Git's Killer Feature (why it's better than Mercurial)

#3
I see that Git has indeed advanced, sexier concepts than Hg. However there is one thing that makes me uncomfortable with Git: Its source code is a bit like the Linux kernel: written in C, messy, with lots of scripts (including Bash and Perl scripts). Mercurial's is written in Python. As an Ocaml hacker, I do not like Python much; however I think a tool such a VCS ought to be written in a higher-level language than C, even if that means Python. How are we going to be sure that the Git code doesn't contain nasty buffer overflows? If Python does not give static type safety, at least it shields against segmentation faults.

Re: Git's Killer Feature (why it's better than Mercurial)

#5
post #3

I see that Git has indeed advanced, sexier concepts than Hg. However there is one thing that makes me uncomfortable with Git: Its source code is a bit like the Linux kernel: written in C, messy, with lots of scripts (including Bash and Perl scripts). Mercurial's is written in Python. As an Ocaml hacker, I do not like Python much; however I think a tool such a VCS ought to be written in a higher-level language than C,…

Generally you would hope a project is written in whatever the author(s) excel(s) at. I think that Linus and Co have clearly demonstrated they have a lot of experience doing C correctly, so you should have some faith that they know what they are doing.

They might not have similar aptitude with Ocaml or Python. Given enough time, all bugs are shallow, and Git is becoming popular enough that this becomes true. After all, Python itself was also written in C, so it is theoretically at risk to the same things.

Re: Git's Killer Feature (why it's better than Mercurial)

#6
post #3

I see that Git has indeed advanced, sexier concepts than Hg. However there is one thing that makes me uncomfortable with Git: Its source code is a bit like the Linux kernel: written in C, messy, with lots of scripts (including Bash and Perl scripts). Mercurial's is written in Python. As an Ocaml hacker, I do not like Python much; however I think a tool such a VCS ought to be written in a higher-level language than C,…

Generally you would hope a project is written in whatever the author(s) excel(s) at. I think that Linus and Co have clearly demonstrated they have a lot of experience doing C correctly, so you should have some faith that they know what they are doing. They might not have similar aptitude with Ocaml or Python. Given enough time, all bugs are shallow, and Git is becoming popular enough that this becomes true. After all…

They certainly are expert C coders and a VCS can benefit from direct-to-the metal code. Let's hope that lower-quality C won't creep in.

Re: Git's Killer Feature (why it's better than Mercurial)

#9
post #3

I see that Git has indeed advanced, sexier concepts than Hg. However there is one thing that makes me uncomfortable with Git: Its source code is a bit like the Linux kernel: written in C, messy, with lots of scripts (including Bash and Perl scripts). Mercurial's is written in Python. As an Ocaml hacker, I do not like Python much; however I think a tool such a VCS ought to be written in a higher-level language than C,…

Generally you would hope a project is written in whatever the author(s) excel(s) at. I think that Linus and Co have clearly demonstrated they have a lot of experience doing C correctly, so you should have some faith that they know what they are doing. They might not have similar aptitude with Ocaml or Python. Given enough time, all bugs are shallow, and Git is becoming popular enough that this becomes true. After all…

(I obviously meant "Given enough eyes, ..." above. Not sure what my brain is doing today, but translating thoughts to keystrokes is definitely not working correctly.)

Re: Git's Killer Feature (why it's better than Mercurial)

#10
post #3

I see that Git has indeed advanced, sexier concepts than Hg. However there is one thing that makes me uncomfortable with Git: Its source code is a bit like the Linux kernel: written in C, messy, with lots of scripts (including Bash and Perl scripts). Mercurial's is written in Python. As an Ocaml hacker, I do not like Python much; however I think a tool such a VCS ought to be written in a higher-level language than C,…

It's easy to write horrific code in any language, high or low level. From what I've seen, both the Linux kernel and git are clean and very readable. In general, I'll take well-written C over poorly-written Python (I'm not implying anything about Mercurial here) or poorly-written OCaml.

Git has historically had a few bugs with some high-level commands not correctly reacting to errors in lower-level commands, but they have been largely squashed in recent releases. The low-level commands have always been pretty solid, and the git repository format has been stable for a long, long time now.

So in summary, I wouldn't be too concerned about the implementation language of choice. It's always about the maker, not about the tools.

Post reply on HN