2012-01-26 24 views
6

Vì vậy, về cơ bản tôi không so sánh Lược đồ với Clojure ở đây, tôi muốn so sánh việc thực hiện. Có:Khám phá ngôn ngữ gia đình lisp Triển khai .NET

Clojure-clr có thể được cài đặt ngay cả khi sử dụng phần mở rộng Visual Studio nhưng nó vẫn còn lỗi một chút để tôi sử dụng theo cách này. Sau khi bạn tạo và lưu dự án như vậy, bạn không thể mở lại được nữa ...

Và IronScheme, không có VS addin cho IronScheme nhưng theo như tôi biết nhưng có lẽ nó đã hỗ trợ .NET tốt hơn Tôi chưa bao giờ sử dụng nó và không thể biết về nó.

Vậy điều gì trong hai điều này (hoặc thậm chí có cái gì đó khác với cú pháp giống như lisp) có hỗ trợ CLR tốt hơn?

+0

Chỉ cần gắn với VS2008SP1. Có một plugin biên tập cho nó. IMO VS2010 quá yếu để thậm chí có thể hỗ trợ tốt. Hy vọng rằng các lỗi showstopper sẽ được sửa trong VS11 +. Tôi sẽ điều tra porting plugin trình soạn thảo cho nó sau đó. – leppie

+0

Vì vậy, tôi chỉ đang theo dõi phiên bản mới hơn vì VS 2008 không có nhiều tính năng 2010 và tôi không thể chắc chắn khi nào tôi cần chúng. – Cynede

+0

Bạn gọi cho họ các tính năng, tôi gọi chúng là lỗi :) – leppie

Trả lời

4

Tôi đã trả lời về VS trong nhận xét.

Về mặt khả năng tương tác .NET, IronScheme có lẽ tốt hơn, do được thiết kế và viết bằng .NET và tái sử dụng tự do các loại .NET hiện có.

Về mặt người tiêu dùng .NET, IronScheme cung cấp hỗ trợ tuyệt vời cho hầu hết các tính năng .NET (ví dụ: generics, v.v.).

Về mặt nhà sản xuất .NET, IronScheme vẫn thiếu một chút. Ví dụ, không thể tạo các phương thức hoặc lớp chung. Các trường được đánh máy (trên bản ghi) chỉ mới được giới thiệu gần đây và thậm chí đó là một chút hạn chế (không hỗ trợ cho các định nghĩa kiểu trường đệ quy lẫn nhau).

Ví dụ những gì một bình bởi trên:

class Foo { Bar bar; } 
class Bar { Foo foo; } 

Để tạo ra một cái gì đó như thế này, là không thể hiện, nhưng cái gì đó là doable (chừng mực nào đó).

Với một số phát triển vào cuối năm ngoái (2011), tôi đã làm cho nó có thể viết mã trong IronScheme chạy nhanh (hoặc thậm chí nhanh hơn) so với C#. Phương thức IL đầu ra của mã phù hợp chặt chẽ với F # (bằng sự trùng hợp thuần túy). Tôi thậm chí không bận tâm đến việc chống lại IronPython/IronRuby nữa. :)

Vui lòng hỏi thêm, nếu cần.

Ngoài ra, có thể có một số cuộc thảo luận thông tin trên bảng thảo luận Codeplex cho IronScheme. Tôi thường trả lời rất nhanh.

+0

Giả sử kho lưu trữ của bạn nằm trên GitHub. Vì vậy, sẽ dễ dàng hơn khi sử dụng IronScheme với một ngôn ngữ khác cung cấp các loại .NET hợp lệ. Tôi đã nghĩ rằng có thể trong ClojureCLR quá. Thật khó để so sánh con đường này cho tôi ... Việc khởi tạo này trong Clojure https://gist.github.com/1584097 khiến tôi sợ hãi. Tôi thực sự thích (clr-reference System.Windows.Forms) nhiều hơn nữa. Nhưng tôi sẽ không chuyển sang VS2008, tôi sẽ cố gắng chạy một số nhúng trong C# ví dụ với nó. – Cynede

+0

@ ヒ ザ キ: Tôi phản chiếu SVN từ Codeplex trên Github. – leppie

+0

@leppie Trên thực tế, ClojureCLR cũng được viết bằng C# /. NET. Đó là một cổng của phiên bản JVM cho CLR. –

1

Đã có rất nhiều hoạt động gần đây trên VsClojure và sẽ sớm có bản cập nhật sẽ khắc phục được nhiều sự cố bạn đang gặp phải. Ngoài ra, về vấn đề cụ thể bạn đang chạy vào khi mở một dự án, nếu bạn bắt đầu Visual Studio đầu tiên và sau đó mở giải pháp/dự án, nó sẽ hoạt động. Nó không hoạt động từ trình bao. Dưới đây là một số blog có thể giúp bạn bắt đầu:

http://clojureclr.blogspot.com/
http://www.myclojureadventure.com/
http://clrviaclojure.blogspot.com/