2010-03-23 41 views
24

Sử dụng các ngôn ngữ chức năng thuần túy có thể có nhiều lợi ích hơn khi sử dụng các mệnh lệnh không tinh khiết, nhưng các ngôn ngữ hệ thống ở mức độ thấp sẽ cho phép bạn đạt được hiệu suất cao hơn nhiều, đặc biệt khi chúng bắt buộc. nên tính toán kết quả.Tại sao darcs thay vì git?

Nếu có danh sách các công cụ có hiệu suất cao là tuyệt đối thì tôi sẽ đặt VCS ở đầu danh sách đó và git đạt được điều này rất tốt. Tuy nhiên hiệu suất không phải là lợi thế duy nhất của git so với nhiều loại hệ thống điều khiển phiên bản khác.

Nhóm git đang xử lý mã c không an toàn rất tốt và tôi không bao giờ lo lắng về hệ thống kiểu của mình (hoặc bất kỳ tính năng nào khác của ngôn ngữ được viết), vậy tại sao có nhiều nhà phát triển haskell phải sử dụng darcs khi họ sẽ chỉ sử dụng sản phẩm đã hoàn thành?

+5

thực sự là lý do? bạn có thực sự thấy mọi người chuyển từ git sang darcs không? – hasen

+4

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

+3

Toàn bộ câu hỏi này là vô nghĩa. Haskell được điều chỉnh hoạt động nhanh như điều chỉnh C. Và dễ dàng hơn để viết, gỡ lỗi và bảo trì. Darcs chậm hơn git vì nó sử dụng mô hình phong phú hơn và yêu cầu thuật toán chậm hơn. Điều này chuyển thành một trải nghiệm mà bạn truy vấn các darcs, trái với "git" lập trình tại dòng lệnh. – nomen

Trả lời

21

Tôi nghĩ rằng nói chung, một số cộng đồng người dùng nhất định sẽ hút về một công nghệ hoặc một công nghệ khác. Điều này đặc biệt đúng nếu một công nghệ sử dụng ngôn ngữ của cộng đồng. Nó cũng có thể (mặc dù tôi không có ý tưởng) rằng tác giả và/hoặc người dùng ban đầu của Darcs khá nổi tiếng với các nhà phát triển Haskell, do đó có nhiều ảnh hưởng hơn.

Có các ví dụ khác, chẳng hạn như Mercurial dường như phổ biến hơn trong cộng đồng python trong khi các ngôn ngữ khác xuất hiện để sử dụng Git.

Khi bạn đang sử dụng một phần mềm cụ thể, nó có thể không đáng để chuyển sang phần mềm khác ngay cả khi có lợi thế.

Thành thật dù sử dụng bất cứ điều gì bạn thích nhất. Tại thời điểm này nó gần như là một yêu cầu để có hg, git, và svn cài đặt và biết những điều cơ bản để sử dụng chúng. Nếu bạn đang sử dụng Haskell nó xuất hiện bạn có thể cần phải thêm Darcs vào danh sách này.

-4

Bạn có vẻ ngụ ý rằng git và darcs là tương đương (hoặc thậm chí tương tự) ngoài ngôn ngữ thực hiện.

Nếu bạn đã sử dụng cả hai, bạn sẽ nhận ra câu hỏi này không có ý nghĩa. Nếu bạn chưa sử dụng cả hai, câu trả lời cho câu hỏi có một điều kiện tiên quyết rõ ràng về kiến ​​thức của cả hai.

Darcs tồn tại. Đó là đủ lý do cho nó tồn tại và được sử dụng. Nếu bạn thích nó, bạn cũng có thể là người dùng. Nếu bạn không thích nó, bạn sẽ biết tại sao bạn chọn cái gì khác.

+47

Bạn dường như ngụ ý rằng đây là câu trả lời. Nếu bạn nghĩ rằng đây là một câu trả lời, bạn đã sai! Nếu bạn đọc lại câu trả lời của bạn, bạn có thể nhận ra rằng nó không giúp OP hay bất cứ ai ở vị trí của mình. – hasen

+9

Có lẽ bạn có thể cho chúng tôi biết chúng khác nhau như thế nào. – Zach

+1

Bạn dường như đang sử dụng cả hai. Bạn có thể cho chúng tôi biết từ POV của người dùng về việc các darcs thực hiện như thế nào so với git (những gì OP hỏi) hay cách dev muốn học haskell có thể quản lý để sử dụng git để không bị buộc phải học hai công cụ cùng một lúc? Tôi thực sự quan tâm đến loại phản hồi này. –

58

Darcs quản lý bộ sưu tập các bản vá thay vì lịch sử theo trình tự thời gian. Thông tin thêm về điều này là trên darcs wiki page documenting differences with other VCS. Sự khác biệt này được minh họa bằng tính năng darcs có tên là spontaneous branches, sử dụng hình thức hái dâu tiên tiến. Tôi đã sử dụng một quy trình làm việc dựa trên điều này rộng rãi với một dự án 100.000 kW. Bên cạnh đó sự khác biệt về kỹ thuật, darcs rất thân thiện với người dùng. Có ít lệnh hơn và hầu hết đều tương tác theo mặc định, nhắc bạn về việc cần làm.

Vì các điểm mạnh và dễ sử dụng của darcs, tôi thích nó hơn git, mà tôi cũng thường xuyên sử dụng cho các dự án mã nguồn mở. Darcs là dễ dàng, đủ để sử dụng mà ngay cả khi bạn phải học git để đóng góp cho một số dự án, bạn vẫn có thể thưởng thức và hưởng lợi từ việc sử dụng darcs trên các dự án khác, nơi bạn có một sự lựa chọn.

Các vấn đề liên quan