Я могу рассматривать IronPython как замену Pythonic к C#?

Я действительно понимаю, что эта тема была затронута в некотором роде в StackOverflow, но я все еще не могу выяснить точный ответ: я могу рассматривать IronPython как замену Pythonic к C#?

Я использую CPython каждый день, я люблю Дзэн :) но моей текущей задачей является приложение только для Windows со сложным GUI и некоторыми другими опциями, которые я хотел бы реализовать использование.NET.

12
задан denfromufa 6 October 2014 в 14:47
поделиться

6 ответов

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

Классы IronPython не являются «настоящими» классами .NET, и DLR API-интерфейсы необходимо использовать при вызове кода IronPython из традиционных языков на основе CLR; это означает, что если вам нужна действительно простая функциональная совместимость, вам придется писать клей, чтобы «спрятать» DLR.

Boo - гораздо более полный язык, основанный на Python и ориентированный на CLR. Его (динамически выводимая) статическая типизация (которую можно заменить утиной типизацией для каждой переменной) также позволяет библиотекам, написанным на Boo, изначально использоваться из C # и других языков на основе CLR, без необходимости делать какие-либо поправки на используемый язык.

13
ответ дан 2 December 2019 в 05:53
поделиться

Это зависит от того, что именно в C# вам нужно, и что нужно заменить.

Если причина использования C# в том, что вам нужен достаточно высокопроизводительный статически типизированный язык, то нет, IronPython, скорее всего, не станет заменой.

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

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

Это зависит от того, какие именно характеристики C# вас волнуют и для чего вам нужно найти замену.

10
ответ дан 2 December 2019 в 05:53
поделиться

Одна вещь, которую следует учитывать - и я понятия не имею, как IronPython ведет себя в этом отношении - это соответствие Common Language Subsystem (CLS) для сборок. Соответствие CLS гарантирует, что любой язык .Net может получить доступ к скомпилированной DLL вашего кода. Это означает, что, например, в C# у вас не может быть публичного или защищенного метода или параметра, который является беззнаковым целым числом. Я понятия не имею, насколько легко добиться CLS-совместимого кода в IronPython, интересная запись в блоге, которую я нашел, датируется 2008 годом.

2
ответ дан 2 December 2019 в 05:53
поделиться

Вопрос «Могу ли я рассматривать IronPython как замену Python C #?» получил довольно хороший ответ от jalf. Если бы вопрос был таким: «Является ли IronPython языком Pythonic .NET?» хотя тогда ответ будет абсолютно положительным. Принципы дзен - особенно. наименьшее удивление - абсолютно применимо и к интеграции IronPython с CLR.

1
ответ дан 2 December 2019 в 05:53
поделиться

Я думаю, если бы вы сделали это, {{1} } в .NET 4.0 было бы проще.

Я думаю, вы можете использовать недавно выпущенный IronPython 2.6.1 для .NET 4.0,

Уже легко использовать C # в IronPython.

Как вы можете видеть здесь , вы можете легко сделать это наоборот (используя IronPython из C #) с .NET 4.0.

Я думаю, что это возможно, но я согласен, что Бу - более безопасный путь.

0
ответ дан 2 December 2019 в 05:53
поделиться

«Сложный» пользовательский интерфейс обычно влечет за собой не «написание» его, а его создание в Visual Studio с помощью «укажи и щелкни». Все обратные вызовы и код событий вставляются сами по себе. На стороне питона почти ничего подобного нет. Я бы сказал, сразу переходите на C #.

Но есть одна неприятная вещь. Если вы настоящий Pythonista, статическая типизация дойдет до вас очень и очень быстро, и вы захотите начать бросать тяжелые предметы в случайных людей.

Если это произойдет, подумайте о создании пользовательского интерфейса с помощью C # и о внедрении IronPython в качестве механизма сценариев для реализации вашей бизнес-логики. Это могло быть приемлемой золотой серединой.

0
ответ дан 2 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: