انتقل إلى المحتوى

التاريخ والفلسفة

بدأ مشروع BeeWare بسؤال بسيط: لماذا لا تتحسن الأدوات التي نستخدمها كمطوري بايثون تتحسن بنفس معدل تطور بقية التكنولوجيا التي نستخدمها بشكل يومي؟

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

ومع ذلك، فإن تجربة المطورين الذين يكتبون بلغة Python تعكس في بعض الأحيان أسلوب أوائل التسعينيات أكثر من الألفية الجديدة. لا تزال بيئة التطوير الافتراضية لـ Python عبارة عن نافذة وحدة تحكم 80x25. بالنسبة للمستخدمين الذين جاؤوا من بيئة Windows أو Apple، حيث اعتادوا على واجهات رسومية مفصلة للغاية ومصممة جيدًا، قد تكون هذه العودة إلى 30 عامًا مضت تجربة غريبة تمامًا.

ونعم، هناك بيئات تطوير متكاملة (IDEs) التي توفر تجربة تطبيق أصلي لكتابة التعليمات البرمجية. لكن هذه تتطلب منك أن تتبنى، بالجملة، طريقة IDE في النظر إلى المشروع. وغالباً ما تجلب الكثير من المشاكل في عملية التطوير بقدر ما تحلّه.

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

فلسفة يونكس

ومع ذلك، لا يجب أن يكون الأمر كذلك. المبدأ الأساسي لفلسفة Unix هو أن "كل أداة تؤدي وظيفة واحدة بشكل جيد". هذه فلسفة قوية للغاية، وهي تتيح تكوين سلاسل أدوات قوية للغاية من خلال تجميع مجموعة من الأدوات المستقلة والمركزة للغاية.

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

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

أكثر من مجرد كود

لكن الأمر يتعلق بأكثر من مجرد كود برمجي. مشروع برمجي ناجح يتطلب التوثيق، ومهارات التصميم، والتغذية الراجعة وتقارير الأخطاء. يقر مجتمع يقر مجتمع BeeWare بأن كل المساهمات مهمة - وليس فقط تلك التي تأتي كطلب سحب على GitHub. وليس فقط تلك التي تأتي كطلب سحب على GitHub.

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

التنوع والشمول

المجتمع المتنوع هو مجتمع قوي. وهذا يعني قبول الناس من جميع مستويات الخبرة، ومن جميع الخلفيات، ومن جميع الأعراق والعقائد والتوجهات والتعبيرات. يلتزم مشروع BeeWare بـ بتطوير مجتمع شامل ومتنوع ومرحِّب والحفاظ عليه.

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

صحي ومستدام

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

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

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

الهدف

الهدف النهائي لمشروع BeeWare: أن نكون قادرين على القيام للهاتف المحمول وسطح المكتب البرمجيات التي تواجه المستخدم على الأجهزة المحمولة وأجهزة سطح المكتب، وهو نفس الشيء الذي فعله Django لبرمجيات الويب في وضع مجموعة من الأدوات والمكتبات بين أيدي المستخدمين التي تمكّنهم من تطوير واجهات مستخدم أصلية غنية ونشرها ونشرها على أجهزتهم. وهذا يشمل:

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

الهدف من ذلك هو أن تكون هذه المجموعة من الأدوات سهلة الاستخدام بما فيه الكفاية لـ للمبتدئين تمامًا لاستخدامها في بيئة شبيهة ب Django Girls؛ لكنها قوية بما يكفي لاستخدامها لقيادة إنستاغرام أو بينتيريست أو أو ديسكوس.

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

بايثون في كل مكان

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

تتبنى BeeWare الأجهزة المحمولة وغيرها من المنصات الناشئة (مثل الساعات وأجهزة وأجهزة فك التشفير) كمواطن من الدرجة الأولى في نظام الحوسبة - لأنه إذا كان الناس يمتلكون هذه الأجهزة لأنه إذا كان الناس يمتلكون هذه الأجهزة، فلماذا لا يكونون قادرين على كتابة برامج لهم بلغة Python.

موجود في كل مكان

من السهل استخدام القوالب لتحقيق التوافق بين المنصات. ومع ذلك، من السهل اكتشاف التطبيقات التي تم إنشاؤها باستخدام القوالب - فهي التطبيقات التي لا تتصرف تمامًا مثل أي تطبيق آخر. الأدوات لا تبدو تمامًا صحيحة, أو هناك شريط قوائم على نافذة في تطبيق OS X. يمكن أن تكون الثيمات ولكن هناك دائمًا علامات منبهة.

علاوة على ذلك، تكون الأدوات المصغّرة الأصلية دائمًا أسرع من الأدوات المصغّرة العامة ذات الطابع عامة ذات طابع خاص. ففي النهاية، أنت تستخدم قدرة النظام الأصلية التي تم تم ضبطها وتحسينها، وليس محرك رسم تم وضعه فوق عنصر واجهة مستخدم عام.

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

تستخدم BeeWare أدوات أصلية ووظائف أصلية، بدلاً من استخدام نهج قائم على السمات لتطوير التطبيقات.

لغة Python الأصلية

BeeWare هو أيضًا إطار عمل "Python أولاً" بلا اعتذار. نحن نحب Python. نحب شكله وطريقة عمله. إذا لم يكن Python متاحًا كخيار من الدرجة الأولى على منصة معينة، فسنفعل كل ما هو ضروري لجعل Python متاحًا كلغة تطوير. وعندما تتاح لنا الفرصة لتبني لغة Python لواجهة برمجة تطبيقات أو تصميم، سنفعل ذلك بالضبط. وهذا يعني أننا سنستخدم المولدات، ومديري السياق، والمكالمات غير المتزامنة yield from, وغير ذلك، من أجل توفير أفضل واجهة برمجة تطبيقات أصلية لـ Python لتطوير التطبيقات عبر الأنظمة الأساسية.

نحن نتطلع أيضًا إلى المستقبل - وهذا يعني أننا ندعم Python 3 حصريًا.

تجربة الأصليين

تبدأ تجربة استخدام أي أداة بعملية التثبيت. جزء من فلسفة BeeWare "الأصلية في كل مكان" هو اعتماد الآليات الأصلية المناسبة للتثبيت. إذا كنت تستخدم أداة في مساحة المستخدم, فيجب أن يتم تقديمها لك كحزمة يتم تثبيتها في بنفس طريقة تثبيت أي أداة أخرى - سواء كان ذلك من خلال متجر تطبيقات أو مثبِّت أو حزمة بسيطة قابلة للتنفيذ. يجب ألا يعرف المستخدمون النهائيون أن يعرفوا أنك كتبت التطبيق بلغة Python.