IronScheme đã hoàn thành đủ hay đủ ổn định để đáng học?


17

IronScheme được đề cập trên Wikipedia như một sự kế thừa cho một dự án thất bại có tên IronLisp, đưa Lisp đến CLR và .NET, cách mà Clojure làm cho JVM. Có ai có kinh nghiệm với ngôn ngữ này? Nó trông khá hoàn chỉnh (99%) nhưng tôi không biết làm thế nào để đánh giá liệu nó có đáng để tôi dành thời gian để thiết lập nó hay không. Bằng cách ổn định hoặc hoàn thành, tôi có nghĩa là sử dụng nó cho các dự án thực tế thay vì chỉ loay hoay với các công cụ và các vấn đề về kiểu Project Euler.

Câu trả lời:


26

Tôi là tác giả của IronScheme. Tôi không thực sự chắc chắn làm thế nào để trả lời câu hỏi của bạn, nhưng sẽ cố gắng :)

Trước tiên, IronScheme cố gắng thực hiện Đề án (cụ thể là R6RS), với mục tiêu thứ yếu là khả năng tương tác CLR.

So với Clojure (tập trung vào những điểm xấu của họ), IronScheme sẽ không:

  • cung cấp cho bạn ngoại lệ thời gian chạy CLR; IronScheme sử dụng xử lý ngoại lệ của Scheme
  • cung cấp cho bạn stacktraces 'vô hạn'; IronScheme là đệ quy đuôi đúng cách
  • khó cài đặt; chỉ cần giải nén vào thư mục và đi
  • mất nhiều thời gian để bắt đầu; IronScheme (khi ngen'd) chỉ mất 0,1 giây để bắt đầu REPL
  • mơ hồ; IronScheme thực hiện một đặc điểm kỹ thuật tiêu chuẩn

Thật không may, nơi Clojure thắng là:

  • Tài liệu
  • Khung và thư viện
  • Cộng đồng người dùng

Điều này thật đáng lo ngại cho IronScheme, vì 3 phần cuối được đề cập rất giống kịch bản trứng gà. Cá nhân, tôi có xu hướng chỉ tạo thư viện khi tôi cần và với cộng đồng người dùng rất nhỏ, không có nhiều đóng góp từ người dùng bên cạnh các báo cáo lỗi. Tôi sẽ yêu một cộng đồng người dùng lớn hơn.

Về phần hỗ trợ, tôi thường giúp người dùng nhanh nhất có thể. Bằng chứng này có thể được nhìn thấy từ thời gian phản hồi của tôi trên diễn đàn thảo luận IronScheme. Ngoài ra, lỗi thường được sửa ngay khi chúng được xác định.

Về tính ổn định, codebase khá trưởng thành và hiện tại chỉ có sửa lỗi và tối ưu hóa là bổ sung mã duy nhất.

Về khả năng sử dụng, nếu bạn đã quen thuộc với .NET framework, bạn có thể làm khá nhiều thứ với IronScheme như bạn có thể làm với bất kỳ ngôn ngữ .NET nào khác; nó có thể khó hơn hoặc dễ hơn tùy thuộc vào mức độ bạn sẵn sàng trừu tượng hóa thành nhiều thành ngữ giống Scheme hơn. Mọi thứ rất dễ viết trong IronScheme; ví dụ, toàn bộ khung MVC của tôi chỉ có 400 dòng mã Scheme, nhờ vào việc truy cập vào ASP.NET (tôi chắc chắn không thích phát minh lại bánh xe).

Hãy yêu cầu làm rõ nếu câu trả lời là không đủ. Demian cũng có những điểm tốt về khả năng bảo trì.

Trân trọng

cùi


1
Làm thế nào để IronScheme + Net so sánh với, nói, vợt, khung wrt và thư viện?
Joe Internet

Tôi đã không nhận ra rằng có một khung MVC có sẵn. Đó có phải là một phần của tải xuống IronScheme không?
Robert Harvey

1
@Robert Harvey: Có, một số mã mẫu nằm trong thư mục websample. Hiện nay cũng chạy trên ironscheme.net/doceval.ironscheme.net
leppie

@Joe Internet: Không có khung thực sự, nhưng IronScheme bao gồm rất nhiều SRFI. Hầu hết các thư viện tôi đã viết là dành cho CLR interop.
leppie

2

Lưu ý: Tôi không có kinh nghiệm với IronScheme, vì vậy hãy suy nghĩ bằng một hạt muối (mặc dù nó hướng nhiều hơn vào việc sử dụng công nghệ cạnh chảy máu).

Mặc dù tôi sẽ chơi với công nghệ mới với những vấn đề không đáng kể (công cụ cá nhân, Project Euler, v.v.), tôi rất cảnh giác khi sử dụng công nghệ nói trên trong các dự án toàn diện. Tại sao?

  • Hỗ trợ cộng đồng: Bạn sẽ nhận được hỗ trợ từ ai khi bạn va vào tường?
  • Các vấn đề không lường trước: Nếu công nghệ chưa được thử nghiệm kỹ lưỡng, tôi có thực sự muốn tìm hiểu mã thư viện để thử và tìm ra giải pháp cho một vấn đề có thể không gặp phải không? Nếu tôi muốn trở thành một phần của nhóm cam kết, thì có lẽ, nhưng 99% thời gian tôi chỉ muốn thực hiện dự án của mình và không phải lo lắng về hệ thống ống nước.
  • Cam kết của nhóm: Điều gì xảy ra nếu bất cứ ai đang tiến hành dự án rút phích cắm? Các dự án của tôi sau đó mồ côi, trừ khi tôi muốn tiếp quản dự án, mà tôi có những vấn đề tương tự như điểm trước đó.

Vì vậy, trong khi học tập công nghệ mới là luôn luôn là một điều tốt (điều tồi tệ nhất có thể xảy ra là bạn học cách người khác sẽ thực hiện một cái gì đó - mà tốt), nó thực sự có thể cắn bạn trong ass nếu bạn áp dụng nó sớm để dự án đầy đủ .


3
Mặc dù bạn có một điểm, tôi tự hỏi làm thế nào bạn mong đợi các công nghệ mới sẽ trở thành thử nghiệm chiến đấu, nếu lời khuyên của bạn là không dựa vào chúng trong trận chiến? ;)
back2dos

1
Bạn nói đúng, đó là một tình huống bắt 22. Tôi chỉ đơn giản là nói từ kinh nghiệm và sở thích của riêng tôi. Tôi thà tập trung vào việc hoàn thành mọi thứ hơn là có khả năng xử lý hệ thống ống nước hoặc thư viện bị ngưng. Rõ ràng là ai đó phải làm điều đó .. Tôi chỉ muốn không làm điều đó trong các dự án của mình :)
Demian Brecht
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.