سؤال

أنا حريصة على شرب بعض الحديث لغة ديناميكية كوليد لذا يعتقد كل الاشياء على مايكل Foord بلوق دبليو, لقد اشتريت له كتاب (قراءة بعض ذلك) و أضفت جزءا لا يتجزأ من السنة وقت كبير القائمة التطبيق في السنة أو قبل ذلك (على الرغم من أنه كان من شخص آخر وأنا لا تستخدم حقا نفسي).

الآن أنا بحاجة إلى القيام ببعض بسيطة إلى حد ما رمز جيل الاشياء, حيث انا ذاهب الى استدعاء عدد قليل من الطرق على بعض .صافي الكائنات (العرف, C#-تأليف الكائنات) ، إنشاء عدد قليل من سلاسل كتابة بعض الملفات وما إلى ذلك.

تجربة يحاول هذا يترك لي شعور مثل الولد الصغير الذي يعتقد انه الوحيد الذي يمكن أن نرى أن الإمبراطور لا يوجد لديه الملابس.إذا كنت تستخدم IronPython أنا حقا نقدر معرفة كيفية التعامل مع الجوانب التالية منه:

  • تحرير التعليمات البرمجية - هل تستخدم .NET framework دون التحسس الذكي?
  • إعادة بيع ديون أعلم حمولة من 'إعادة بيع ديون' حول العمل حول اللغة ذات الصلة بالأعمال التافهة, حتى إذا بايثون بما فيه الكفاية خفيفة ثم لن تحتاج ذلك, لكن أشياء مثل تسمية يبدو لي أن من الضروري تكرارا النامية رمز الجودة بغض النظر عن اللغة.
  • تشل وقت بدء التشغيل - واحدة من الأشياء التي من المفترض أن تكون جيدة عن تفسير اللغات هو عدم وجود وقت الترجمة مما يؤدي إلى سرعة التنمية التفاعلية.للأسف لا أستطيع تجميع C# التطبيق وإطلاقه أسرع من السنة يمكن أن تبدأ.
  • التفاعلية القرصنة - السنة القطبية الدولية وحدة/repl من المفترض أن تكون جيدة عن هذا ولكن لم أجد طريقة جيدة لأخذ التعليمات البرمجية قمت تفاعلي وصل وتستمر في ملف - قص ولصق من وحدة التحكم إلى حد ما بائسة.وحدة التحكم يبدو أن عقد المراجع .صافي جمعيات لقد المستوردة ، لذلك عليك أن توقف تشغيله إذا كنت تعمل على C# الأشياء كذلك.القرصنة على C# في شيء مثل LinqPad يبدو أسرع بكثير وأسهل طريقة لمحاولة الأمور (و مناسب التحسس).هل تستخدم وحدة ؟
  • التصحيح - ما القصة هنا ؟ أنا أعرف شخص في السنة القطبية الدولية الفريق العامل على سطر الأوامر هواية المشروع ، ولكن دعنا نقول فقط أنا لا اجتذب سطر الأوامر المصحح.أنا حقا لا تحتاج إلى مصحح الأخطاء من البرامج النصية بيثون, ولكن كنت أود لو تم استخدام السنة للبرمجة وحدة الاختبارات ، على سبيل المثال.
  • اختبار وحدة أرى أن اللغات الديناميكية يمكن أن تكون كبيرة لهذا, ولكن هل هناك أي IDE اختبار عداء التكامل (مثل Resharper ، إلخ).على Foord الكتاب فصلا عن هذا الذي أنا أعترف أنني لم أقرأ حتى الآن بشكل صحيح ، ولكن يبدو أن تنطوي على قيادة وحدة التحكم في وضع الاختبار-عداء من موجه الأوامر الذي يشعر خطوة كبيرة إلى الوراء من استخدام متكامل اختبار عداء مثل TestDriven.net أو Resharper.

أنا حقا أريد أن أصدق في هذه الأشياء ، لذلك أنا لا تزال تعمل على افتراض أن كنت قد غاب عن شيء.أود حقا أن أعرف من الناس كيف نتعامل مع السنة ، وخاصة إذا كانوا يفعلون ذلك بطريقة لا يشعر وكأنه لقد فقدت 15 سنوات-بقيمة أداة التنمية.

تحديث:(تموز / يوليه 2010) هذا السؤال يبحث جدا مؤرخة الآن أن هناك الرسمية IronPython أدوات VS و PyCharm وكلاهما يظهر الكثير من الوعد و أي من كان حولها عندما كتبت ذلك.شكرا لكل من أجاب.لأولئك منكم الذين هم سعداء دون التلقائي إعادة بيع ديون أدوات يمكنني أن ننصح أبدا أبدا استخدام IDE مع التلقائي إعادة بيع ديون.بعد أن كنت قد كنت أتساءل لماذا كنت من أي وقت مضى سعيدا مع البحث-استبدال و لن ترغب في العمل دون ذلك مرة أخرى.إذا كان أي شيء آخر ، والقدرة على الفور تسمية المعرفات دون الحاجة إلى القلق حول استبدال خطأ كبيرا من التغييرات في النص كله نهج تسمية الأشياء.

هل كانت مفيدة؟

المحلول

do you use the .NET framework without Intellisense?

نعم.أنا فقط استخدام emacs مع IronPython."M-/" جيدة بما يكفي بالنسبة لي.أنا أحيانا التبديل إلى عاكس MSDN عندما كنت حقا بحاجة إلى معلومات حول SDK.

Refactoring

هل تعني في الواقع "التلقائي إعادة بيع ديون" عندما قلت "إعادة بيع ديون".أفعل الكثير من إعادة بيع ديون في حين الترميز.فإنه يمكن أن يكون أفضل مع بعض الآلي.ولكن أنا بخير مع دليل إعادة بيع ديون.كما أن قوة لي لتشمل المزيد من الاختبارات.أنا لم تستخدم أي IDE مع إعادة بيع ديون الميزة على نطاق واسع ، ولعل هذا هو السبب أنا لا يعاني.بحث بسيط و محل ما يرام بالنسبة لي.

Crippling startup time

نعم هذا هو تخصصي الألم, على الرغم من أنني أعمل على 3GHz Quad-core مع 4G Ram ، فإنه لا يأخذ 50s لتشغيل 359 اختبار الحالات.نصف ذلك الوقت (25s) هو وقت بدء التشغيل !!يبدو IronPython أداء بعض ثقيلة جدا مهمة المعالجة عند استيراد وحدة كبيرة.أنا الآن التخطيط أن يبصق بلدي التجارب إلى أجزاء لتخفيف هذا الألم.

Interactive hacking - Do you use the console?

يمكنني استخدام وحدة التحكم في بعض الأحيان, عندما كنت ترغب في محاولة بعض مخصصا فكرة.ليس لدي مشكلة مع ذلك.معظم الوقت أنا كتبت رأيي في الوحدة-اختبار, ومع ذلك.

Debugging - what's the story here?

إذا كان التصحيح يعني كسر النقطة متغير التفتيش.أنا فقط استخدام طباعة بيان هذه الأشياء.هذا النوع من التطبيق أنا أعمل على وشك العيش والحفاظ على الاحتفاظ لمدة عشر سنوات على الأقل.إلى التعامل مع خلل التعليمات البرمجية, أنا أراهن فقط على 3 أشياء:مفهومة رمز الوحدة-اختبار واسعة-قطع الأشجار.

Unit testing

لم تقترب من أي أداة تذكر.مجرد استخدام unittest.TextTestRunner.بجانب الرهيبة وقت بدء التشغيل ، ليس لدي أي شكاوى.

** تحديث **

أنا مجرد الانتهاء من الترقية إلى السنة 2.6B1 مع الهائل نتيجة.وقت بدء التشغيل تقلل من 25s إلى 6s و عموما وقت الاختبار يقلل من 50s إلى 16 !!!

مذهلة !

نصائح أخرى

ماذا عن IronPython أدوات Visual Studio عام 2010 ؟

IronPython توفر أدوات الثعبان رمز محرر ملف المشروع بناء نظام تفاعلي Python مترجم, كل داخل Visual Studio 2010, و كل ذلك مجانا. http://ironpython.net/tools/

أعتقد أن هذه الإضافة في ستغطي معظم النقاط الخاصة بك.

نأمل أن يساعد ،

باتريك

IronPython هو حل كبير لكني الحفاظ على العودة إلى CPython ويندوز.لماذا ؟

في تجربتي CPython تحت Windows, Mac OS/X *NIX هي تقريبا نفس.يمكنني استخدام تقريبا جميع "بطاريات" في كل بيئة.أنا في كثير من الأحيان تطوير التطبيقات على لينكس و السفينة إلى خوادم ويندوز.زوجين من القضايا مع خيوط جانبا لدي أي مشاكل.

IronPython ، من ناحية أخرى ، هي لغة بايثون التفاف حولها .Net Framework.أجد أنه من أجمل بكثير من استخدام C#, ولكن هذا كل شيء.بلدي CPython البرامج لا تعمل دون قدر كبير من إعادة صياغة.بطاريات IronPython مختلفة.

إذا كان هدفك هو أن يكون مثمرا .صافي ثم السنة وربما موافق.ومع ذلك ، إذا كنت تسعى المحمولة الثعبان المهارات ، ثم أود أن تجنب ذلك.

أنا باستخدام بيديف لكتابة IronPython رمز.أنا أحاول منفصلة .صافي رمز معين بقدر الإمكان بحيث يمكنني تشغيل (الحديد)البرامج النصية بيثون من داخل بيديف.بفضل بيديف يمكنني استخدام Pylint التي يمكن العثور عليها في http://www.logilab.org/857.الإصدارات الأخيرة من بيديف هي قادرة على تكوين المترجم حتى في ملف أو مشروع على حدة.لذا يمكنك بسهولة التبديل المترجمين من IronPython إلى CPython والعكس بالعكس.بهذه الطريقة, أنا أرى أن قانون بلدي هو محمول بين الثعبان تطبيقات.(على الرغم من أنني لا تستخدم ، Jython 2.5 RC يمكن استخدامها في بيديف أيضا.)

وجود الثعبان IronPython 2.5 متوافق مع التعليمات البرمجية ، يمكنك استخدام إعادة بيع ديون في بيديف ، انظر http://pydev.sourceforge.net/refactoring.html.

IronPython الاستوديو سيكون خيارا جيدا إذا كان يؤيد IronPython 2.x, ولكن للأسف, لا.

بيديف, جناح, PyCharm و IronPython أدوات Visual Studio كل الدعم التحسس على .صافي تحت IronPython.لدي شعور بأن SharpDevelop أيضا التحسس من أجل IronPython.

وقت بدء التشغيل تحسنت كثيرا تحت IronPython 2.6 مرة أخرى في 2.7.فإنه لا يزال أبطأ بكثير CPython ذلك.

مصلح الدراجات و حبل نوعان شعبية الآلي إعادة بيع ديون أدوات بيثون.لم أجد حاجة إلى أي منهما.

pdb (بيثون المكتبة القياسية المصحح) يعمل مع IronPython.بيديف ، SharpDevelop و IronPython أدوات Visual Studio كل الدعم تصحيح IronPython.

لقد استعملت المتكاملة أدوات اختبار (الجناح جيدة unittest دعم SharpDevelop يدعم unittest و unittest2 على IronPython ، بيديف و PyCharm ربما يكون جيد unittest التكامل أيضا).أنا أفضل تشغيل بلدي التجارب من سطر الأوامر.unittest2 هو عظيم هذا كما أنه يزيل الحاجة إلى كتابة الاختبار الخاصة بك جمع / تشغيل التعليمات البرمجية.

يمكنني استخدام تفاعلية مترجم للتجريب كبير و أحيانا كما كهربائيا يصل قذيفة.

لقد تم استخدام IronPython (و DLR في العامة) على نطاق واسع في مشاريع في الآونة الأخيرة عن أشياء مختلفة.بعض الأمثلة:

  • أنا جعلت وثيقة مولد على أساس القوالب التي تستخدم py النصوص لبناء وتحويل سياق المتغيرات التي مرت في قالب العارض (Excel, Word, html>pdf)
  • كتعبير عن المقيم المتخصصة القاعدة المحرك.النصوص المحفوظة في عمود في جدول قاعدة البيانات وتقييمها في وقت التشغيل إلى تحديد القاعدة لا تنطبق.
  • كما خطوات في ETL المحرك.في الأساس لدي بعض المكونات التي يمكن قراءة ملفات Excel و استخدام البرامج النصية بيثون لتحويل البيانات و إنشاء NHibernate الكيانات لملء قاعدة البيانات الخاصة بنا.
  • ديناميكية تكوين البرامج النصية C# المكونات.
  • وهو محرك حساب بعض المؤشرات التي يجب إنشاؤها من مجموعة كبيرة من البيانات.أنا الجمع بين موازية امتداد مع النصوص المترجمة مسبقا, أداء جيد حتى الآن.

أشياء من هذا القبيل.عندما يكون المحرك هو تكوين بشكل صحيح ، مع مسارات الإشارات ، يمكنك أساسا استخدام برنامج نصي للتو عن أي شيء.

تقريبا كل هذه الأمور تعمل في asp.net mvc التطبيقات و حتى الآن جيد جدا.اكتشفت أن ScriptEngine و بعض المكونات مثل ScriptScope هي مؤشر الترابط-الآمن حتى أستطيع حتى تشترك في تكوين المحرك الذي عقد داخل حاوية اللجنة الأولمبية الدولية (ex.وندسور) بين وحدات التحكم هذه.

أما بالنسبة محرر أنا EditPlus أكثر من مرة.VS 2010 الثعبان محرر يميل إلى أن يكون قليلا غير مستقرة على الرغم من تحرير سريع ليست مشكلة.

استخدام IronPython قد اقتصر على صنع نماذج سريعة عن نفسي حتى لا أستطيع أن أقول الكثير عن ذلك.ولكن إذا كنت تبحث عن IDE الخاصة IronPython, IronPython Studio هو مقبول.سوف أعطيك بعض التحسس وظيفة ، على الرغم من أنها قليلا غير المستقر في بعض الأوقات حتى لا تغلق وثائق MSDN نافذة فقط حتى الآن.وسوف تسمح لك بشكل تفاعلي تصحيح مثل أي دولة أخرى .صافي المشروع.كما أنها تدعم Visual Studio 2008 مصمم نماذج إذا كنت تفضل أن تجعل النظام الخاص بك واجهة المستخدم الرسومية من هذا الطريق.أنا لم أجربها ولكن قد أيضا دعم تشغيل nUnit الاختبارات باستخدام TestDriven.net.

للأسف تسمية وغيرها إعادة بيع ديون الميزات التي يقدمها VS 2008 يبدو أن يكون غير معتمد.

أنا باستخدام السنة في جزءا لا يتجزأ من بيئة تشغيل اختبار البرامج النصية.

1 & 2.أنت على حق ليس هناك الكثير من الدعم من أجل تحرير التعليمات البرمجية أو إعادة بيع ديون -- السليم Visual Studio دعم من شأنها أن تكون كبيرة.

وتجاهل النقطة الثالثة -- تفسير مباراة جمعت قديم الحجة.

لم تفعل الكثير من التفاعلية القرصنة بعد لذا لا أستطيع التعليق على 4 نقطة.

يمكنني استخدام مصحح الأخطاء Visual Studio التصحيح بلدي السنة النصية.

لا أعرف عن وحدة اختبار IDE التكامل أيضا.

أنا أدير مجموعة من ورق المحاكاة على بيثون 2.6 مقابلIronPython 2.6 و الضجيج الرغم من IronPython يبدو أن فقط أبطأ قليلا (ربما بنسبة 10%?) الكود بسيط جدا, فقط الاشياء مثل:

def highcount(hand):
  total=0
  for c in hand:
    if c[1]==11 and 11+total>21:
      total+=1
    else:
      total+=c[1]
  return total

و

def dmove():
  if ( (dhand[0][1]==11 and dhand[1][1]==10) or 
       (dhand[0][1]==10 and dhand[1][1]==11) ):
    return 21 # should return blackjack

  while 1:
    lc=lowcount(dhand)
    hc=highcount(dhand)
    if lc>21: return lc # dealer busts
    if lc>=17: return hc # stand on soft 17
    if hc>=17: return hc # stand on hard 17
    dhand.append(deck.pop()) # hit otherwise

إذا كان .صافي VM تحسينات مماثلة JVM الساخنة من الممكن جدا أن أكثر من أطول أشواط ، IronPython قد تشغيل المحاكاة بشكل أسرع.

نقطة أخرى مهمة أن نلاحظ لعبة ورق محاكاة بسهولة يفسح المجال وضع البيض على العديد من المواضيع التي CPython غيل يجعل لا قيمة لها تماما من حيث زيادة السرعة.مع IronPython أنا لا تحصل على كامل 400% تسريع على quadcore الذي هو حقا بارد.

القانون لا تستخدم أي الباطنية الثعبان الميزات (وهذا شيء جيد) مما يعني أنه ركض 100% معدلة على IronPython.

أنا باستخدام الحديد بيثون ، وليس مهنيا ، للأسف ، ولكن التطور السريع لغة بلدي المشاريع الشخصية.

بيثون هو هذه اللغة العظيمة لسهولة الاستخدام ، الإيجاز ولكن قراءة رمز البساطة.بعض من هذا هو بسبب كونها لغة ديناميكية ، ولكن أيضا في الجملة الأساسية.

أنا, ومع ذلك لا cpython المعلم ، يمكن أن تحصل على أكثر بكثير من الحديد الثعبان من cpython كما يمكن بسهولة الاستفادة .صافي منصة, التي أنا الآن أكثر في المنزل.أشعر بخيبة أمل لا يوجد حاليا أي منفذ الملتوية المكتبات في cpython الوحيد تمديد المكتبات بيثون أنا مرتاح مع ، كما أنها ستكون مفيدة جدا في .صافي.

أنا أيضا استخدام نافذة تفاعلية فقط لاختبار .صافي الهياكل عندما أكون الترميز في C#.

أنا فقط اشترى Foord كتاب حتى الآن أنا فقط تعلم ذلك.وأنا آمل حقا أن استخدامها لتطوير الشبكة ولكن للأسف أنا تضطر إلى الانتظار حتى يتم دعم asp.net mvc.كما تخطط لاستخدامها بوصفها أداة البرمجة على أنظمة ويندوز منذ يمكنني استخدام .net framework

في العمل نستخدم IronPython ضد SharePoint نموذج كائن.فهو مثالي الكثير من البرامج التي هي أكبر من النصي powershell ولكن لا شيء يحتاج إلى نشر قطعة أثرية في SharePoint.انه امر رائع بالنسبة النماذج الأولية السريعة على الملقمات حيث Visual Studio لم يتم تثبيت.ونحن عادة استخدام Notepad++ كما لدينا محرر الاختيار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top