В целом, я считаю, что вы должны иметь возможность делать практически все, что вы можете сделать на C#. Тем не менее, могут быть некоторые области, где C# упрощает вам работу - структура, безусловно, была разработана с учетом статически типизированных языков.
Один район, который делает поднять призрак LINQ. Я не знаю, поддерживает ли IronRuby напрямую деревья выражений. Конечно, вы могли бы создать их вручную, но это был бы довольно плохой опыт. Аналогично, я не знаю, что сделает IronRuby для определения соответствующих типов делегатов для LINQ для объектов и т. Д.
Не бойтесь изучать язык: это опыт, который может значительно расширить разум. Учитывая, что вам уже предстоит изучить платформу .NET, по крайней мере, в некоторой степени, вы можете также изучить язык, на котором написаны большинство примеров фреймворка. Если это достаточно большой проект, я подозреваю что в целом вы сэкономите время - и, конечно же, получите более широкие знания.
Еще одна вещь, которую следует учитывать, заключается в том, кто будет поддерживать базу кода. Вы не сказали, зачем вам нужно это делать, но если это по какой-то профессиональной причине, то, вероятно, у вас есть или коллеги, или нужно передать код кому-то в конечном итоге. Узнайте, каково их предпочтение.
А, это затруднительное положение. Для меня, когда я думаю об IronRuby и LINQ (предполагая, что нет прямой реализации деревьев выражений), моя непосредственная мысль: ну, строго нужно «писать все приложения, на которые может писать C#» (особенно в отношении LINQ to Objects , поскольку некоторые из конструкций всегда существовали в Ruby wrt. closures)? Но потом я спрашиваю себя: «В 2010 году, почему бы вам не воспользоваться LINQ, если бы вы использовали .NET?» :) –
@Marc: Точно. В этом разница между «теоретически» и «практически» :) –
LINQ не поддерживается в IronRuby, поскольку это C#/VB.NET DSL. В IronRuby вам придется вручную создавать деревья выражений, и, как сказал @Jon, это не было бы приятным опытом. –