IronScheme是否完整或稳定到值得学习?


17

维基百科上提到IronScheme是失败项目IronLisp的继承者,该项目将Lisp引入CLR和.NET,就像Clojure为JVM所做的那样。有人有使用这种语言的经验吗?它看起来相当完整(99%),但是我不确定如何判断是否值得花时间摆弄它。稳定或完整,我的意思是将其用于实际项目,而不仅仅是摆弄工具和Project Euler风格问题。

Answers:


26

我是IronScheme的作者。我不太确定如何回答您的问题,但会尝试:)

IronScheme首先尝试实施Scheme(特别是R6RS),其次要目标是CLR互操作性。

与Clojure相比(专注于其缺点),IronScheme不会:

  • 给您CLR运行时异常;IronScheme使用Scheme的异常处理
  • 给你“无限”的堆栈跟踪;IronScheme是正确的尾递归
  • 很难设置;只需解压缩到目录并转到
  • 需要很长时间才能启动;IronScheme(如果需要时)仅需0.1秒即可启动REPL
  • 模棱两可 IronScheme实施标准化规范

不幸的是Clojure获胜的地方是:

  • 文献资料
  • 框架和库
  • 用户社区

对于IronScheme来说,这令人担忧,因为提到的最后3种情况非常像鸡鸡蛋。就个人而言,我倾向于只在需要时创建库,并且在用户社区很小的情况下,除了错误报告之外,用户的贡献并不多。我希望有一个更大的用户社区。

至于支持,我通常会尽快为用户提供帮助。从IronScheme讨论板上的响应时间可以看出这一证据。另外,通常在发现错误后就立即对其进行修复。

至于稳定性,代码库已经相当成熟,并且只有错误修复和优化才是唯一的添加代码。

关于可用性,如果您熟悉.NET框架,则可以像使用其他任何.NET语言一样,使用IronScheme进行几乎所有操作。可能会更难或更容易,具体取决于您愿意将多少抽象成更多类似于Scheme的习惯用法。用IronScheme编写事情很容易;例如,由于使用了ASP.NET,我的整个MVC框架几乎只有400行Scheme代码(我当然不喜欢重新发明轮子)。

如果答案不够,请随时澄清。Demian确实在可维护性方面也有优点。

问候

嬉皮士


1
IronScheme + Net与Racket,WRT框架和库相比如何?
Joe Internet,

我没有意识到有可用的MVC框架。那是IronScheme下载的一部分吗?
罗伯特·哈维

1
@Robert Harvey:是的,一些示例代码在websample目录中。目前也可以在ironscheme.net/doceval.ironscheme.net
leppie 2011年

@Joe Internet:确实没有框架,但是IronScheme包含很多SRFI。我编写的大多数库都是用于CLR互操作的。
leppie 2011年

2

注意:我没有IronScheme的经验,因此请多加些盐(尽管它的主要目的是使用前沿技术)。

尽管我会用一些新技术解决一些小问题(例如个人工具,Euler项目等),但我非常警惕在全面的项目中采用上述技术。为什么?

  • 社区支持:碰壁时您会从谁那里得到帮助?
  • 不可预见的问题:如果尚未对该技术进行全面的测试,我是否真的想深入研究库代码以尝试找出可能未遇到的问题的解决方案?如果我想成为提交团队的一员,那么也许是,但是有99%的时间我只想完成我的项目,而不必担心管道问题。
  • 团队承诺:如果领导项目的人插队,会发生什么?然后,我的项目将成为孤立项目,除非我要接管该项目,否则我遇到的问题与上一点相同。

因此,虽然学习新技术总是一件好事(可能发生的最糟糕的事情是,您学习其他人将如何实施某些事情,这一件好事),但是,如果您尽早采用新技术来进行完整的项目,这确实会给您带来麻烦。 。


3
尽管您有观点,但我想知道,如果您的建议是不要在战争中依赖新技术,您会如何期望新技术经受战争考验?;)
back2dos

1
您是对的,这有点让人难以接受。我只是根据自己的经验和偏爱来发言。我宁愿专注于使事情完成,而不是潜在地处理管道或停产的库。显然有人必须这样做。.我宁可不要在我的项目上这样做:)
Demian Brecht
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.