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