2013-04-30 29 views
6

Tôi yêu Clojure. Đó là ngôn ngữ yêu thích của tôi.Có thể sử dụng Clojure CLR với C# trong Xamarin không?

Tôi vừa tìm thấy Xamarin, cho phép bạn có các ứng dụng đa nền tảng, sử dụng đầy đủ các thư viện gốc. Ngôn ngữ được sử dụng với nó là C#.

Bây giờ tôi tự hỏi nếu có bất kỳ cách nào để lập trình phần lớn các ứng dụng Xamarin của tôi trong Clojure (CLR), thay vì C#.

+1

Clojure thông thường đã * là * nền tảng chéo và cho phép sử dụng thư viện gốc. Bạn có thể cụ thể hơn một chút về những gì bạn đang cố gắng đạt được không? Nếu nó chỉ là cross-nền tảng đồ họa libs bạn đang sau, bạn có thể nhìn vào LibGDX mà chạy tốt từ Clojure. – mikera

Trả lời

2

Vì vậy, Clojure CLR sẽ cho phép bạn sử dụng bất kỳ thư viện nào có thể tải. Ví dụ, tôi đã nạp các thư viện Oracle.DataAccess, và các thư viện NLog vào Clojure CLR, vì vậy nó là về mặt lý thuyết có thể tải các Xamarin thư viện cùng một cách:

;;; not sure which library you want to include, using this as a placeholder 
(assembly-load-from "C:/Path/To/Xamarin.Core.dll") 

Điều đó đang được nói, Xamarin bản thân dường như cũng là một IDE, và một bộ công cụ xây dựng trên đầu trang của các thư viện độc quyền của riêng họ và các công cụ xây dựng, do đó, nó có thể không có khả năng tích hợp đầy đủ cả hai. Ngoài ra, tôi nghĩ rằng Xamarin hoạt động hoàn toàn với C#, do đó, mã hóa trong Clojure có lẽ là không thể ... trực tiếp. Bạn có thể tạo một số thư viện trong Clojure CLR và biên dịch chúng thành các tệp DLL, sau đó bạn có thể liên kết, để bạn có thể xây dựng phần lớn logic của mình trong Clojure và sau đó tạo một số trình bao bọc C# đơn giản ứng dụng Xamarin của bạn tiêu thụ.

Tôi rất muốn nghe lại những gì bạn thử và bạn có thành công khi thực hiện việc này hay không.

Chúc bạn may mắn!

+0

Xin lỗi, tôi muốn trích dẫn những gì bạn nói, nhưng thay vào đó, nó đã đăng nhận xét. Cảm ơn lời giải thích này (tôi đã bỏ phiếu, nhưng tôi không có đại diện)! Bạn có thể sử dụng các tệp DLL tùy chỉnh với các dự án Xamarin: Android/iOS của mình không? –

+0

Tôi không thể chắc chắn 100%, nhưng tôi tưởng tượng bạn có thể, miễn là chúng được biên soạn và có thể tải dưới Mono. Điều duy nhất tôi muốn thận trọng là Clojure CLR không sử dụng Thời gian chạy ngôn ngữ động và nếu bạn đang triển khai tính năng này trên nền tảng di động, điều đó có thể không hoạt động như mong đợi. Không thể làm tổn thương để thử. –

0

Có thể có trong Android, nhưng trong trường hợp iOS tôi có thể nói là không có khả năng, vì sau này là nền tảng có nhiều hạn chế xung quanh mã được tạo, phản chiếu và các loại tương tự. Và Clojure được gõ động có khả năng bị ảnh hưởng cao.

Thành thật mà nói, Clojure trong thế giới .NET sẽ phù hợp hơn với F # (cũng có chức năng, bất biến theo mặc định, vv), là ngôn ngữ vừa được Xamarin chấp nhận (nghĩa là bạn có thể sử dụng nó trong Android) và iOS và Mac).

Nó cũng được nhập tĩnh (trái ngược với Clojure) vì vậy điều này có thể có nghĩa là nó cũng nhanh hơn. Hãy thử một lần!

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