نحن نعلم أن من أساسيات عمل مواقع الويب هو أن يتم تحميل ملفات html و css و js و الصور و غيرها من الملفات إلى حاسب المستخدم ليعمل كما يجب.

و نعلم أيضاً أنه لا تزال الجهات المعنية تقوم بعملية تحسين لآلية التحميل وكأمثلة:

  • تم ابتكار فكرة المينيفاي minify وذلك بعمل نسخة من ملفات الجافاسكربت أو css بعد حذف الفراغات و التعليقات واختصار أسماء المتغيرات والتوابع إلى الحد الأصغري من عدد الأحرف والتي عادة ما تكون بنفس اسم الملف مع إضافة لاحقة min- وذلك لإنتاج ملفات ذات حجم صغير للتقليل من البيانات المنقولة وبالتالي تسريع تحميل وإظهار الصفحة

  • وكذلك فكرة التجزيء والتحميل حين الطلب

كما نعلم أيضاً أنه تم إنتاج لغات برمجة تقوم بعمل ترجمة compile لإنتاج ملفات css وذلك لتحسين إنتاجية تكويد الستايل وتسهيل عملية التعديلات من خلال المتغيرات المركزية و تعليمات الشرط والحلقات مثل لغات less و sass و scss و compass و غيرها.

كذلك الأمر ظهور لغات لإنتاج ملفات جافا سكربت مثل TypeScript و CoffeeScript

السؤال الذي أطرحه:

أنه لماذا لا يتم اعتماد لغة قياسية يتم تضمينها في المتصفحات بحيث يتم تحميل فقط ملفات الأكواد المصدرية وتتم ترجمتها لمرة واحدة في حاسب المستخدم

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

مع أني اقترح بناء مترجم native يكون مثالي لعملية الترجمة، لأنه كما هو معروف ترجمة بعض اللغات الحالية تتم من خلال مترجم روبي

سأضرب مثالاً :

أصناف الأعمدة في بوتستراب col-md-9 و البقية يتم توليدها بحلقة إذا فالناتج سيكون عشرات أضعاف حجم الكود المصدري وبالتالي لا شك أن تحميل عدة أسطر أسرع من تحميل مئات الأسطر.

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

حيث كنت أضطر لعمل إعادة ترجمة يدوية بعد كل عملية تعديل على كود scss ليتم تحديث ملفات scss وفس الأمر بالنسبة لـ TypeScript من هنا دار في ذهني هذا الاستفسار.