أنت الآن تضغط على “update” بالكاد وتفكر في الأمر. يتحرك شريط التقدم. تُستبدل بضعة ملفات. وربما يعيد هاتفك التشغيل. تبدو كلمة patch نظيفة ومجردة، تكاد تكون بلا دم.

لكنها لم تبدأ بهذه الصورة.

في الأيام الأولى للحوسبة، كانت الـ patch غالبًا تعني تمامًا ما توحي به الكلمة: إصلاحًا ماديًا يُطبَّق على وسيط مادي يحمل الشيفرة. ليس مجازًا. وليس على نحو مفاهيمي. بل حرفيًا. كانت البرامج تُخزَّن على وسائط مثقوبة، وإذا احتاج جزء من البرنامج إلى تصحيح، أمكن تغطية الجزء التالف أو الخاطئ، أو قصّه، أو استبداله بمقطع مُرقَّع.[1]

وهذا هو الجزء الذي ورثته البرمجيات الحديثة بهدوء. فقبل وقت طويل من تنزيل أي تحديث أمني عبر Wi‑Fi، كان المبرمجون بالفعل “يرقّعون” البرمجيات بأيديهم.

حين كانت الشيفرة شيئًا يمكنك أن تمسكه

من السهل أن ننسى إلى أي حد كانت الحوسبة المبكرة مادية. لم تكن الشيفرة تطفو بشكل غير مرئي في التخزين السحابي. بل كانت تعيش على البطاقات المثقوبة والأشرطة الورقية، وهي أنظمة تُشفَّر فيها التعليمات على هيئة أنماط من الثقوب. إذا كانت الثقوب خاطئة، فالبرنامج خاطئ. وإذا انكسرت السلسلة، فستتبع الآلة التعليمات السيئة بطاعة كاملة.[1]

ولأن تلك التعليمات كانت موجودة على وسيط مادي، فقد كان تصحيحها يتحول إلى فعل مادي أيضًا. ففي الآلات المبكرة مثل Harvard Mark I عام 1944، استخدم المشغلون رقعًا حرفية لتصحيح الثقوب عبر تغطيتها.[1] لم يكن خطأ البرمجة مجرد مشكلة منطقية. أحيانًا كان مجرد عيب صغير في شيء ملموس يجلس أمامك مباشرة.

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

أول تحديث برمجي كان أشبه بجراحة

لاحقًا، عندما بدأ موردو البرمجيات يوزعون التصحيحات، لم يكونوا غالبًا يرسلون برنامجًا جديدًا بالكامل. كانوا يرسلون تغييرًا فقط. وعلى الشريط الورقي أو البطاقات المثقوبة، كان ذلك يعني أن المستلم قد يُتوقع منه أن يقص الجزء المحدد من الشريط الأصلي أو رزمة البطاقات، ثم يضيف المقطع البديل مكانه.[1]

وهنا تصبح الكلمة شديدة الوضوح. فالـ patch لم تكن مجرد نسخة جديدة. كانت إدخالًا. إصلاحًا. ترقيعًا.

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

إنها قصة أصل متواضعة على نحو غريب لكلمة تنتمي اليوم إلى أنظمة برمجية بمليارات الدولارات. فالـ patch الحديثة تصلك بلا أن تُرى. أما القديمة فكانت تصل مع المقص، وقطعة الاستبدال، والتعليمات.

لماذا التصق الاسم

تدوم الكلمات حين تلتقط شكل المشكلة، وقد فعلت patch ذلك تمامًا. فحتى مع تغيّر الوسيط، بقيت الفكرة الأساسية كما هي. لم تكن تستبدل النظام كله. بل كنت تصلح عيبًا محددًا. كنت تطبق تصحيحًا دقيقًا على شيء مستخدم بالفعل.[1]

ولهذا نجت الكلمة من الانتقال من الوسائط المثقوبة إلى الأشرطة المغناطيسية، ثم إلى الأقراص القابلة للإزالة، ثم إلى الأقراص المدمجة التي تُرسل بالبريد، وأخيرًا إلى التحديثات القابلة للتنزيل عبر الإنترنت.[1] تغيّرت المادة. ولم يتغير المجاز.

بل إن الأمر بالكاد يبدو مجازًا أصلًا، لأن الكلمة اكتسبت معناها بالطريقة الصعبة. بدأت كعمل إصلاح حرفي، ثم فقط لاحقًا أصبحت جزءًا من مفردات العالم الرقمي.

من الأشرطة والبطاقات إلى التنزيلات

إن تاريخ الـ patching هو أيضًا تاريخ مصغر لتوزيع البرمجيات. ففي البداية كان هناك الشريط الورقي والبطاقات المثقوبة. ثم جاءت الأشرطة المغناطيسية. وبعد ذلك جعلت الأقراص القابلة للإزالة تسليم الشيفرة المصححة ماديًا من المطور إلى العميل أسهل. ثم جاءت الأقراص المدمجة، والتحديثات البريدية، وأخيرًا الإنترنت، الذي حوّل الـ patching من حدث لوجستي إلى عملية روتينية تجري في الخلفية.[1]

كل خطوة جعلت الترقيع أسرع وأقل ظهورًا. كما جعلت المعنى الأصلي أسهل نسيانًا.

حين كانت الـ patch تصل بالبريد، كنت لا تزال تشعر بوزنها. أما حين تصل عبر الهواء، فيبدو الأمر طبيعيًا تقريبًا، كما لو أن البرمجيات تشفي نفسها بنفسها. ومع ذلك، ما تزال الكلمة القديمة تهمس بالحقيقة. فأسفل كل هذا الانسياب تكمن الفكرة القديمة نفسها: هذا الجزء كان خاطئًا، لذا أصلحنا هذا الجزء فقط.

الفرق بين patch وإعادة كتابة

ولهذا أيضًا لم تعنِ patch يومًا، على نحو كامل، “برمجيات جديدة”. فالـ patch أضيق من ذلك. إنها تفترض الاستمرارية. الشيء موجود أصلًا. وما يزال يعمل في معظمه. لكنه يحتاج فقط إلى إصلاح أو ضبط أو تدعيم.

وهذا الفرق مهم. فإعادة الكتابة تبدو جذرية. أما الـ patch فتبدو جراحية. الأولى توحي بإعادة اختراع. والثانية توحي بالصيانة. والبرمجيات، طوال معظم تاريخها، اعتمدت أقل على إعادة الاختراع الدرامية، وأكثر على الصيانة المستمرة، خللًا بعد خلل.

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

الكلمة التي ما تزال تحمل ماضيها العتادي

هناك كثير من مصطلحات الكمبيوتر التي بهتت أصولها تقريبًا بالكامل. فالناس “dial” الأرقام من دون هواتف دوارة. ويقومون بـ “hang up” من دون سماعات تُعلّق. لكن patch ما تزال تحمل أثرًا خافتًا من نسبها العتادي. ما تزال تبدو كإصلاح. وما تزال توحي بشيء عملي ومحلي ومرتجل قليلًا.

وهذا مناسب، لأن تاريخ البرمجيات ليس مجرد تاريخ اختراع. بل هو تاريخ تصحيح. البرامج تفشل. الافتراضات تنهار. الأخطاء تظهر. والمستخدمون يكتشفون حالات طرفية لم يتنبأ بها أي مصمم. الجزء اللامع هو إطلاق الشيء الجديد. أما الجزء الباقي فهو ترقيعه.

لذا حين تسمع أن شركة ما أصدرت patch، فالكلمة أقدم وأكثر حرفية مما تبدو عليه. إنها تعود إلى زمن كانت الشيفرة تُثقب فيه ثقوبًا، وكانت الأخطاء تُغطى أو تُقص، وكان إصلاح البرمجيات يعني أحيانًا تعديل الشيء الذي يحمل التعليمات تعديلًا ماديًا بالفعل.[1]

قد يحدث التحديث الآن في صمت. لكن الكلمة ما تزال تتذكر الشريط.

المصادر

1. Wikipedia - Patch (computing), History