JavaScript هي عالم من الفوضى إن تغاضينا عن التنظيم الممتاز في Node.js ونظرنا إلى بيئة المتصفّحات... كم مرّة عانى مطوّرو الويب من عدم التوافق... المتصفّح الفلاني يوفّر الميزة الفلانية
لم تذكر في مقالتك حلول هذه الفوضى وايضا حل عدم التوافق، وهي المنصات (MVC) التي ضهرت حديثا:
لا أعتقد أن أطر العمل هذه تسعى لحل الفوضى التي قصدتها، ما قصدته هو وجود حاجة لإضافة عدة مكتبات غير متوافقة مع بعضها لتحقيق توافق بين المتصفحات، بعض هذه المكتبات يتبع نمط AMD والآخر يتبع نمط Common JS وبعضها يُعرّف متغيراته في النطاق العام... الفوضى عارمة وأطر العمل وُجدت لتحلّ مشكلات من نوع آخر. لا يسعني إلا أن أذكّر بتجربتي المريرة مع Angular.js التي يبدو أنها الأبطأ بين كل أطر العمل (انظر
على سطح المكتب تُعتبر Angular جيّدة وتوفّر الكثير من الخدمات التي تحتاج معظمها لبناء تطبيق ويب متقدّم. ما يعيبها هو اعتمادها على ما يُسمى Dirty checking للتحقّق من التغييرات في العناصر والكائنات وتطبيقها على الصفحة، ويبدو أنّ هذا مصدر سوء الأداء؛ هذا الأمر سيتغيّر في Angular 2.0 (التي لا تزال بعيدة) باعتماد Object.observe التي بالتأكيد سُتغير من أدائها نحو الأفضل بشكل ملحوظ. لم أجرّب Vue.js ولكن يبدو أن أسلوب استعمالها سهل وشبيه بـAngular.js.
البديل أن تدرس جيّدًا ما سيحتاجه تطبيقك بالذات وتفكر إن كان بالإمكان الاعتماد على JavaScript "سادة" (أي بدون أطر عمل)، غالبًا لن تحتاج jQuery مثلاً فهي ثقيلة وفيها الكثير من الخصائص التي صمّمت لتحل مشاكل قديمة، ربّما ترغب باستخدام مجموعة من المكتبات الصغيرة الحجم التي يؤدّي كلّ منها عملاً محدّدًا بدل أن يحاول أن يكون إطار عمل يقدّم كل شيء بدءًا من التوجيه (routing) مرورًا بطلبات AJAX وإلقولبة (templating)... هذا النهج ذكره المطوّر Rob Ashton في مدوّنته (
التعليقات