GitHub COO’su Kyle Daigle, daha önceki bir röportajında ”İlk denemelerimizde Python, JavaScript ve bunun gibi dillerde çok fazla iş yapıyorduk” dedi. Bilgisayar Dünyası. “GitHub esasen bir Ruby şirketi ama aynı zamanda Go, C ve FirGit’te de yazıyoruz. Böylece Copilot’un kullanım alanlarını genişletiyor ve onu farklı dillerde kullanıyorduk. Ancak genel olarak, Copilot kamusal alandaki dillerin büyük çoğunluğu üzerinde çalışabiliyor.”
Doğal dil işlemeye dayalı kullanıcı istemlerinden başka hiçbir şeye dayanmayan genAI destekli kod oluşturucular, parçacıklardan tam işlevlere kadar çeşitli yazılım kodu önerileri sunabiliyor. Güncellemeler araçları daha da iyi hale getirebilir.
Örneğin Amazon, CodeWhisperer aracında yapılan güncellemelerin, kod kabul oranlarını tüm dillerde ve kullanım durumlarında ortalama %20’den %35’e çıkardığını söyledi.
Amazon CodeWhisperer genel müdürü ve yazılım geliştirme direktörü Doug Seven, “Artık Amazon Q’nun CodeWhisperer’a dahil edilmesiyle, geliştiriciler kodları hakkında soru sorabilir ve hataları bulmak, üzerinde çalıştıkları kodu optimize etmek ve çevirmek için Amazon Q’nun yeteneklerinden yararlanabilirler” dedi. Amazon Q için bir blogda söylendi.
Yapay zeka destekli kodlama neden bu kadar güçlü?
Yapay zeka destekli kodlamanın müjdelenen yönlerinden biri, kullanıcıların yazılım geliştirme konusunda bilgili olmalarına gerek olmamasıdır. Doğal dil işleme, iş kullanıcılarının bile basit bir komut istemi yazmasına ve herhangi bir sayıda proje için ihtiyaç duyulan yazılımı geri almasına olanak tanır.
Örneğin, kullanıcılar, “Sunucu tarafı şifrelemeli bir dosya yükleyin” gibi belirli bir görevi İngilizce olarak özetleyen doğal dilde bir yorum yazabilirler. Bir Amazon sözcüsüne göre CodeWhisperer, bu bilgilere dayanarak görevi gerçekleştirmek için doğrudan geliştirme platformunda bir veya daha fazla kod parçacığını öneriyor.
Kodlama araçlarının çoğu aynı zamanda gelişmiş kod güvenliği özellikleri taramaları ve kod düzeltme önerileriyle birlikte gelir. Hatta bazıları, bir kod önerisinin açık kaynak eğitim verilerine benzer olup olmadığını tespit eden “önyargı” filtreleme ve referans izleyicileriyle birlikte gelir. İkincisi, AI tabanlı bir kodlama asistanının önemli özellikleridir.
Amazon ve diğer sağlayıcılar geliştirici olmayanların iş amaçlı uygulamalar üretmesine yardımcı olacak araçlarla da denemeler yapıyorlar. Örneğin Amazon, adlı bir aracı test ediyor ve prototipini oluşturmaya çalışıyor. Sıkı parti, harbi parti Bu, geliştirici olmayanların korumalı alan ortamında genAI ve LLM’lerle çalışmasına olanak tanır.
Seven, “Farklı uygulamalar oluşturmayı deneyebilirsiniz” dedi. Bilgisayar Dünyası. “Üretken A’yı kullanacak, farklı kişiler için farklı araçlarda bir artış göreceğiz. Sanırım genAI’yi farklı yerlerde göreceğimiz yerin sadece yüzeyini kazıyoruz. Bu araçları giderek daha fazla görmeye başlayacağız.”
Doğruluk oranları çeşitli
Seven, CodeWhisperer için kod kabul oranlarının %30 ila %40 civarında olduğunu ancak bunun, yazdığı kodun yanlış olduğu veya hatalı olduğu anlamına gelmediğini söyledi. Kabul oranı, genAI aracının geliştiricinin kendisinden yapmasını istediği şeyi doğru şekilde yorumlayıp yorumlamadığını ifade eder.
Seven, bir geliştirici ile yapay zeka kod oluşturucu arasındaki konuşmaya benzer bir şeyi anlattı; burada geliştirici ondan bir şey üretmesini ister ve ardından isteği takip istekleriyle değiştirir. CodeWhisperer’ın hatasız, kullanılabilir kod üretme yeteneği “oldukça yüksek” olsa da Seven, Amazon’un dahili ölçümleri açıklamadığını söyledi.
Anekdot olarak, geliştiriciler ve BT liderleri, popüler yapay zeka tabanlı kod geliştirme araçlarının %50 ila %80 arasında herhangi bir yerde doğru şekilde kullanılabilir kod oluşturma yeteneğini yerleştirdiler.
“Bunu bir hipotez olarak ortaya koyduk. Dijital dönüşüm hizmet sağlayıcısının CEO’su Derek Holt, “Artık bunu gerçek çalışmalarda görmeye başlıyoruz” dedi. Dijital.ai.
Buna göre Cornell Üniversitesi’nin geçen yıl yaptığı bir araştırmaÇeşitli genAI kodlama araçları arasında büyük farklılıklar vardır. Çalışma, ChatGPT, GitHub Copilot ve Amazon CodeWhisperer’ın sırasıyla %65,2, %64,3 ve %38,1 oranında doğru kod ürettiğini gösterdi.
Makalenin baş yazarı ve UCLA Henry Samueli Mühendislik Okulu’nda lisansüstü öğrenci araştırmacısı olan Burak Yetiştiren’e göre, çalışma bir yıllık olmasına rağmen, yapay zeka destekli kod araçlarının doğruluk oranları bugün “aşağı yukarı aynı”. Uygulamalı bilim.
A GitClear tarafından yapılan çalışmaGitHub ve GitLab için kod analizi ve git istatistikleri sağlayan bir geliştirici aracı olan 2020’den 2023’e kadar 153 milyondan fazla kod satırını inceledi. Kod kaybı, çoğaltma ve eskimedeki önemli değişiklikleri vurgulayarak GitHub gibi yapay zeka araçlarının etkisini araştırdı. Programlama uygulamaları üzerine yardımcı pilot.
GitClear’ın bulguları arasında geliştiricilerin Copilot kullanırken %55 daha hızlı kod yazdığı da yer aldı. GitClear, GitHub’un kod kalitesini ve sürdürülebilirliğini bir insan tarafından yazılanlarla karşılaştırdığında, daha az deneyimli geliştiricilerin, deneyimli geliştiricilere kıyasla yapay zeka destekli programlama konusunda daha büyük bir avantaja sahip olduğunu buldu.
Araştırmaya göre GitHub’un kendi verileri, genç geliştiricilerin Copilot’u daha deneyimli geliştiricilere göre yaklaşık %20 daha fazla kullandığını gösteriyor.
GitClear, 500 geliştiricinin katılımıyla ilgili bir anket gerçekleştirdi ve şu soruyu sordu: “Yapay zekayı aktif olarak kullanırken hangi ölçütlere göre değerlendirilmelisiniz?” Belirledikleri ilk üç sorun kod kalitesi, görevi tamamlama süresi ve üretim olaylarının sayısıydı.
GitClear’ın makalesinde, “Geliştiriciler kısa vadede işe yarayacak hızlı ve kolay önerilerle boğulduğunda, mevcut bir sistemin yeniden kullanım için iyileştirilip iyileştirilemeyeceğini gerçekten kontrol etmeden daha fazla kod satırı eklemek sürekli bir cazibeye dönüşüyor” dedi.
Daha fazla kod ama daha fazla hata mı?
Digital.ai’den Holt’a göre geliştiriciler otomasyon araçlarıyla %45 daha fazla kod üretiyor, ancak bu mutlaka iyi bir şey değil.
CodeScene’in kurucusu ve CTO’su Adam Tornhill, X/’da şunları söyledi: “Yapay zeka destekli programlamanın asıl zorluğu, ilk etapta yazılmaması gereken çok sayıda kod üretmenin çok kolay hale gelmesidir.” Twitter’da.
Başka bir kırışıklık da, kodun insanlar tarafından üretilmemesi durumunda daha opak olmasıdır. Sonuç olarak, kodun hatalara ve güvenlik açıklarına karşı etkili bir şekilde test edilip edilemeyeceğine ilişkin sorular da dahil olmak üzere kalite sorunları ortaya çıkıyor.
İçinde yazılım mühendisleri arasında bir anket Geçen yıl (%96’sı yapay zeka tabanlı kodlama araçlarını kullananların) geliştirici güvenlik platformu Snyk tarafından yapılan bir araştırmada, yarıdan fazlası güvenli olmayan yapay zeka kod önerilerinin yaygın olduğunu söyledi.
Holt, “Bu bizi şaşırtmamalı” dedi. “Daha ilk günler ve bu modelleri belirli depolardaki tüm kodlar üzerinde eğitiyoruz. Yapacağınız tek şey, o orijinal kodu yazan geliştiricilerin yaptığı hataları tekrarlamak olacaktır.”
Holt, geliştiricinin zamanının çoğunun yeni özellikler yazmak yerine mevcut kodu düzeltmek için harcandığı göz önüne alındığında, kodu okuma ve insanlar tarafından yazılmayan sorunları bulma becerisinin başka bir sorun haline geldiğini söyledi.
Bu sorunlara rağmen geliştiriciler, kod üretme yeteneklerini hızlandırdığına inanmasalardı Copilot gibi araçları benimsemezlerdi. GitHub’ın önceki noktaya ilişkin araştırması, “geliştiricilerin Copilot kullanırken %75 daha fazla tatmin olduklarını” ortaya çıkardı.
Altı ay boyunca Copilot kullanan 450 Accenture geliştiricisi üzerinde yapılan bir araştırmada, Microsoft Silver’a göre önerilen kodun %88’i korundu, derleme başarı oranı %45 arttı ve ankete katılan her geliştirici Copilot’un yararlı olduğunu bildirdi.
Kodu değiştirme, taşıma ve kopyala/yapıştır sorunları
GitClear, ancak yapay zeka destekli programlamanın kullanımının artmasıyla birlikte “Churn”, “Taşındı” ve “Kopyala/Yapıştır” kodlarının miktarının da önemli ölçüde arttığını buldu.
“Churn”, depoya gönderilen, ardından iki hafta içinde geri alınan, kaldırılan veya güncellenen kodun yüzdesidir. Geliştiricilerin kendi kodlarının tamamını yazmaları nispeten nadirdi; 2023’ten önce kodun yalnızca %3 ila %4’ü kaldırıldı.
Ancak genel kod kaybı, Copilot’un beta olarak kullanıma sunulduğu ilk yıl, yani ChatGPT’nin kullanıma sunulduğu yıl, %9 arttı.
2022’den 2023’e kadar yapay zeka asistanlarının yükselişi, “hata kodunun” depoya aktarılmasıyla güçlü bir şekilde ilişkiliydi. GitClear, yardımcı pilot yaygınlığının (kod oluşturmada kullanımı) 2021’de %0, 2022’de %5 ila %10 ve 2023’te %30 olduğunu buldu.
GitClear’ın raporunda, “Mevcut model 2024’te de devam ederse, tüm kod değişikliklerinin %7’sinden fazlası iki hafta içinde geri alınacak, bu da 2021’deki oranın iki katı” dedi.
Belki de uzun vadeli kod bakımı açısından kopyala/yapıştır koddan daha büyük bir bela yoktur. Bunun nedeni, yeniden kullanılan kodun aynı zamanda önceki hataları, güvenlik açıklarını veya diğer sorunları da içerebilmesidir.
Holt, “Sorunları çözebileceğimize ve modelleri yalnızca en iyi geliştiricilerimiz tarafından oluşturulan küçük miktarlardaki kodlarla eğitebileceğimize hiç şüphem yok” dedi. “Fakat şu anda kıdemsiz bir geliştirici alıyorsunuz ve bunun daha geniş yazılım geliştirme yaşam döngüsü açısından ne anlama geldiğine dikkat etmiyorsanız bazı risklerle karşı karşıya kalacaksınız.”
Amazon Seven, CodeWhisperer’ın güçlü yönlerinden birinin olduğunu savundu ve diğer ürünlerin en önemli özelliği, mevcut kodda hatalar olup olmadığını inceleme ve ardından değişiklik önerme yeteneğidir. Seven, “Yani aslında size bu değişikliği yapacak kodu verecek” dedi. “Amazon Q kullanmanın avantajı [CodeWhisperer] Bu bağlamda bir geliştirici olarak hata ayıklama arkadaşınız var.”
Bu, “geliştiricilerin aşina olmayabileceği mevcut koddaki tutarsızlıkların kontrol edilmesinde özellikle yararlı olabilir.” Ve Q bu konuda gerçekten çok iyi” dedi.
Otomatik araçların bir diğer avantajı da, geliştiricinin veya mühendisin basitçe bir görevi açıkladığı ve ardından araçların bunu bağımsız olarak tamamladığı (yeni bir uygulama geliştirirken veya mevcut bir uygulamada hata ayıklama yaparken) kur ve unut modunda kullanılabilmesidir. Seven, “Her iki durumda da kodun doğruluğu ve kalitesi gerçekten oldukça yüksek” dedi.
Yazılım oluşturma araçlarının zaman içinde gelişmeye devam edeceği şüphe götürmez bir gerçektir. — yine de döngüde her zaman bir insana ihtiyaç olacaktır.
Holt, “İçimden bir ses bana geliştiriciler için her zaman roller olacağını söylüyor; ister inceleme, ister kataloglama, ister her ikisinin karışımı olsun,” dedi. “Kod teslim etmenin hedef olmadığı gerçeğinden bahsetmiyoruz bile. …Müşterilerin sevdiği harika özellikleri sunmak asıl hedeftir.
“Yani benim görüşüme göre yazılım geliştirme alanında önümde hala uzun bir kariyer var.”