IronSchemeは学習する価値があるほど十分に完全または安定していますか?


17

IronSchemeは、Wikipediaで IronLispと呼ばれる失敗したプロジェクトの後継として言及されており、ClojureがJVMに対して行うように、LispをCLRおよび.NETにもたらします。この言語の経験はありますか?かなり完成しているように見えます(99%)が、セットアップするのに時間をかける価値があるかどうかを判断する方法はわかりません。安定または完全ということは、単にツールやProject Eulerスタイルの問題をいじるのではなく、実際のプロジェクトに使用することを意味します。

回答:


26

IronSchemeの著者です。私はあなたの質問にどう答えるかわからないが、試してみる:)

IronSchemeは最初にScheme(具体的にはR6RS)の実装を試みますが、2番目の目的はCLRの相互運用性です。

Clojure(彼らの悪い点に焦点を合わせています)と比較して、IronSchemeはしません:

  • CLRランタイム例外を提供します。IronSchemeはSchemeの例外処理を使用します
  • 「無限」のスタックトレースを提供します。IronSchemeは適切に末尾再帰的です
  • セットアップが難しい。ただディレクトリに抽出して行く
  • 起動に時間がかかる。IronScheme(ngen'd時)は、REPLを開始するのに0.1秒しかかかりません
  • 曖昧であること。IronSchemeは標準化された仕様を実装しています

残念ながら、Clojureが勝つ場所は次のとおりです。

  • ドキュメンテーション
  • フレームワークとライブラリ
  • ユーザーコミュニティ

最後の3つは鶏卵のシナリオに非常に近いため、これはIronSchemeにとって心配です。個人的には、必要なときにのみライブラリを作成する傾向があり、非常に小さなユーザーコミュニティでは、バグレポート以外にユーザーからの貢献はあまりありません。もっと大きなユーザーコミュニティが欲しいです。

サポートに関しては、私は通常、できるだけ早くユーザーを支援します。この証拠は、IronSchemeディスカッションボードでの私の応答時間から見ることができます。また、バグは通常、特定されるとすぐに修正されます。

安定性に関しては、コードベースはかなり成熟しており、現在のところ、バグの修正と最適化のみがコードの追加です。

使いやすさに関しては、.NETフレームワークに精通していれば、他の.NET言語と同様にIronSchemeでほとんど何でもできます。Schemeに似たイディオムにどれだけ抽象化するかによって、より困難または容易になる場合があります。IronSchemeでの記述は非常に簡単です。たとえば、ASP.NETを活用したおかげで、MVCフレームワーク全体がわずか400行のSchemeコードになりました(車輪の再発明は確かに嫌いです)。

答えが十分でない場合は、気軽に説明を求めてください。Demianは保守性の面でも良い点を挙げています。

よろしく

ルピー


1
IronScheme + Netは、たとえば、ラケット、wrtフレームワーク、ライブラリと比較してどうですか?
ジョーインターネット

MVCフレームワークが利用可能であることに気づきませんでした。IronSchemeのダウンロードの一部ですか?
ロバートハーベイ

1
@Robert Harvey:はい、いくつかのサンプルコードはwebsampleディレクトリにあります。現在、ironscheme.net / docおよびeval.ironscheme.net
leppie

@Joe Internet:実際にはフレームワークはありませんが、IronSchemeには多くのSRFIが含まれています。私が書いたライブラリのほとんどは、CLR相互運用用です。
ルッピー

2

注:IronSchemeの経験はないので、一粒の塩で考えてみてください(ただし、最先端のテクノロジを使用することを目的としています)。

些細な問題(個人用ツール、プロジェクトオイラーなど)を伴う新しいテクノロジーをいじりますが、本格的なプロジェクトでこのテクノロジーを使用することには非常に警戒しています。どうして?

  • コミュニティサポート:壁にぶつかったときに誰から支援を受けられますか?
  • 予期しない問題:技術を徹底的にテストの戦いされていない場合、私は本当に遭遇していない可能性があり、問題を解決アウトライブラリしようとするコードと数字に掘るしたいですか?私がコミットチームの一員になりたいと思うなら、おそらく99%の時間でプロジェクトを完了させたいだけで、配管について心配する必要はありません。
  • チームのコミットメント:プロジェクトを率いる人がプラグを抜くとどうなりますか?プロジェクトを引き継ぐ場合を除き、プロジェクトは孤立します。プロジェクトに以前のポイントと同じ問題があります。

したがって、新しい技術を学ぶことは常に良いことですが(起こりうる最悪のことは、他の誰かが何かを実装する方法を学ぶことです-これ良いことです)、それを完全なプロジェクトに早期に採用すると、本当にお尻に噛みつくことができます。


3
論点はありますが、新しいテクノロジーが戦闘でテストされることを期待していますか?もしあなたのアドバイスが戦闘でそれらに依存しないことだとしたら?;)
back2dos

1
あなたは正しい、それはキャッチ22状況です。私は単に自分の経験と好みから話しています。配管工事や廃止されたライブラリを処理する可能性よりも、物事を完成させることに集中したいです。明らかに誰かがそれをしなければならない..私は自分のプロジェクトではそれをやめたい:)
デミアンブレヒト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.