Apakah IronScheme cukup lengkap atau cukup stabil sehingga layak dipelajari?


17

IronScheme disebutkan di Wikipedia sebagai penerus proyek gagal bernama IronLisp, membawa Lisp ke CLR dan .NET, seperti yang dilakukan Clojure untuk JVM. Adakah yang punya pengalaman dengan bahasa ini? Kelihatannya cukup lengkap (99%), tetapi saya tidak yakin bagaimana menilai apakah layak untuk bermain-main dengan pengaturannya atau tidak. Dengan stabil atau lengkap, maksud saya menggunakannya untuk proyek aktual daripada hanya mengutak-atik alat dan masalah gaya Proyek Euler.

Jawaban:


26

Saya adalah penulis IronScheme. Saya tidak begitu yakin bagaimana menjawab pertanyaan Anda, tetapi akan mencoba :)

IronScheme pertama-tama mencoba mengimplementasikan Skema (khusus R6RS), dengan tujuan sekunder adalah interoperabilitas CLR.

Dibandingkan dengan Clojure (berfokus pada poin buruk mereka), IronScheme tidak akan:

  • memberi Anda pengecualian runtime CLR; IronScheme menggunakan penanganan pengecualian Skema
  • memberi Anda stacktraces 'tak terbatas'; IronScheme benar-benar ekor rekursif
  • sulit diatur; Cukup ekstrak ke direktori dan pergi
  • butuh waktu lama untuk memulai; IronScheme (saat ngen) hanya membutuhkan 0,1 detik untuk memulai REPL
  • ambigu; IronScheme mengimplementasikan spesifikasi standar

Sayangnya tempat Clojure menang adalah:

  • Dokumentasi
  • Kerangka kerja dan perpustakaan
  • Komunitas pengguna

Ini mengkhawatirkan IronScheme, karena 3 yang terakhir disebutkan adalah skenario ayam-telur. Secara pribadi, saya cenderung hanya membuat perpustakaan ketika saya membutuhkannya, dan dengan komunitas pengguna yang sangat kecil, tidak ada banyak kontribusi dari pengguna selain laporan bug. Saya akan menyukai komunitas pengguna yang lebih besar.

Adapun dukungan, saya biasanya membantu pengguna secepat yang saya bisa. Bukti ini dapat dilihat dari waktu respons saya di papan diskusi IronScheme. Juga, bug biasanya diperbaiki segera setelah mereka diidentifikasi.

Adapun stabilitas, basis kode cukup matang, dan saat ini hanya perbaikan bug dan optimisasi adalah satu-satunya tambahan kode.

Adapun kegunaan, jika Anda terbiasa dengan .NET framework, Anda dapat melakukan hampir semua hal dengan IronScheme yang Anda bisa dengan bahasa .NET lainnya; mungkin lebih sulit atau lebih mudah tergantung pada seberapa banyak Anda bersedia untuk mengabstraksi menjadi idiom mirip Skema. Hal-hal yang sangat mudah ditulis dalam IronScheme; misalnya seluruh kerangka kerja MVC saya hanya 400 baris kode Skema, terima kasih untuk memanfaatkan ASP.NET (saya tentu saja tidak suka menciptakan kembali roda).

Jangan ragu untuk meminta klarifikasi jika jawabannya tidak cukup. Demian memang membuat poin bagus dalam hal rawatan juga.

Salam

leppie


1
Bagaimana IronScheme + Net dibandingkan dengan, katakanlah, raket, kerangka kerja dan perpustakaan?
Joe Internet

Saya tidak menyadari bahwa ada kerangka kerja MVC yang tersedia. Apakah itu bagian dari unduhan IronScheme?
Robert Harvey

1
@ Robert Harvey: Ya, beberapa kode contoh ada di direktori contoh web. Saat ini juga berjalan di ironscheme.net/doc dan eval.ironscheme.net
leppie

@ Joel Internet: Sebenarnya tidak ada kerangka kerja, tetapi IronScheme menyertakan banyak SRFI. Sebagian besar perpustakaan yang saya tulis adalah untuk interop CLR.
leppie

2

Catatan: Saya tidak memiliki pengalaman dengan IronScheme, jadi bawa pikiran saya dengan sebutir garam (meskipun itu lebih diarahkan pada penggunaan teknologi tepi pendarahan).

Sementara saya akan bermain-main dengan teknologi baru dengan masalah sepele (alat pribadi, Project Euler, dll), saya sangat berhati-hati dalam menggunakan teknologi tersebut dalam proyek-proyek penuh. Mengapa?

  • Dukungan masyarakat: Dari siapa Anda akan mendapat bantuan saat menabrak tembok?
  • Masalah yang tidak terduga: Jika teknologi belum diuji pertempuran sepenuhnya, apakah saya benar-benar - ingin menggali ke dalam kode perpustakaan untuk mencoba dan mencari solusi untuk masalah yang mungkin belum ditemukan? Jika saya ingin menjadi bagian dari tim komit, maka mungkin, tetapi 99% dari waktu saya hanya ingin menyelesaikan proyek saya dan tidak perlu khawatir tentang pipa ledeng.
  • Komitmen tim: Apa yang terjadi jika siapa pun yang memimpin proyek menarik steker? Proyek-proyek saya kemudian menjadi yatim piatu, kecuali saya ingin mengambil alih proyek tersebut, yang mana saya memiliki masalah yang sama dengan poin sebelumnya.

Jadi, sambil belajar teknologi baru adalah selalu hal yang baik (hal terburuk yang bisa terjadi adalah bahwa Anda belajar bagaimana orang lain akan menerapkan sesuatu - yang adalah baik), itu benar-benar dapat menggigit Anda di pantat jika Anda mengadopsinya awal untuk proyek penuh .


3
Meskipun Anda ada benarnya, saya bertanya-tanya bagaimana Anda mengharapkan teknologi baru untuk diuji perang, jika saran Anda tidak bergantung pada mereka dalam pertempuran? ;)
back2dos

1
Anda benar, ini agak sulit. Saya hanya berbicara dari pengalaman dan preferensi saya sendiri. Saya lebih suka berkonsentrasi untuk menyelesaikan sesuatu daripada berpotensi berurusan dengan pipa ledeng atau perpustakaan yang dihentikan. Jelas seseorang harus melakukannya .. Saya lebih suka tidak melakukannya pada proyek saya :)
Demian Brecht
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.