البرمجة بالإيقاع
ما هي البرمجة بالإيقاع؟
البرمجة بالإيقاع هي أسلوب برمجة مدعوم بالذكاء الاصطناعي قدّمه أندريه كارباثي في 2024/2025. مع البرمجة بالإيقاع، تصف ما تريده باستخدام تعليمات بلغة طبيعية، وعادةً ما تقوم نماذج اللغة الكبيرة (LLMs) بتوليد معظم، وأحيانًا كل، الشفرة العاملة نيابةً عنك. إذا كان لديك الوقت، فاطّلع على فن البرمجة بالإيقاع الذي اقتبسه ريك روبن لتتعرف أكثر على طريقة البرمجة بالإيقاع.
إحدى المزايا الكبيرة لهذا الأسلوب الجديد هي سهولة الوصول، إذ يمكن للأشخاص الذين ليست لديهم خبرة في البرمجة بناء المشاريع، بينما يمكن للمطورين ذوي الخبرة إنشاء نماذج أولية لأفكار جديدة بسرعة قبل الالتزام الكامل بها. وهذا مفيد بشكل خاص للشركات الناشئة. أما العيب فهو أن المطورين على الأرجح لن يفهموا بالكامل كيف تعمل الشفرة المولدة. بالنسبة للمشاريع الجانبية الصغيرة، فهذا مقبول، لكن بالنسبة للبرمجيات على مستوى الإنتاج قد يؤدي ذلك إلى مشكلات طويلة الأمد وديْن تقني.
هناك الكثير من الأدوات التي تجعل البرمجة بالإيقاع أكثر سلاسة. Cursor IDE، وClaude Code CLI، وGitHub Copilot، وLoveable، وReplit، وv0، وغيرها تتيح لك العمل مع الذكاء الاصطناعي مباشرةً في بيئتك أو توفر واجهات مخصصة للبرمجة بالإيقاع. شخصيًا، التزمت في الغالب باستخدام Cursor IDE وClaude Code CLI في هذه المشاريع.
لكن إليك الأمر. هذه الأدوات والنماذج تكلف مالًا. مع البرمجة التقليدية، فأنت في الغالب تدفع بوقتك. مع البرمجة بالإيقاع، فأنت تدفع بمحفظتك. وإذا كنت لا تعرف ما الذي تفعله، فأنت تدفع بمحفظتك وبوقتك معًا. تكلف كل واحد من المشاريع في هذه الصفحة حوالي $10 إلى $20 لبنائه. وهذا يتراكم إذا كنت تجرّب كثيرًا. أعتقد أنه مع تحسن هذه النماذج وزيادة كفاءتها، ستنخفض التكلفة في النهاية. أما الآن، فهذا شيء يستحق التفكير فيه عند تحديد ما إذا كانت البرمجة بالإيقاع مناسبة لمشروعك.
وبدافع الفضول حول ما هو ممكن، جرّبت البرمجة بالإيقاع بنفسي وصنعت هذه الصفحة لاستكشاف المبدأ نفسه من خلال مشاريع فعلية. أنا لا أبني منتجات فحسب، بل أختبر وأعرض ما الذي تستطيع البرمجة بالإيقاع فعله حقًا. هذا فقط للمتعة، لكنه يقدّم لمحة عن الشكل الذي قد تبدو عليه البرمجة في المستقبل مع استمرار تحسن هذه النماذج.
مبرهنة القردة اللانهائية
هل سمعت يومًا عن مبرهنة القردة اللانهائية؟ إنها تجربة فكرية فلسفية تقول إنه إذا أعطيت عددًا لا نهائيًا من القردة آلات كاتبة لا نهائية ووقتًا لا نهائيًا، فسيُنتج أحدها في النهاية الأعمال الكاملة لـشكسبير بمجرد النقر العشوائي على الأزرار.
يبدو هذا سخيفًا، أليس كذلك؟ لكن إليك الجزء المدهش. البرمجة بالإيقاع تشبه ذلك إلى حد ما، باستثناء أننا بدلًا من القردة لدينا نماذج ذكاء اصطناعي، وبدلًا من الآلات الكاتبة لدينا لغات برمجة، وبدلًا من شكسبير نحصل على برمجيات عاملة.
فكّر في الأمر. تُدرَّب نماذج اللغة الكبيرة على مليارات الأسطر من الشفرة والأنماط والأمثلة. عندما تعطي LLM تعليمات، فإنه لا “يفكر” فعليًا في مشكلتك خطوة بخطوة كما يفعل المطور البشري. بدلًا من ذلك، يتنبأ بالرمز التالي الأكثر احتمالًا بناءً على الأنماط التي تعلّمها أثناء التدريب. إنه في الأساس يقدم تخمينات مستندة إلى المعرفة من خلال توليد الشفرة بناءً على ما يبدو صحيحًا إحصائيًا.
وبطريقة ما، في معظم الأحيان، ينجح الأمر. يُخرج النموذج شفرة تُترجم فعلًا، وتعمل، وتحل مشكلتك. ليس من خلال الفهم، بل من خلال مطابقة الأنماط الاحتمالية على نطاق هائل جدًا. الأمر أشبه بأن أكثر مولد نصوص عشوائي تطورًا في العالم قد وجد “الإجابة” الصحيحة. لكن هنا يكمن الفرق في السرعة. تلك القردة ستحتاج إلى ما لا نهاية حرفيًا. أما الذكاء الاصطناعي لديك؟ فيصل إلى هناك في ثوانٍ أو دقائق.
لذا، بطريقة ما، عندما تستخدم البرمجة بالإيقاع، فأنت تسخّر ملايين الأسطر من أنماط الشفرة، المقطرة داخل نموذج، لتوليد الحلول. ليس حلًا واعيًا للمشكلات، بل سحر إحصائي. وهذا تحديدًا ما يجعلها قوية جدًا، ولماذا، بصراحة، لا يزال فهم ما تفعله الشفرة فعليًا أمرًا مهمًا.
السؤال أهم من الإجابة
إليك شيئًا مهمًا غالبًا ما يتم تجاهله. البرمجة بالإيقاع لا تتعلق بالحصول على أي إجابة، بل بطرح السؤال الصحيح. فكر في الحاسوب العملاق ديب ثوت من دليل المسافر إلى المجرة. لقد أمضى ملايين السنين يحسب الإجابة عن السؤال النهائي للحياة والكون وكل شيء، ليعطيك في النهاية الرقم 42. كانت الإجابة صحيحة تقنيًا، لكنها عديمة الفائدة لأن المشكلة الحقيقية كانت هي معرفة السؤال الذي ينبغي طرحه من الأساس.
تعمل البرمجة بالإيقاع بالطريقة نفسها. تعليماتك هي كل شيء، لكن إدارة السياق مهمة أيضًا. ستعطيك التعليمات الغامضة شفرة غامضة، وإذا لم توفّر الملفات أو الوثائق أو الأمثلة الصحيحة كسياق، فلن يفهم النموذج ما تحتاجه فعلًا. إذا كنت ممن يفهمون البرمجة والبنية المعمارية وتصميم الأنظمة، يمكنك صياغة تعليمات تفصيلية واختيار السياق المناسب لتوجيه LLM نحو حلول ممتازة. لكن إذا كنت لا تعرف ماذا تطلب أو أي سياق تقدمه، فلن يعرف الذكاء الاصطناعي أيضًا.
وهذا في الواقع هو سبب قوة البرمجة بالإيقاع بالنسبة للمطورين ذوي الخبرة. نحن نعرف شكل الشفرة الجيدة، وندرك المزالق، ويمكننا كتابة تعليمات توجه النموذج بعيدًا عنها. أما للمبتدئين الذين لا يملكون خلفية تقنية، فهذه تصبح محدودية حقيقية. قد تحصل على شفرة تعمل، لكن من دون فهم ما الخطأ الذي حدث أو ما الذي ينبغي طلبه بعد ذلك، ستظل عالقًا.
عندما لا تكفي البرمجة بالإيقاع
النماذج الأحدث للذكاء الاصطناعي مثيرة للإعجاب، لكنها ليست حلًا سحريًا. يمكن للبرمجة بالإيقاع أن تعمل في الإنتاج، لكن فقط إذا كنت جادًا بشأنها. أنت بحاجة إلى اختبارات وحدات قوية. وتحتاج إلى مصادر حقيقة واضحة لما يجب أن يفعله نظامك. وتحتاج إلى اكتشاف متى تنكسر الأمور أو تنحرف. وتحتاج إلى عقلية المخترق. فكر خارج الصندوق وحاول كسر مشروعك الذي بُرمِج بالإيقاع بطرق غير متوقعة. ما الحالات الطرفية التي لم تأخذها في الاعتبار؟ ما الثغرات الأمنية التي يمكن أن يستغلها أحدهم؟ هذا ما يفصل الشفرة التي تعمل فقط عن الشفرة المتينة فعلًا.
لكن إليك الأمر. الذكاء الاصطناعي لا يملكك. أنت من يملك الذكاء الاصطناعي. لا تقبل فقط ما يولده. راجعه. اختبره. اكسره. وبصراحة، بالنسبة لبعض أجزاء قاعدة الشفرة لديك، ستحتاج إلى العودة إلى البرمجة التقليدية. ركّز، فكّر بعمق، واكتبها بنفسك. البرمجة بالإيقاع تسرّع الأمور، لكنها ليست بديلًا عن البرمجة الحقيقية عندما يكون الأمر مهمًا.
وهناك أمر آخر تعلمته. أحيانًا تحتاج فقط إلى إنهاء جلسة مع الذكاء الاصطناعي وبدء جلسة جديدة. مع ازدياد طول سجل المحادثة أكثر فأكثر، يتدهور أداء النموذج. يرتكب أخطاء أكثر، ويولد شفرة أقل تماسكًا، ويبدأ بالهلوسة بشكل أكثر تكرارًا. إذا لم تلتقط هذا الأمر وتتوقف، فإن هذه الأخطاء تتراكم فوق بعضها، مما يجعل الأمور أسوأ تدريجيًا. الأمر أشبه بمحاولة قراءة مستند تم تصويره مرارًا وتكرارًا. البدء من جديد يحافظ على الأمور نظيفة وحادة.
مشاريع بُرمجَت بالإيقاع
فيما يلي مشروعان، stairs (المستودع) وtranscendental (المستودع)، قمت ببنائهما باستخدام منهجية البرمجة بالإيقاع. تم توليدهما في الغالب من التعليمات، مع قصر العمل اليدوي على توفير السياق، وتصحيح الأخطاء، والنشر على GitLab Pages. إنهما تجربتان ممتعتان لموقع ثابت تعرضان ما هو ممكن عندما تجمع الأفكار الإبداعية مع الشفرة عبر البرمجة بالإيقاع. كلاهما مستضاف على GitLab.