2010-03-23 30 views
24

El uso de lenguajes funcionales puros puede tener muchos beneficios sobre el uso de imperativos impuros, pero los lenguajes de sistemas de bajo nivel generalmente le permitirán lograr un rendimiento mucho mayor, especialmente cuando son imperativos porque le permite especificar los pasos exactos de cómo la CPU debe calcular el resultado.¿Por qué darcs en lugar de git?

Si alguna vez hay una lista de herramientas donde el alto rendimiento es una necesidad absoluta, entonces pondría a VCS en la parte superior de la lista, y git logra esto muy bien. Sin embargo, el rendimiento no es la única ventaja de git sobre muchos otros tipos de sistemas de control de versiones.

El equipo de git maneja muy bien el código inseguro c, y nunca me preocupo por mi sistema tipográfico (o cualquier otra característica del lenguaje en el que está escrito), entonces ¿por qué hay muchos desarrolladores de haskell? que debe usar darcs cuando solo usarán el producto terminado?

+5

¿por qué? ¿Has visto realmente a las personas pasar de git a darcs? – hasen

+4

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

+3

Toda esta pregunta no tiene sentido. Tuned Haskell se ejecuta tan rápido como el afinado C. Y es más fácil de escribir, depurar y mantener. Darcs es más lento que git porque usa un modelo más rico y requiere algoritmos más lentos. Esto se traduce en una experiencia en la que consultas los darcs, en lugar de "programar" git en la línea de comandos. – nomen

Respuesta

21

Creo que, en general, ciertas comunidades de usuarios se inclinarán por una tecnología u otra. Esto es especialmente cierto si una tecnología usa el lenguaje de la comunidad. También es posible (aunque no tengo ni idea) que el autor y/o usuarios iniciales de Darcs eran desarrolladores de Haskell bastante conocidos, por lo que tenían más influencia.

Hay otros ejemplos, como Mercurial parece ser más popular en la comunidad de Python, mientras que otros idiomas parecen usar Git.

Una vez que está utilizando una pieza de software en particular, puede que no valga la pena cambiar a otra, incluso si hay ventajas.

Honestamente, use lo que más le guste. En este punto, es casi un requisito tener instalados hg, git y svn y conocer los conceptos básicos para usarlos. Si está utilizando Haskell, parece que probablemente necesite agregar Darcs a esta lista.

-4

Pareces estar dando a entender que git y darcs son equivalentes (o incluso similares) que no sean el lenguaje de implementación.

Si ha utilizado ambos, se dará cuenta de que esta pregunta no tiene sentido. Si no ha utilizado ambos, la respuesta a la pregunta tiene un requisito previo obvio de conocimiento de ambos.

Darcs existe. Es suficiente justificación para que exista y se use. Si te gusta, tú también puedes ser un usuario. Si no te gusta, sabrás por qué elegiste algo más.

+47

Parece dar a entender que esta es una respuesta. Si crees que esta es una respuesta, ¡estás equivocado! Si vuelve a leer su respuesta, puede darse cuenta de que no ayuda al OP ni a nadie en su posición. – hasen

+9

Quizás puedas decirnos cómo son diferentes. – Zach

+1

Pareces estar usando ambos. ¿Puede decirnos desde un punto de vista del usuario cómo se desempeña Darcs en comparación con git (lo que OP preguntó) o cómo un desarrollador que desea aprender haskell puede usar git para no tener que aprender dos herramientas a la vez? Estoy realmente interesado en este tipo de comentarios. –

58

Darcs gestiona las colecciones de parches en lugar de la historia cronológica. Más sobre esto está en el darcs wiki page documenting differences with other VCS. Esta diferencia se ilustra mediante una característica de darcs llamada spontaneous branches que utiliza una forma avanzada de recolección de cerezas. Usé un flujo de trabajo basado en esto ampliamente con un proyecto LoC de 100.000k. Además de esa diferencia técnica, darcs es muy fácil de usar. Hay menos comandos, y la mayoría son interactivos de manera predeterminada, lo que le indica qué hacer.

Debido a las fortalezas de los darcs y su facilidad de uso, lo prefiero más que a git, que también uso regularmente para proyectos de código abierto. Darcs es bastante fácil de usar, incluso si tiene que aprender git para contribuir a algunos proyectos, aún puede disfrutar y beneficiarse del uso de darcs en otros proyectos en los que puede elegir.

Cuestiones relacionadas