Теоретически, я могу использовать IronRuby для написания всех приложений, которые может писать c #, верно? - PullRequest
1 голос
/ 23 июня 2010

Я знаю немного Рубиновый язык .Теперь мне нужно сделать некоторые разработки .net.Я не хочу изучать новый язык.Итак, после поиска в Google я получил IronRuby .Теперь мой вопрос: могу ли я использовать IronRuby для написания всех приложений, которые может написать c #?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 23 июня 2010

В общем, я считаю, что вы должны быть в состоянии сделать почти все, что вы можете делать в C #. Тем не менее, могут быть некоторые области, в которых C # облегчит вам задачу - фреймворк, безусловно, был разработан с учетом статически типизированных языков.

Одна область, которая вызывает , вызывает призрак - LINQ. Я не знаю, поддерживает ли IronRuby деревья выражений напрямую. Конечно, вы можете создать их вручную, но это будет довольно неудачно. Также я не знаю, что IronRuby сделает с выводом соответствующих типов делегатов для LINQ to Objects и т. Д.

Не бойтесь изучать язык: это опыт, который может значительно расширить кругозор. Учитывая, что вам уже придется по крайней мере в какой-то степени изучать платформу .NET, вы можете также изучить язык, на котором написано большинство примеров среды. Если это довольно большой проект, я подозреваю, что в целом вы сэкономите время - и, конечно, получите в результате более широкие знания.

Еще одна вещь, которую нужно учитывать, это кто будет поддерживать кодовую базу. Вы не сказали, для чего вам нужна эта разработка - но если это по профессиональным причинам, предположительно, у вас будут коллеги или вам придется в долгосрочной перспективе передать код кому-то . Узнайте, каковы их предпочтения.

2 голосов
/ 23 июня 2010

Я думаю, что вы действительно хотите спросить здесь, это одна из двух вещей:

  • Могу ли я использовать IronRuby для взаимодействия с существующими библиотеками .NET и .NET, взаимодействуя какна языке C #?? 1005 *

    Ответ - да, ну, в общем, в основном .Основной раздел, который вы не сможете сделать напрямую, - это непосредственное взаимодействие с вызовами Win32 API таким же образом, как это делает C # с P / Invoke .P / Invoke - это в основном C #, что FFI для Ruby.Если вас это не волнует, отлично.

  • Могу ли я написать любой алгоритм / структуру / конструкцию / и т.д.на языке Ruby, который я могу на языке C #?

    Это более буквальная интерпретация фактической формулировки вашего вопроса, но я не думаю, что вы хотели спросить, так как ответ болеетуманно, не вдаваясь в какую-то довольно тяжелую теорию.Итак, мы просто скажем «конечно».

2 голосов
/ 23 июня 2010

Да, вы можете использовать IronRuby для написания приложений, но с Ruby поддержка и онлайн-сообщество не будут такими развитыми, как C #. Так что вам будет проще, если вы будете изучать C # и писать приложения. Это мое личное мнение.

IronRuby - это еще один язык реализации, который есть в Ruby помимо C, Java и т. Д. Это не означает, что вы можете создавать кодирование в C #. Вы будете кодировать только на языке Ruby, и вы сможете пользоваться всеми его плюсами и иметь дело с минусами.

Итак, ответ на ваш вопрос таков: неважно, используете ли вы IronRuby или JRuby или (C) Ruby.

1 голос
/ 23 июня 2010

Общий ответ на ваш вопрос - да - все, что вы можете делать в C #, вы можете делать в IronRuby и наоборот.Однако у каждого языка есть свои преимущества и недостатки ... например, у Ruby есть потрясающие возможности метапрограммирования, о которых C # может только мечтать.С другой стороны, в C # есть LINQ.

Что касается сообщества, я не думаю, что есть большая разница.С IronRuby вы получаете сообщество Ruby и сообщество IronRuby.С C # вы получаете сообщество .NET и MSDN ...

Выбор языка программирования - это своего рода религиозный вопрос ... с чем бы вы пошли - христианство, иудаизм или ислам?только ты можешь сказать ...: -)

...