В настоящее время я использую Python для большинства моих программных проектов (в основном для быстрой разработки небольших программ и прототипов). Я хотел бы потратить время на изучение языка, который дает мне возможность использовать различные инструменты и API-интерфейсы Microsoft при любой возможности. Я пытаюсь сделать выбор между IronPython и C #. Поскольку Python - мой любимый язык программирования (в основном из-за его краткости и четкого синтаксиса), IronPython звучит как идеальный вариант. И все же, прочитав об этом немного, у меня возникло несколько вопросов.
Для тех из вас, кто использовал IronPython, когда-нибудь станет неясно, где заканчивается классический Python и начинается .NET? Например, кажется, что между библиотеками .NET и стандартной библиотекой Python функциональные возможности существенно перекрываются, поэтому, когда мне нужно выполнить строковые операции или проанализировать XML, мне неясно, какую библиотеку мне следует использовать. Кроме того, мне неясно, когда я должен использовать Python по сравнению с типами данных .NET в моем коде. Например, что из следующего я буду использовать в своем коде?
d = {}
или
d = System.Collections.Hashtable()
(Кстати, кажется, что если я сделаю много вещей, подобных последним, я могу потерять некоторую лаконичность, поэтому я предпочитаю Python в первую очередь.)
Другая проблема заключается в том, что ряд инструментов разработчика Microsoft, таких как .NET CF и Xbox XNA, недоступны в IronPython. Есть ли еще ситуации, когда IronPython не дал бы мне полного охвата C #?