
أهلا وسهلا بك! سأبدأ المقال باستطراد صغير. هل شعرت بخيبة أمل عندما واجهت البرمجة لأول مرة؟ لقد افترضت أن إنشاء البرامج يحدث من خلال التفاعل مع بعض الأدوات المعقدة ، ولكن المثيرة للاهتمام للغاية ، والتي يمكنني أن أفعل فيها الشيء المفضل لدي (جمع المنشئات) على مستوى جديد. ومع ذلك ، بدلاً من ذلك ، كان عليّ أن أتعلم كيفية كتابة ملفات نصية تتألف من عدة عوامل تشغيل ، والأقواس ، والسلاسل ، وغيرها من بنى النصوص. لقد مرت عقود ، وتعلمت البرنامج ، وكنت قد نسيت بالفعل خيبة الأمل هذه ، لكن عندما رأيت أخبار Google Blockly و Scratch على الشبكة ، شعرت بالحنين إلى ...
هذه الأدوات ، حتى دون الادعاء بأنها مهنية ، مثيرة للاهتمام للغاية! لا توجد نصوص وتصنيفات - يمكنك سحب الكتل والحصول على النتيجة على الفور. هل يمكن القيام بذلك للمحترفين؟ أنا متأكد من أنك تستطيع! وفي هذا المقال أود أن أعرب عن رؤيتي لكيفية ذلك.
ما هي النقطة؟
إذا ابتعدنا عن طريقة اختبار برامج الكتابة ، فسنحتاج إلى فصل بنية رمز البرنامج ونوعه ...
كيف هذا؟
للقيام بذلك ، بادئ ذي بدء ، نحن بحاجة إلى تخزين الرموز المصدر في شكل مختلف. يجب أن تكون وصفًا للتعليمات وبيانات البرنامج في أحد الأشكال الحالية لتخزين البيانات ، مثل json أو xml أو أي شيء آخر. يمكن أن يكون لهذا الملف (الشكل 1 ، اليسار) مظهر قبيح إلى حد ما ولا يستسلم لأي طريقة معقولة لتحريره مباشرة ، ومع ذلك ، في بيئة برمجة سيتحول إلى رمز كتلة (الشكل 1 ، يمين).
لا تتعامل بيئة البرمجة نفسها مع الرموز النصية ، ولكن مع "الكتل" التي تم بناء رمز البرنامج منها.
ماذا سيعطينا؟
1. أولاً ، سنتخلص من الاختلافات البسيطة في بناء جملة اللغات المختلفة. على سبيل المثال ، يتم فصل كتل التعليمات البرمجية في C ++ بأقواس متعرجة ، ويولي روبي الانتباه إلى الكلمات الرئيسية ... في المحرر ، يمكنك تكوين كلا النوعين من البرامج ، لن يتغير أي شيء فيه. تسمح إعدادات العرض الشخصية للمطور بالاطلاع على البرنامج كما يحب. بالإضافة إلى ذلك ، يمكننا استخدام أي أحرف في التسمية ، بما في ذلك المسافات.
2. ثانياً ، ستزيد سرعة كتابة البرنامج. الآن ، من أجل كتابة عبارة في لغة تشبه C ، نحتاج إلى كتابة النص للنص نفسه ، ثم الأقواس والمعلمات والفاصلة المنقوطة والأقواس المتعرجة ثم اضغط على إدخال. في الإصدار الخاص بنا ، تقوم بيئة البرمجة ، عن طريق النقر فوق مجموعة معينة من المفاتيح ، بإدراج دورة وتتطلب فقط إدخال معلماتها. على سبيل المثال ، سيؤدي الضغط على "f" إلى وضع حلقة for في مكان المؤشر وعرض إدخال عدد التكرارات واسم العداد عبر الجدولة عن طريق الضغط على مفتاح الإدخال في النهاية.
3. ثالثًا ، سيكون من الممكن ضمان الاستقلال عن لغة المبرمج. قد تتم الإشارة إلى عوامل تشغيل اللغة بواسطة بعض الأحرف ، أو قد يتم عرض الكلمات الأساسية باللغة الأم للمبرمج. إذا كان يريد أن يتم استدعاء المشغلين باللغة الإنجليزية أو الروسية أو بأي لغة أخرى ، فإنه يختار هذه اللغة في إعدادات المحرر وتغيير أسماء المشغلين "سريعًا". بالنسبة إلى أسماء الكائنات والطرق ، فإنه أكثر تعقيدًا ، ولكن على أي حال ، إذا تم تطوير البرنامج بواسطة مطورين روس ، فيمكنك تسمية كل شيء باللغة الروسية - إذا حددت هذا السيناريو فلن يكون هناك تعارض بين أسماء المشغلين وأسماء الكائنات والطرق - كل شيء سيكون باللغة الروسية. هذا يمكن أن يبسط التعلم للطلاب والبالغين الذين لا يعرفون اللغة الإنجليزية. وإلى جانب ذلك ، في فرق متعددة الجنسيات ، من الممكن استخدام اسمين لتسمية الأشياء والطرق - باللغة الإنجليزية ولغة المطور.
4. رابعا ، سيكون من الممكن تحديث هيكل البرنامج. إذا ظهرت بعض الميزات الجديدة في الإصدار الجديد من المعيار الذي يغير مظهر تصميمات الكتل ، فسيكون من الممكن إصدار تصحيحات للبرامج القديمة التي ستجلبها تلقائيًا إلى شكل جديد. في الشكل 4 ، يمكنك معرفة بنيات اللغة القديمة التي يمكن تحويلها بواسطة بيئة البرمجة إلى نموذج جديد.
5. خامسا ، سيكون من الممكن تمثيل هيكل البرنامج بأي طريقة مريحة. على سبيل المثال ، في شكل غرفة ثلاثية الأبعاد يمكنك من خلالها التنقل مثل ألعاب الكمبيوتر وتحرير العلاقة بين الطبقات والكائنات ثلاثية الأبعاد.
بيئة البرمجة
لن تسمح طريقة تقديم البرنامج هذه بتغييره في محرر نصوص بسيط. لتحرير البرنامج ، ستحتاج إلى بيئة برمجة خاصة. يعد تطوير الإصدار الأول من بيئة البرمجة هذه أكثر صعوبة من اللغات التقليدية ، ولكن هناك طرقًا للبدء. على سبيل المثال ، يمكنك البدء باستخدام محرر ملفات البيانات ، والذي يسمح لك بتحرير الملفات بأي تنسيق (xml ، json ، yaml ، إلخ) بالطريقة نفسها - باستخدام الكتل. في هذه الحالة ، سيتم تجنيب المستخدم الحاجة إلى دراسة بناء جملة هذه الملفات وسيكون قادرًا على تحرير أي منها عن طريق التعلم لتحرير ملفات البيانات في هذا البرنامج فقط.
بعد ذلك ، ستكون هناك مهمة تطوير برنامج مترجم يمكنه إنشاء برنامج أثناء التحرير. وفي المستقبل ، سيكون من الأسهل توفير وظيفة الإكمال التلقائي وإضافة وظائف إلى بيئة التطوير التي تتطلب معرفة "عميقة" برمز البرنامج ، حيث لا يتعين عليك تحليل رموز النص. بالإضافة إلى ذلك ، فإن بيئة البرمجة "تعرف" كل ما هو مطلوب حول البرنامج من أجل تسليط الضوء على بناء الجملة وإعادة تجهيزه بشكل أفضل ، حيث يمكن تخزين جميع البيانات اللازمة لهذا بشكل غير مرئي للمبرمج في ملف بيانات البرنامج.
استنتاج
أنا متأكد من أن طريقة البرمجة الموصوفة ستفتح فرصًا هائلة للمبرمجين وستسرع بشكل كبير وتبسيط تطوير التطبيقات. ومع ذلك ، واحد في هذا المجال ليس محارب. تطوير مثل هذا المنتج يتطلب مقاربة قوية وموارد. أنا وحيد وأعمل عن بُعد - هذا المشروع صعب للغاية بالنسبة لي ... ربما إذا كنت مهتمًا به ، فهل يمكننا العمل معًا؟