Я очень хочу выпить какой-нибудь современный динамический язык koolaid, поэтому я поверил всем вещам в блоге и подкастах Michael Foord, я купил его книгу (и прочитал ее), и я добавил встроенный IPy runtime к большому существующему приложению год или около того назад (хотя это было для кого-то еще, и я действительно не использовал его сам).
Теперь мне нужно сделать довольно простой материал для генерации кода, где я собираюсь вызвать несколько методов на нескольких объектах .net(пользовательские, объекты с С# -авторизованным), создать несколько строк, записать некоторые файлы и т.д..
Опыт пробуждения меня оставляет мне ощущение, как маленький мальчик, который думает, что он единственный, кто может видеть, что у Императора нет одежды. Если вы используете IronPython, я бы очень хотел узнать, как вы справляетесь со следующими его аспектами:
- Редактирование кода. Используете ли вы платформу .NET без Intellisense?
- Рефакторинг - я знаю, что загрузка "рефакторинга" связана с работой, связанной с языком, поэтому, если Python достаточно легкий, нам это не понадобится, но такие вещи, как переименования, кажутся мне важными для итеративного развития качества независимо от языка.
- Время запуска Crippling - одна из вещей, которые должны быть хорошими в отношении интерпретируемых языков, - это отсутствие времени компиляции, приводящего к быстрой интерактивной разработке. К сожалению, я могу скомпилировать приложение С# и запустить его быстрее, чем запустить IPy.
- Интерактивный взлом - консоль IPy/repl должна быть хороша для этого, но я не нашел хорошего способа взять код, в который вы интерактивно достигли, и сохранить его в файл - вырезать и вставить из консоль довольно жалкая. И консоли, похоже, содержат ссылки на сборки .NET, которые вы импортировали, поэтому вам нужно выйти из нее и перезапустить ее, если вы также работаете с С#. Взлом на С# в чем-то вроде LinqPad кажется намного более быстрым и простым способом попробовать все (и имеет надлежащую Intellisense). Вы используете консоль?
- Отладка - какая история здесь? Я знаю, что кто-то из команды IPy работает над хобби-проектом командной строки, но позвольте сказать, что меня сразу не привлекает отладчик командной строки. Мне не нужен отладчик из небольших скриптов Python, но если бы я использовал IPy для тестирования модулей сценариев, например.
- Модульное тестирование. Я вижу, что динамические языки могут быть хороши для этого, но есть ли интеграция с IDE-тестировщиком (например, для Resharper и т.д.). В книге Foord есть главу об этом, и я признаю, что я еще не прочитал ее правильно, но, похоже, она включает в себя запуск тестового драйвера в консольном режиме из командной строки, которая кажется огромным шагом назад от использования интегрированный тестовый бегун, такой как TestDriven.net или Resharper.
Я действительно хочу верить в этот материал, поэтому я все еще работаю над тем, что что-то пропустил. Мне бы очень хотелось узнать, как другие люди занимаются вопросами IPy, особенно если они делают это таким образом, который не чувствует, что мы только что потеряли 15-летнюю разработку инструмента.
Обновление: (июль 2010 г.) Этот вопрос выглядит довольно устаревшим, теперь, когда есть официальные IronPython Tools для VS и PyCharm, оба из которых показывают много обещаний, и ни один из них не был вокруг, когда я его написал. Спасибо всем, кто ответил. Тем из вас, кто счастлив без инструментов автоматического рефакторинга, могу ли я рекомендовать вам никогда не использовать IDE с хорошим автоматическим рефакторингом. После того, как вы это сделаете, вы задаетесь вопросом, почему вы думали, что когда-нибудь будете довольны поиском-заменой, и вам больше не захочется работать без него. Если ничего другого, возможность мгновенно переименовывать идентификаторы, не беспокоясь о замене неправильного бита текста, изменяет весь ваш подход к именованию.