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

في الستينيات من القرن الماضي ، لاحظ
جوردون مور ، أحد مؤسسي شركة إنتل ، أن عدد الترانزستورات التي يمكن وضعها على رقاقة السيليكون يتضاعف كل عامين تقريبًا. نظرًا لأن عدد الترانزستورات يرتبط بقوة المعالجة ، فإن هذا يعني أنه في الواقع ، تتضاعف قوة المعالجة كل عامين. وهكذا وُلد
قانون مور ، الذي نص على الأشخاص الذين يعملون في صناعة الكمبيوتر - على الأقل بالنسبة لأولئك الذين لم يبلغوا بعد الأربعين - نفس الأساس الموثوق الذي قدمته قوانين نيوتن للحركة للمهندسين الميكانيكيين.
لكنه ، مع ذلك ، لديه فرق واحد. لا يزال قانون مور مجرد ارتباط تجريبي ، وقد لوحظ في فترة زمنية معينة ، وقد وصلنا أخيرًا إلى الحد الذي ينطبق عليه. في عام 2010 ، توقع مور نفسه أن قوانين الفيزياء سوف توقف هذه الزيادة الأسية. "فيما يتعلق بحجم الترانزستورات" ، قال ، "من الواضح أننا نقترب بالفعل من حجم الذرات ، التي تشكل حاجزًا أساسيًا ، لكن حتى هذه المرحلة سوف يتغير جيلان أو ثلاثة أجيال - ومع ذلك ، لا يمكننا التنبؤ بمزيد من التطورات. أمامنا 10-20 سنة أخرى قبل أن نصل إلى الحد الأساسي ".
لقد وصلنا الآن إلى عام 2020 ، وبدأت فكرة أن لدينا دائمًا أجهزة حوسبة قوية بما يكفي مناسبة لاحتياجات متزايدة التزايد ، تبدو أكثر ثقة بالنفس. نظرًا لأنه كان واضحًا بالنسبة لأولئك الذين شاركوا في هذا العمل لعدة عقود ، فقد تم إجراء الكثير من الأبحاث حول الطرق المبدعة لحشو قدر أكبر من القوة الحاسوبية في الآلات ، على سبيل المثال ، البنى متعددة النواة التي تحتوي وحدة المعالجة المركزية على وحدتي كمبيوتر منفصلتين أو أكثر أو "النوى". كل هذا تم على أمل تأجيل ذلك اليوم الرهيب عندما تنفد رقائق السليكون للمناورة (على سبيل المثال ، يعمل Apple Mac Pro الجديد على معالج Intel Xeon ذي 28 نواة). وبالطبع ، تتطور دراسات الحواسيب الكمومية بوتيرة غاضبة ، والتي ، من حيث المبدأ ، يمكن أن تكون إنجازًا هامًا.
لكن الحوسبة تتطلب مجموعة من الأجهزة والبرمجيات ، وكان أحد العواقب المتوقعة لقانون مور أنه جعل المبرمجين كسولين. برنامج الكتابة عبارة عن حرفة معقدة ، والبعض الآخر يحصل عليها بشكل أفضل من غيرها. يكتبون أكثر أناقة ، والأهم من ذلك ، كود أكثر مرونة يعمل بشكل أسرع. في الأيام الأولى عندما كانت الأجهزة بدائية نسبيًا ، كانت مهارة المبرمج ذات أهمية كبيرة. على سبيل المثال ، عندما كان بيل غيتس طفلاً ، كتب مترجم BASIC لأحد أوائل الحواسيب الصغيرة TRS-80. نظرًا لأن الجهاز يحتوي على ذاكرة ROM صغيرة الحجم ، فقد كان على Gates وضع البرنامج بالكامل في 16 كيلو بايت. كتبه في المجمع لزيادة الكفاءة وتوفير المساحة ؛ هناك حتى أسطورة أنه بعد سنوات عديدة يمكن أن يقتبس البرنامج بأكمله من الذاكرة.
وفي السنوات الأولى للحوسبة ، يمكنك العثور على الآلاف من القصص المشابهة. ولكن مع الانضمام إلى قانون مور ، اختفت الحاجة إلى قانون اقتصادي مقتصد تدريجياً ، وتغير الدافع. أصبحت البرمجة تخصصًا صناعيًا لمهندسي البرمجيات. يتطلب إنشاء أنظمة بيئية شائعة للبرامج ، مثل أنظمة التشغيل والبرامج التجارية ، مشاركة فرق التطوير الكبيرة ؛ على هذا الأساس ، نمت البيروقراطية من مديري المشاريع والمديرين التنفيذيين. تحولت مشاريع البرامج الكبيرة إلى مسيرات الموت ، والتي وصفها فريد بروكس بوضوح أكبر في كتابه الشهير "
الأسطورية مان-شهر" ، التي نُشرت في عام 1975 ، ومنذ ذلك الحين أعيد طبعها لسبب وجيه - ما زالت صالحة. وفي أثناء كل هذا ، أصبح البرنامج منتفخًا وأصبح غير فعال.
لكن هذا لم يكن مهمًا ، لأن المكواة أعطت دائمًا طاقة حوسبة جديدة ، مختبئة مشكلة
البرامج المتضخمة ، أو bloatware. وغالبا ما أغضب المبرمجين الضميري. وكتب أحدهم: "إن النتيجة الوحيدة لظهور الحديد القوي الذي ألاحظه" هي أن المبرمجين يكتبون برامج عليها تتضخم أكثر فأكثر. تصبح أكثر كسولًا ، وبما أن الأجهزة سريعة بما فيه الكفاية ، فإنها لا تحاول تعلم الخوارزميات أو تحسين الكود.
هذا جنون !
هكذا هو. في محاضرة عام 1997 ، استمد ناثان ميرولد ، الذي كان مهندسًا أقدم في بيل جيتس ، قوانين البرامج الأربعة الخاصة به:
- PO هو مثل الغاز ، فإنه يتوسع لملء الخزان بأكمله.
- ينمو البرنامج حتى يصل إلى الحدود التي حددها قانون مور.
- يجعل نمو البرمجيات قانون مور ممكنًا - يقوم الناس بشراء أجهزة جديدة لأن البرنامج يتطلب ذلك.
- يقتصر البرنامج فقط عن طريق الطموحات البشرية والتوقعات.
في الوقت الذي تقترب فيه قاعدة قانون مور من نهايتها ، يستنتج من قوانين ميرولد أنه ليس لدينا سوى خياران. إما أننا سنشدد طموحاتنا ، أو سنعود لكتابة رمز أكثر اقتصادا وفعالية. وبعبارة أخرى ، العودة إلى المستقبل.