我知道一些 ruby语言。现在我需要做一些.net开发。我不想学习一门新语言。因此,在谷歌搜索后,我得到了 IronRuby 。现在我的问题是我可以使用IronRuby来编写c#可以编写的所有应用程序吗?
感谢。
答案 0 :(得分:4)
从广义上讲,我相信你应该能够做几乎所有你能用C#做的事情。但是,在某些方面,C#可以让您更轻松 - 框架当然是为静态类型语言而设计的。
引发幽灵的一个区域是LINQ。我不知道IronRuby是否直接支持表达式树。你当然可以手动创建它们,但这将是一个非常糟糕的经历。同样地,我不知道IronRuby会如何推断LINQ to Objects等的相关委托类型。
不要太害怕学习语言:这种体验可以显着拓宽思维。鉴于你已经必须至少在某种程度上学习.NET框架,你也可以学习编写框架大多数示例的语言。如果这是一个相当大的项目,我怀疑总的来说,你会节省时间 - 当然,结果也会有更广泛的知识。
要考虑的另一件事是谁将维护代码库。你还没有说明为什么你需要做这个开发 - 但如果是出于职业原因,大概你可能会有同事或者从长远来看必须将代码交给某人。找出他们的偏好。
答案 1 :(得分:2)
是的,您可以使用IronRuby编写应用程序,但使用Ruby,支持和在线社区将不会像C#那样成熟。因此,如果您学习C#并编写应用程序,您会发现它更容易一些。这是我个人的意见。
除了C,Java等之外,IronRuby只是Ruby的另一种实现语言。这并不意味着你可以用C#进行编码。您将只使用Ruby语言进行编码,您可以享受其所有专业人员并处理它。所以,你的问题的答案是,你是使用IronRuby还是JRuby还是(C)Ruby并不重要。
答案 2 :(得分:2)
我认为你真正想要问的是两件事之一:
我可以使用IronRuby与现有的基于.NET和.NET的库进行交互,作为C#语言程序进行交互吗?
答案是肯定的,好吧,主要是。您不能够直接执行的主要部分是直接与Win32 API调用接口,方式与C#与P/Invoke相同。 P / Invoke基本上是C#对于Ruby来说是FFI。如果你不关心那个,那很好。
我可以编写任何算法/结构/构造/等。用语言C#语言我可以用语言C#?
这是对你问题的实际措辞的更直接的解释,但我不认为这是你的意思,因为答案更加模糊,没有进入一些相当沉重的理论。所以,我们只会说'确定'。
答案 3 :(得分:1)
您的问题的一般答案是肯定的 - 您可以在C#中执行的所有操作都可以在IronRuby中执行,反之亦然。但是,每种语言都有自己的优点和缺点......例如,Ruby拥有C#所能想到的令人敬畏的元编程功能。另一方面,C#有LINQ。
关于社区,我认为没有多大区别。使用IronRuby,您可以获得Ruby社区和IronRuby社区。使用C#,您将获得.NET社区和MSDN ...
选择一种编程语言是一种宗教问题......你会选择什么 - 基督教,犹太教或伊斯兰教?只有你能告诉...: - )