Ninja IDE: IDE مصمم لبايثون

أخيرًا شخص ما كرم للكتابة IDE مثل الأشخاص الذين يستخدمون Python يمكن لأي مواطن عادي استخدامها دون مشاكل في Linux. نعم ، هناك العديد من IDEs للبرمجة بلغات مختلفة ، بما في ذلك Python ، ولكن هذا واحد لديه بعض الحيل الصغيرة في جعبته...

كيف بدأت NINJA-IDE؟

نينجا IDE ولدت من خلال بعض رسائل البريد الإلكتروني المرسلة إلى PyAr ، والتي عادة ما يتم سماع موضوعها بشكل متكرر: "ما هو IDE الجيد لبايثون الذي يمكنني استخدامه؟", "لماذا لا يوجد IDE لـ Python يحتوي على هذه الميزة أو تلك؟"، والردود على رسائل البريد الإلكتروني هذه دائمًا ما تكون متشابهة إلى حد ما ، نظرًا لأن IDEs الحالي الذي نجده متاحًا ، في الغالب ، لم يتم تصميمه لـ Python ، ولكنه عرض خيار دمجها من خلال البرنامج المساعد وفي هذا الطريقة التي اعتادت أن تستخدم بها IDEs ثقيلة جدًا مصممة لأغراض أخرى ، حيث كان دعم Python ضئيلًا في الواقع ، وتلك التي كانت ل Python انتهى بها الأمر إلى أن تكون موجهة جدًا لإطار عمل معين أو لم تكن مجانية. لذلك ، بدافع من التحدي الذي يمثله ، والأفكار الشيقة التي أثيرت في القائمة البريدية ، قررنا الاقتراب من هذا المشروع من خلال التركيز على "ما هي الميزات التي يجب أن يمتلكها IDE الجيد لمبرمج Python".

مع وضع هذا في الاعتبار ، بدأنا في تطوير NINJA-IDE ، واسمه مشتق من الاختصار التكراري: "Ninja ليس مجرد IDE آخر". IDE بالكاد لديه أكثر من شهرين من التطوير ، ولكن بفضل الرغبة وساعات من البرمجة التي نكرسها له ، يمكننا بالفعل أن يكون لدينا IDE مع العديد من الوظائف التي تم تنفيذها ، لدرجة أن نكون قادرين على الاستمرار في تطوير NINJA- IDE باستخدام NINJA-IDE ، والذي بدوره يساعدنا في العثور على الأخطاء وتحسين قابلية الاستخدام والتطبيق العملي للتطبيق ، من خلال التجربة والاستخدام المستمر له.

تم تطوير المشروع بموجب ترخيص GPL مجاني ويمكن الحصول على الكود من خلال:

بعض الميزات الحالية لـ IDE هي:

  • الوظائف النموذجية لأي IDE لإدارة الملفات ، وعلامات التبويب ، والمسافة البادئة التلقائية ، ومحرر التكبير ، إلخ.
  • نظرًا لكونها مكتوبة بلغة Python وباستخدام PyQt ، فهي متعددة الأنظمة الأساسية وتم اختبارها على أنظمة Linux و MAC OS X و Windows.
  • تمييز بناء الجملة لمجموعة متنوعة من اللغات (على الرغم من أنه تتمحور حول Python ، إلا أنه يوفر تمييزًا نحويًا للغات الأخرى لراحة المبرمج).
  • إمكانية استخدام وحدة تحكم Python من نفس IDE.
  • يسمح بإدارة المشاريع في IDE ، والتعرف عليها كمشاريع Python ومن خلال IDE إنشاء ملفات ومجلدات جديدة ، وحذف الملفات الموجودة ، والإنشاء التلقائي لملفات "__init__" بالمعلومات الموجودة داخل تلك الوحدة ، إلخ.
  • يسمح بإخفاء ونقل جميع لوحات الواجهة بطريقة بسيطة للغاية ، مما يسمح بتكييفها مع أذواق المستخدم.
  • اعرض أكثر من محرر في نفس الوقت رأسيًا أو أفقيًا.
  • قابل للتوسيع من خلال إضافة المكونات الإضافية (التي يمكن إنشاؤها باستخدام NINJA-IDE Plugin للبساطة).
  • يدير جلسات IDE ، لتذكر الملفات والمشاريع التي كانت مفتوحة عند إغلاقها واستعادتها عند فتح مثيل لها مرة أخرى.
  • دعم الإكمال التلقائي (كونه إكمال تلقائي محدد للكائن الذي يتم الوصول إليه).
  • التحديثات التلقائية.
  • والعديد من الميزات!

من يطور NINJA-IDE؟

بدأ تطوير NINJA-IDE بواسطة سانتياغو مورينو ودييجو سارمينتيرو ، وفي غضون أسبوعين من بدء المشروع ، تم استخدامه بالفعل لتطويره. بفضل الأشخاص من قائمة PyAr والمدونات وما إلى ذلك. في وقت قصير جدًا ، كان نشر المشروع يعني أننا يمكن أن نعتمد على تقرير الأخطاء من قبل المستخدمين ، والاقتراحات في قائمة NINJA البريدية وحتى مع مساهمات الكود من قبل المستخدمين والمتعاونين ، والتي أصبح البعض منها جزء من NINJA-IDE مع دور المذنبين ، كما هو الحال مع: Martín Alderete و Juan Cabral و Matías Herranz.

يتيح هذا التعاون والمشاركة القويان اللذان نتلقاهما من المجتمع لـ NINJA-IDE النمو كل يوم ، وتحسين وتنفيذ الميزات التي يحتاجها المستخدمون. في المقابل ، التعليقات التي نتلقاها من الأشخاص الذين يستخدمون NINJA-IDE حاليًا ، تحفزنا على مواصلة العمل الجاد على هذه الأداة ، التي نريد من خلالها تبسيط تطوير تطبيقات Python.

كيف قررت أي الميزات يجب إضافتها؟

في بداية المشروع ، تم التفكير في بنية تسمح لها بالنمو ودمج الوظائف بمرور الوقت ، كدليل عاملين رئيسيين: محرر الشفرة وإدارة المشروع. بدأ بناء التطبيق مع مراعاة هاتين الركيزتين الأساسيتين والسماح بقاعدة جيدة لهما لتسهيل دمج الميزات الجديدة لاحقًا. مر المشروع بمراحل مختلفة ، بدءًا من محرر جيد مع تمييز بناء الجملة ، والاستمرار في إدارة ملفات المشروع ، حتى إضافة ميزات البرنامج المساعد ، والإكمال التلقائي ، وإدارة الجلسة ، إلخ. غالبًا ما يُنظر إلى Python على أنها لغة تواجه صعوبات أكبر في توفير معلومات حول الكود الذي تتم كتابته حيث لا يمكنها الاستدلال من الكائنات في وقت البرمجة بسبب الكتابة الديناميكية ، إلخ.

في بعض الحالات ، من الصحيح أن وجود كتابة صريحة يمكن أن يؤدي إلى تحليلات أبسط وأكثر تفصيلاً ، ولكن من الصحيح أيضًا أنه يوجد حاليًا العديد من الأدوات والمكتبات الخاصة ببايثون والتي تساعد في التخلص من هذا المحظور الذي لا يمكن أن يكون لديك IDE التي توفر مساعدة حقيقية بشأن الكود الذي يتم إنشاؤه. لهذا السبب تسعى NINJA-IDE إلى السماح للمبرمجين الذين يستخدمون Python بتطوير برامجهم ، والحصول على نفس التسهيلات والمساعدات التي يتم الحصول عليها عند التطوير في Java أو .NET مع بعض IDEs المعروفة حاليًا بهذه اللغات. من خلال أخذ النتائج والخبرات التي تم الحصول عليها من IDEs للغات أخرى ، فإن الهدف من ذلك هو تحقيق بيئة تطوير متكاملة مصممة لبيثون تولد نفس الرضا عند استخدامها.

بالنسبة للاقتراح والقرار وإدراج ميزات جديدة في NINJA-IDE ، تُستخدم القائمة البريدية عادةً لتحقيق قرار جماعي من قبل الأعضاء الذين يشكلون المشروع ، أكثر من أي شيء آخر لمعرفة الهدف من هذه الميزة ، في ما المرحلة التي يجب دمجها وتفاصيل أخرى. في كثير من الأحيان يتم تحفيز هذه الخصائص من خلال بعض الوظائف المثيرة للاهتمام التي تظهر في IDE آخر ، أو فكرة من أحد الأعضاء أو اقتراحات من مجموعة المستخدمين. بهذه الطريقة ، يمكن لأي شخص ، سواء كان مستخدمًا أو مطورًا ، اقتراح الأشياء التي يرغبون في رؤيتها مطبقة في NINJA-IDE واستنادًا إلى بنية المشروع ، يمكن تحديدها إذا كان من الضروري دمجها كجزء من IDE نفسه أو مكون إضافي ، يسمح في نفس الوقت بمعرفة الأفكار التي يتم العمل عليها ومن الذي يتحكم بها للحفاظ على تزامن مجموعة العمل.

ماذا يمكن أن نتوقع من NINJA-IDE؟

وُلد NINJA-IDE لتغطية حاجة بدت مهمة بالنسبة لنا ، ورأينا أيضًا أن الأساليب الحالية في IDE لم توفر التغطية اللازمة.

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

خطط مستقبلية

حاليًا مع التطوير المستمر الذي نحققه ، نقترب من إصدار الإصدار 1.0 من NINJA-IDE ، والذي سيحصل على اسم "Kunai". في هذا الإصدار الأول ، ستتوفر العديد من الميزات المذكورة سابقًا ، والتي ستسمح للمطور بالحصول على IDE قوي وعملي ، كما هو الحال في أي مشروع ، ستظهر تحسينات وميزات جديدة للتنفيذ. بعض الأشياء التي سيتم دمجها في NINJA-IDE في الإصدارات المستقبلية هي:

  • مصحح رسومات
  • لتكون قادرًا على رؤية قابلية التنقل والعلاقة بين الوحدات النمطية وفئات المشروع بيانياً (بناءً على BlueJ)
  • دعم أدوات إصدار التعليمات البرمجية.
  • السماح بالتحرير التعاوني للمستند.
  • مصمم واجهة Qt و Gtk مدمج في IDE.
  • دعم الأطر مثل:
  • جانغو
  • غوغل أب إنجين
  • وهذه مجرد بداية!

ما هي الأدوات التي يستخدمها NINJA-IDE؟

تم تطوير IDE باستخدام إطار عمل PyQt لجميع عمليات التعامل مع الواجهة الرسومية وبعض الوظائف الأخرى ، على الرغم من أنه تمت محاولة تجريد أكبر قدر ممكن من الوظائف للسماح ، إذا لزم الأمر غدًا ، بنقل NINJA-IDE إلى أطر أخرى مثل جتك. سمحت Qt بالحصول على واجهة صلبة وقابلة للتكوين بدرجة عالية ، مما جعل من الممكن توسيع كل عنصر ضروري لتعديل سلوكه وتكييفه مع احتياجات IDE.

فيما يتعلق بتمييز بناء الجملة ، يستخدم NINJA-IDE نظام إبراز بناء الجملة الخاص به باستخدام وظائف Qt ، ويسمح لنظام التمييز هذا أن يكون قابلاً للتوسيع بسهولة في NINJA-IDE مع إنشاء ملف JSON بسيط يصف اللغة المراد دمجها. توفر هذه الطريقة تحسينات في الأداء ، ولكن لتغطية تلك اللغات التي لم يتم التعرف عليها من خلال هذا النظام ، تم دمج استخدام Pygments لإبراز بناء الجملة لمجموعة أكبر من اللغات. على الرغم من أن إمكانية استبدال Pygments بـ GNU Highlight لأسباب تتعلق بالأداء يتم رفعها حاليًا.

للإكمال التلقائي ، وإعادة البناء ، وتلك التي تشير إلى استنتاج الكود ، يتم استخدام Rope ، وهي مكتبة ممتازة ، ومكتملة جدًا لهذا النوع من المواقف. Rope هي أداة تسمح لك بإحضار خصائص IDEs للغة المكتوبة إلى IDE لـ Python. حاليًا ، نحن نعمل أيضًا على دمج التحقق من الشفرة باستخدام مكتبة Pep8 ، على وجه التحديد لتوفير معلومات حول حالة الكود فيما يتعلق بمعايير Pep8.

قابلية التمدد NINJA-IDE

يحتوي NINJA-IDE على نظام مكون إضافي إلى حد ما يسمح بدمج هذه المكونات الإضافية كعنصر أصلي في IDE. كتابة البرنامج المساعد بسيط للغاية ويمكنك حتى استخدام NINJA-IDE Plugin لكتابة ملحقات NINJA-IDE (متكررة؟). يتيح لك هذا المكون الإضافي «لكتابة الإضافات» تحديد أجزاء IDE التي سيتم ربط الملحق الجديد بها وإنشاء بنية المشروع الضرورية تلقائيًا ، جنبًا إلى جنب مع واصف البرنامج المساعد بحيث يمكن لـ NINJA-IDE تفسيرها والفئة الأساسية من هذا البرنامج المساعد بالطرق التي يجب إعادة تنفيذها ، بدوره ، عندما ننتهي من كتابة البرنامج المساعد ، فإنه يسمح لنا بحزمه ثم توزيعه. يوجد حاليًا 3 ملحقات متوفرة لـ NINJA-IDE:

  • باستبين: الذي يسمح لك بإرسال رمز إلى pastebin.com وإرجاع الرابط الناتج لمشاركة هذا الرمز.
  • المشروع: الشخص المسؤول عن إنشاء مشاريع المكونات الإضافية لـ NINJA-IDE كما ذكرنا.
  • فئة يكمل تلقائيًا بعض الهياكل أثناء كتابة كود Python ، مثل: إنشاء المُنشئ تلقائيًا عن طريق استدعاء الفئات الرئيسية الضرورية ، إلخ.

للاطلاع على مزيد من المعلومات حول كيفية تطوير مكون إضافي لـ NINJA-IDE ، يمكنك زيارة موقع Wiki التالي: http://ninja-ide.org/plugins/

اتصال

تفريغ

Ninja IDE متاح الآن في حزم DEB و RPM. وبطبيعة الحال ، يمكن لبقية العالم دائمًا تنزيل التعليمات البرمجية المصدر وتجميعها. 🙂

شكرًا لك دييغو سارمينتيرو على مشاركة هذا IDE الممتاز معنا جميعًا!

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   باتريسيو أرغويلو قال

    أنا حقا أحب PyCharm أفضل. حسن العمل مع التهاني والتحيات. تضمين التغريدة

  2.   Riccardo3284 قال

    تحياتي للمجتمع ، أنا من محبي البرمجة في لغة python ، IDE جيد جدًا ولكن على جهاز الكمبيوتر لدي Ubuntu 10.10 ولا يمكنني العمل مع الميزات التي تراها في الشكل 4 ، الصورة التي توجد فيها الأوامر أو الفئات أو الطرق تظهر لكائن Python ، هذه الخاصية مهمة جدًا على الأقل بالنسبة لي نظرًا لأنه لا يتم تعلم جميع الأوامر وفي نفس الوقت ستسمح لنا بمعرفة المزيد للمبرمجين ، لكن هذه الوظيفة لا تظهر في Ubuntu الخاص بي.

    آمل أن يساعدني شخص ما من المجتمع ، البريد الإلكتروني الخاص بي هو ريكاردو3284@gmail.com

  3.   ماركوشيبي قال

    لقد قرأت ذلك بشكل خاطئ ، فدعم git لم يتم تنفيذه بعد ، ولكنه بالفعل كمكوِّن إضافي يخططون لتنفيذه 🙂

  4.   الاسكندرية قال

    ^^ ، لقد بدأت كعضو في فريق التطوير :) ، لكن في النهاية لم يكن لدي الوقت أو المعرفة الكافية واضطررت إلى التخلي عنها :(. لكنني سعيد جدًا أنه في النهاية ، تقدم NInja IDE وحقق مثل هذه النتائج الجيدة.

  5.   ماركوشيبي قال

    لقد حاولت بالفعل 😀
    آمل أن يكون هذا جيدًا ، لكن بما أنني أستخدم python و qt ، فأنا أحب xD
    أعتقد أنه يمسح إيريك ، ونظرت ولديها دعم لـ git 😀 أعتقد أننا سنتعاون

  6.   دانيال قال

    أعتقد أنه أمر ممتاز ، والشيء السلبي الوحيد هو أننا ، لكوننا ناطقين بالإسبانية ، ننشئ واجهات باللغة الإنجليزية ، يجب أن نجعلها باللغة الإسبانية ، IDES باللغة الإنجليزية ، هناك الكثير من الأسباب التي تجعلنا لا نفعل شيئًا نفهمه جميعًا نحن الذين لا يتعاملون مع اللغة الإنجليزية ، وإلا فليس لدي ذلك لكن هنئهم.

    تحياتي

  7.   أوجينيو تامبور قال

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

  8.   دانيال دي سي اس قال

    عمل ممتاز "صنع في" الأرجنتين !!!! خالص التهاني لفريق التطوير بأكمله !!!!

  9.   نير قال

    تحياتي للجميع ، عمل جيد جدًا ، IDE مريح تمامًا للاستخدام ، سيكون من المثير جدًا تضمين محرر لواجهات المستخدم الرسومية ، وسيكون من الرائع أيضًا أن يسمح لك بإنشاء وثائق المشروع (ربما بأسلوب Javadocs).

    واصل التقدم.