2010-03-23 5 views
24

Die Verwendung von reinen funktionalen Sprachen kann viele Vorteile gegenüber der Verwendung von unreinen Imperativen haben, aber Systemsprachen mit niedriger Stufe ermöglichen Ihnen generell eine höhere Leistung, insbesondere wenn sie zwingend erforderlich sind, da Sie die genauen Schritte in der CPU angeben können sollte das Ergebnis berechnen.Warum Darcs anstelle von Git?

Wenn es jemals eine Liste von Werkzeugen gibt, wo hohe Leistung ein absolutes Muss ist, dann würde ich VCS an die Spitze dieser Liste setzen, und git erreicht dies sehr gut. Die Leistung ist jedoch nicht der einzige Vorteil von Git gegenüber vielen anderen Arten von Versionskontrollsystemen.

Das git-Team behandelt den unsicheren c-Code sehr gut, und ich mache mir nie Gedanken über mein Typsystem (oder irgendwelche anderen Merkmale der Sprache), also warum gibt es viele Haskell-Entwickler Das muss Darcs verwenden, wenn sie nur das fertige Produkt verwenden werden?

+5

in der Tat warum? Hast du tatsächlich Leute gesehen, die von Git zu Darcs ziehen? – hasen

+4

@hasen j: http://stackoverflow.com/questions/4114045/convert-git-repo-to-darcs :-) –

+3

Diese ganze Frage ist Unsinn. Tuned Haskell verhält sich genauso schnell wie Tuned C. Und ist einfacher zu schreiben, zu debuggen und zu warten. Darcs ist langsamer als git, weil es ein fetteres Modell verwendet und langsamere Algorithmen benötigt. Dies führt zu einer Erfahrung, bei der du darks abfragst, im Gegensatz zum "Programmieren" von git in der Befehlszeile. – nomen

Antwort

21

Ich denke im Allgemeinen werden bestimmte Benutzergemeinschaften auf die eine oder andere Technologie hinarbeiten. Dies gilt insbesondere dann, wenn eine Technologie die Sprache der Community verwendet. Es ist auch möglich (obwohl ich keine Ahnung habe), dass der Autor und/oder die ursprünglichen Benutzer von Darcs ziemlich bekannte Haskell-Entwickler waren und somit mehr Einfluss hatten.

Es gibt andere Beispiele, wie Mercurial scheint in der Python-Community beliebter zu sein, während andere Sprachen Git zu verwenden scheinen.

Sobald Sie eine bestimmte Software verwenden, lohnt es sich nicht, zu einem anderen zu wechseln, auch wenn es Vorteile gibt.

Ehrlich, aber verwenden Sie, was auch immer Sie am besten mögen. An diesem Punkt ist es fast eine Voraussetzung, dass hg, git und svn installiert sind und die Grundlagen für deren Verwendung kennen. Wenn Sie Haskell verwenden, müssen Sie wahrscheinlich Darcs zu dieser Liste hinzufügen.

-4

Sie scheinen zu unterstellen, dass Git und Darcs gleichwertig (oder sogar ähnlich) sind, außer der Implementierungssprache.

Wenn Sie beide verwendet haben, werden Sie feststellen, dass diese Frage keinen Sinn ergibt. Wenn Sie beide nicht verwendet haben, hat die Antwort auf die Frage eine offensichtliche Voraussetzung der Kenntnis von beiden.

Darcs existiert. Das ist genug Begründung dafür, dass es existiert und benutzt wird. Wenn Sie es mögen, können Sie auch ein Benutzer sein. Wenn Sie es nicht mögen, werden Sie wissen, warum Sie etwas anderes gewählt haben.

+47

Sie scheinen zu implizieren, dass dies eine Antwort ist. Wenn Sie denken, dass dies eine Antwort ist, liegen Sie falsch! Wenn Sie Ihre Antwort lesen, werden Sie vielleicht feststellen, dass es dem OP oder jemandem in seiner Position nicht hilft. – hasen

+9

Vielleicht könnten Sie uns sagen, wie sie anders sind. – Zach

+1

Sie scheinen beide zu verwenden. Kannst du uns von einem Benutzer-POV erzählen, wie Darcs im Vergleich zu Git funktioniert (was das OP gefragt hat) oder wie ein Entwickler, der Haskell lernen will, es schafft, Git zu benutzen, um nicht gezwungen zu sein, zwei Werkzeuge gleichzeitig zu lernen? Ich bin wirklich an dieser Art von Feedback interessiert. –

58

Darcs verwaltet Sammlungen von Patches anstelle von chronologischen Verlauf. Mehr dazu finden Sie auf der darcs wiki page documenting differences with other VCS. Dieser Unterschied wird durch eine Darts-Funktion veranschaulicht, die spontaneous branches genannt wird und eine fortgeschrittene Form des Rosinenpickens verwendet. Ich habe einen umfangreichen Workflow mit einem 100.000k LoC-Projekt verwendet. Abgesehen von diesem technischen Unterschied ist Darcs sehr benutzerfreundlich. Es gibt weniger Befehle und die meisten sind standardmäßig interaktiv, was Sie auffordert, was zu tun ist.

Aufgrund der Stärken und Benutzerfreundlichkeit von Darcs, bevorzuge ich es über Git, die ich auch regelmäßig für Open-Source-Projekte verwenden. Darcs ist einfach genug zu benutzen, selbst wenn du git lernen musst, um an einigen Projekten mitzuwirken, kannst du immer noch genießen und von der Verwendung von Darcs in anderen Projekten profitieren, wo du die Wahl hast.