هناك مجالات برمجية ممتعة. ممتعة اقصد انها ليست عمل روتيني و ليست بالضرورة نوع من الإبتكار. عندما تشاهد اعمال لمبرمجين آخرين و لنقل مثلاً لعبة تم عملها بجافاسكريبت.
اغلبنا يعرف جافاسكريبت و يعرف كيف هي قوانين لعبة مثل كرة القدم لكن لا يعرف كيف يبرمجها. فما الذي ينقصنا ؟
(سلسلة )
اطلعت على أكواد لألعاب , لم يكون الكود فيها نظيف و لا استخدم الObject oriented فضلاً عن استخدام مباديء SOLID أو Design patterns. لكن الكود يعمل بشكل رائع. هذا المبرمج مهما حاول تعليمنا لن يستطيع ذلك. ليس بسبب الSpaghetti code
لكن لسبب آخر.
الObject Oriented Programming قد تكون هي افضل Programming Paradigm يمكن استخدامه
لبرمجة الألعاب كونها تقوم على المحاكاة , محاكاة و نمذجة شيء موجود في الواقع , له خصائص و له أعمال يقوم بها
و له تفاعل مع اشياء اخرى.
لكن هناك شيء اخر نحتاج لتضمينه و هو العالم المحيط , البيئة , او القوانين الطبيعية التي تحكم الأشياء.
مثل الحركة , الاتجاه , السرعة , التسارع , التصادم.
هذه الأشياء نتعامل معها يومياً في حياتنا الواقعية لكن دون الإهتمام بتفسيرها او تحليلها. ربما لأنها اشياء لا يمكننا تغييرها!.
عندما نلعب كرة قدم او تنس , نحن فقط نتحرك و بالممارسة نتعلم ضمنياً تلك القوانين الطبيعية و تستقر في لاوعينا.
لكن الكمبيوتر لا يعرف شيء عن ذلك. لذا فعليك أن تنشيء كل شيء , الواقع ( البيئة ) بقوانينه ثم تبدأ بإنشاء
الأشياء التي ستتعامل و تتفاعل مع ذلك الواقع.