كيف تجعل أدوات المطورين في جوجل البرمجة بالذكاء الاصطناعي فعالة

كيف تجعل أدوات المطورين في جوجل البرمجة بالذكاء الاصطناعي فعالة
بصفته مدير مشروع أدوات المطورين في جوجل، يمتلك رايان سالفا مقعدًا في الصف الأول لرؤية كيف تغير أدوات الذكاء الاصطناعي البرمجة. سابقًا في GitHub ومايكروسوفت، هو الآن مسؤول عن أدوات مثل Gemini CLI وGemini Code Assist، مما يدفع المطورين نحو عالم جديد من البرمجة الوكيلة.
أصدر فريقه بحثًا جديدًا عن كيفية استخدام المطورين لأدوات الذكاء الاصطناعي – ومدى التقدم المتبقي لتحقيق الأهداف. جلست مع سالفا للحديث عن التقرير وتجربته الشخصية مع أدوات البرمجة بالذكاء الاصطناعي.
تم تحرير هذه المقابلة لتكون مختصرة وواضحة.
توجهات المطورين في استخدام أدوات الذكاء الاصطناعي
كل عام، تقوم جوجل بإجراء مسح حول توجهات المطورين – لكن تقرير هذا العام يركز حقًا على أدوات الذكاء الاصطناعي، وبشكل خاص كيف أن المطورين الوكلاء مستعدون لتبني أساليب جديدة في البرمجة. هل كان هناك شيء في البحث فاجأك؟
كانت واحدة من النتائج المثيرة للاهتمام هي التاريخ الوسيط الذي بدأ فيه المطورون استخدام أدوات الذكاء الاصطناعي. وجدوا أنه كان في أبريل 2024، وهو ما يتماشى بشكل جيد مع إصدار Claude 3 وGemini 2.5. هذا هو حقًا فجر نماذج التفكير، وحول نفس الوقت، أصبحنا أفضل بكثير في استدعاء الأدوات.
بالنسبة لمهام البرمجة، تحتاج حقًا إلى الاستفادة من المعلومات الخارجية لحل المشكلات، لذا قد تحتاج إلى grep، أو قد تحتاج إلى تجميع الكود. إذا تم تجميع الكود، فقد ترغب في تشغيل اختبار الوحدة، واختبار التكامل. أعتقد أن استدعاء الأدوات هو الجزء المهم الذي منح النماذج القدرة على التصحيح الذاتي أثناء تقدمها.
كيف تستخدم أدوات البرمجة بالذكاء الاصطناعي شخصيًا؟
معظم برمجتي هذه الأيام تتعلق بمشاريع هواية، وأقضي معظم وقتي في استخدام أدوات قائمة على سطر الأوامر. لذا يشمل ذلك Gemini CLI. ثم هناك القليل من Claude Code، والقليل من Codex. ولا تستخدم أبدًا أداة قائمة على الطرفية بمفردها، لذا فأنا حقًا متنوع في IDEs التي أستخدمها. أستخدم Zed وVS Code وCursor وWindsurf، جميعها، لأنني مهتم فقط برؤية كيف يعمل العالم وكيف تتطور الصناعة.
على الجانب المهني، يميل مديرو المنتجات إلى العيش في الوثائق، لذا فإن أول شيء هو استخدام الذكاء الاصطناعي لمساعدتي في كتابة مواصفات الوثائق ومتطلبات المشروع.
أنا فضولي حول كيف يعمل ذلك. أنت تستخدم Gemini CLI لبناء Gemini CLI، لكنني أتصور أنه لا يعمل بمفرده.
تبدأ مهمة التطوير عادةً كقضية، ربما تكون قضية GitHub ألقاها شخص ما مع خطأ. غالبًا، إذا كنت صريحًا، فهي قضية غير محددة بشكل جيد. لذا سأستخدم Gemini CLI لإنشاء وثيقة متطلبات أكثر قوة بتنسيق Markdown. عادةً ما ستنتج حوالي 100 سطر من المواصفات الفنية، ولكن أيضًا مدفوعة بالنتائج. ثم سأستخدم Gemini CLI لكتابة الكود بناءً على تلك المواصفات والتفضيلات العامة في وثائق الفريق.
عبر فريق الهندسة، لدينا عدة طبقات من القواعد ووثائق Markdown التي يتم استهلاكها بواسطة النموذج، توضح طريقة عملنا: إليك كيف نجري الاختبارات، إليك كيف ندير الاعتماديات، وهكذا. لذا عندما ينتج الكود، فإنه يعمل أيضًا من تلك الوثائق.
بينما يقوم Gemini CLI بإجراء عملية التصحيح، سأطلب منه تحديث وثيقة المتطلبات الخاصة بي قائلًا: “لقد أصلحت هذه الخطوة. الآن أنا في الخطوة التالية”، وهكذا. كل واحدة من تلك العمليات تنشئ التزامًا خاصًا بها وطلب سحب في المستودع، لذا يمكنني دائمًا التراجع أو التراجع.
سأقول إن حوالي 70% إلى 80% من عملي هو أن أعمل في الطرفية باستخدام اللغة الطبيعية، محاولًا استخدام Gemini CLI لصياغة المتطلبات، ثم السماح لـ Gemini CLI بكتابة معظم الكود لي، والذي سأقوم بمراجعته وقراءته باستخدام أي IDE أستخدمه. لكن في الغالب أستخدم IDE كمكان لقراءة الكود، بدلاً من كتابة الكود.
هل تعتقد أن هناك مستقبلًا للكود البرمجي الخام؟ أم سننتقل بكل شيء إلى نوافذ الطرفية؟
على مدار ثلاثة عقود، كانت IDE هي المكان الذي ذهبنا إليه للقيام بكل شيء في تطوير البرمجيات. كان لديك IDE، وكان لديك المتصفح، وكان لديك نافذة الطرفية.
أعتقد أن هذا لا يزال إلى حد كبير هو الحال، لكنني أشتبه في أنه مع مرور الوقت سنقضي وقتًا أطول بكثير في العمل على المتطلبات، وسيتقلص الوقت الذي نقضيه في IDE تدريجيًا. وأعتقد أن هذا التغيير قد يحدث بالفعل على مدى فترة زمنية طويلة.
ماذا يعني ذلك لمستقبل تطوير البرمجيات؟
هناك الكثير من القلق حول ما يعنيه ذلك لتطوير البرمجيات كعملية. إذا بعد 10 سنوات، لم نعد ننظر إلى الكود، ماذا يعني ذلك للمطورين؟ هل سيكون هناك عمل لهم؟
أعتقد أن وظيفتك كمطور ستبدو أكثر مثل مهندس معماري. سيكون الأمر يتعلق بأخذ المشاكل الكبيرة والمعقدة وتفكيكها إلى مهام أصغر يمكن حلها. ستحتاج إلى التفكير في الصورة الأكبر حول ما تحاول إنتاجه، بدلاً من اللغة الوسيطة للتعبير عن ذلك في كود الآلة.