IronScheme öğrenmeye değer kadar eksiksiz veya kararlı mı?


17

IronScheme , Wikipedia'da IronLisp adlı başarısız bir projenin ardılı olarak bahsedildi ve Lisp'i Clojure'un JVM için yaptığı gibi CLR ve .NET'e getirdi. Bu dilde deneyimi olan var mı? Oldukça eksiksiz görünüyor (% 99), ancak kurulumla uğraşmak için zaman ayırmaya değer olup olmadığına nasıl karar vereceğimden emin değilim. İstikrarlı veya eksiksiz olarak, sadece araçlarla ve Project Euler tarzı problemleriyle uğraşmak yerine gerçek projeler için kullanmak istedim.

Yanıtlar:


26

IronScheme'nin yazarıyım. Sorunuzu nasıl cevaplayacağınızdan emin değilim, ama deneyeceğim :)

IronScheme ilk olarak Şemayı (özellikle R6RS) uygulamaya çalışır; ikincil amaç CLR ile birlikte çalışabilirliktir.

Clojure ile karşılaştırıldığında (kötü noktalarına odaklanarak) IronScheme şunları yapmaz:

  • CLR çalışma zamanı istisnaları vermek; IronScheme, Scheme'in istisna yönetimini kullanır
  • size 'sonsuz' yığın izleri verin; IronScheme düzgün kuyruk özyinelemeli
  • kurulumu zor olmalı; sadece dizine çıkarın ve gidin
  • başlamak uzun sürüyor; IronScheme (ngen'd olduğunda) REPL'i başlatmak sadece 0.1 saniye sürer
  • belirsiz olmak; IronScheme standart bir spesifikasyon uygular

Ne yazık ki Clojure kazandığı yer:

  • belgeleme
  • Çerçeveler ve kütüphaneler
  • Kullanıcı topluluğu

Bu, IronScheme için endişe vericidir, çünkü bahsedilen son 3 tavuk yumurtası senaryosudur. Şahsen, sadece onlara ihtiyacım olduğunda kütüphaneler oluşturma eğilimindeyim ve çok küçük bir kullanıcı topluluğuyla, hata raporlarının yanı sıra kullanıcılardan çok fazla katkı yok. Daha büyük bir kullanıcı topluluğunu çok isterim.

Desteğe gelince, normalde kullanıcılara olabildiğince hızlı yardımcı olurum. Bu kanıt, IronScheme tartışma panolarındaki yanıt sürelerimden görülebilir. Ayrıca, hatalar normal olarak tanımlanır tanımlanmaz sabitlenir.

Kararlılık gelince, kod tabanı oldukça olgun ve şu anda sadece hata düzeltmeleri ve optimizasyonlar sadece kod eklemeleridir.

Kullanılabilirliğe gelince, .NET çerçevesini biliyorsanız, IronScheme ile diğer .NET dillerinde olduğu gibi hemen hemen her şeyi yapabilirsiniz; daha fazla Şema benzeri deyimlere soyutlamak istediğinize bağlı olarak daha zor veya daha kolay olabilir. IronScheme'de yazı yazmak çok kolay; Örneğin, tüm MVC çerçevem, ASP.NET'e (kesinlikle tekerleği yeniden icat etmeyi sevmiyorum) sayesinde, 400 satırlık Şema kodudur.

Yanıt yeterli değilse açıklama istemekten çekinmeyin. Demian da sürdürülebilirlik açısından iyi puanlar veriyor.

Saygılarımızla

leppie


1
IronScheme + Net, örneğin Raket, wrt çerçeveleri ve kütüphaneleri ile nasıl karşılaştırılır?
Joe Internet

Bir MVC çerçevesinin olduğunu fark etmedim. IronScheme indirmesinin bir parçası mı?
Robert Harvey

1
@Robert Harvey: Evet, web örneği dizininde bazı örnek kodlar var. Halen ironscheme.net/doc ve eval.ironscheme.net
leppie

@Joe Internet: Gerçekten çerçeve yok, ancak IronScheme çok fazla SRFI içeriyor. Yazdığım kütüphanelerin çoğu CLR ile birlikte çalışıyor.
leppie

2

Not: IronScheme ile ilgili deneyimim yok, bu yüzden düşüncelerimi bir tuz tanesi ile al (her ne kadar daha fazla kanama kenarı teknolojisi kullanmaya yönelik olsa da).

Ben olacak önemsiz sorunları olan yeni teknoloji (kişisel araçlar, Proje Euler, vs) ile oyuncak, ben olduğum sürece çok söz konusu teknolojiyi tam gelişmiş projelerde kullanmaya dikkat . Neden?

  • Topluluk desteği: Duvara çarptığınızda kimden yardım alacaksınız?
  • Öngörülemeyen sorunlar: Teknoloji tam olarak savaş testinden geçirilmemişse, gerçekten karşılaşılmamış olabilecek bir soruna bir çözüm bulmaya çalışmak için kütüphane kodunu araştırmak ister ? Taahhüt ekibinin bir parçası olmak isteseydim, belki de, ama zamanın% 99'u sadece projemi bitirmek istiyorum ve sıhhi tesisat konusunda endişelenmek zorunda değilim.
  • Takım taahhüdü: Projeyi kim yönlendirirse fişi çekerse ne olur? Daha sonra, önceki nokta ile aynı sorunlara sahip olduğum projeyi devralmak istemediğim sürece projelerim yetim kalıyor.

Bu nedenle, yeni teknoloji öğrenmek her zaman iyi bir şeydir (olabilecek en kötü şey, bir başkasının bir şeyi nasıl uygulayacağını öğrenmenizdir - ki bu iyidir), tam projeler için erken benimserseniz gerçekten sizi kıçından ısırır. .


3
Bir fikriniz olmasına rağmen, tavsiyeleriniz savaşta onlara güvenmemekse, yeni teknolojilerin savaşta test edilmesini nasıl beklediğinizi merak ediyorum? ;)
back2dos

1
Haklısın, bu bir şekilde yakalamak 22 durum. Ben sadece kendi deneyimim ve tercihimden bahsediyorum. Sıhhi tesisat veya durdurulan kütüphanelerle potansiyel olarak uğraşmak yerine işleri tamamlamaya odaklanmayı tercih ederim. Açıkçası birisi bunu yapmak zorunda .. Bunu benim projelerimde yapmamayı tercih ederim :)
Demian Brecht
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.