Могу ли я лечить IronPython в качестве замены Pythonic к C #?
-
26-09-2019 - |
Вопрос
Я понимаю, что эта тема была каким-то образом была покрыта в Stackoverflow, но я все еще не могу выяснить точный ответ: Могу ли я лечить IronPython в качестве замены Pythonic в C #?
Я использую Cpython каждый день, я люблю Zen :) Но моя текущая задача - это приложение только для Windows со сложным графическим интерфейсом и некоторые другие функции, которые я хотел бы реализовать с помощью .NET.
Решение
IronPython не эквивалентен «другим языкам, которые работают на .NET», поскольку язык имеет поддержку по существу меньшем количества функций выполнения CLR.
Классы Ironpython не являются «реальными» классами .NET, а также Длр API необходимо использовать при вызове кода IronPython от традиционных языков на основе CLR; Это означает, что если вы хотите искренне простую совместимость, вы застряли надпись к «скрыть» DLR.
Бу Является гораздо более полным вспомогательным языком, ориентированным на CLR. Его (динамически подъемное) статическое набрав (которое можно заменить на вводе утки на основе переменных), также позволяет библиотекам, написанными в BOO, которые будут использоваться из C # и других языков, основанных на CLR, без необходимости делать какие-либо пособия для язык используется.
Другие советы
Это зависит от того, что оно о том, что вам нужно, и которые нуждаются в замене.
Если причина, по которой вы используете C #, это то, что вам нужен достаточно высокий производительность статически типизированного языка, то нет, IronPython, скорее всего, не будет заменой.
Если причина, по которой вы используете это просто «мне нужно что-то, что работает на .NET и может получить доступ к библиотекам .NET», затем да, Любые Язык, который работает на .NET, может использоваться для замены его.
Если вы используете C #, потому что вы работаете с командой программистов, которые знают только C-подобные языки, C # также может быть трудно заменить с IronPython.
Это зависит от того, какие характеристики о C # Это то, о чем вы заботитесь, и надо найти замены.
Одна вещь, чтобы рассмотреть - и я понятия не имею, насколько Ironpython ведет себя в этом отношении - это Подсистема общих языков (Cls) Соответствие для собраний. Соответствие CLS гарантирует, что любой язык .NET может получить доступ к скомпилированной DLL вашего кода. Это означает, например, в C #, вы не можете иметь ни одного публичного или защищенного метода или параметра, который является целым числом без знака. Я понятия не имею, насколько легко достичь CLS, совместимый код в Ironpython, Интересный вход в блоге что я нашел даты с 2008 года.
Вопрос «Могу ли я лечить IronPython в качестве замены Pythonic для C #?» Джальф был ответил довольно хорошо. Если бы вопрос был «Ironpython Pythonic .NET язык?» Хотя тогда ответ будет абсолютно быть да. Принципы дзен - особенно. Наименьшее удивление - абсолютно применяется к интеграции Ironpython с CLR.
Я думаю, что если бы вы делаете это, было бы легче в .NET 4.0.
Я думаю, что вы можете использовать недавно выпущенный IronPython 2.6.1 для .NET 4.0,
Это уже легко использовать C # в Ironpython.
Как вы видете здесь, Вы можете легко сделать это другим путем (с помощью IronPython от C #) с .NET 4.0.
Я думаю, что это возможно, но я согласен, будет более безопасный способ пойти.
«Комплекс» UI обычно влечет за собой не «написание», но построение его в Visual Studio с точкой и нажмите. Все обратные вызовы и код события вставляются сам по себе. На стороне Python почти ничего нет. Я бы сказал, пойти на C # прямо.
Хотя есть одна нинговая вещь. Если вы истинные Pythonista, статическая набравка будет очень быстро добраться до вас, и вы захотите начать бросать тяжелые предметы на случайных людях.
Если этот момент, подумайте о создании пользовательского интерфейса с C # и встраиваем IronPython в качестве сценариев для реализации вашей бизнес-логики. Это может быть терпимым средним землей.