"Programlamanın Sonu" programlamaya çok benzer
ACM'nin iletişiminde, Matt Welsh'in "Programlamanın Sonu" başlıklı yeni bir makalesi var. Geleneksel programların "programlanmak yerine eğitilen yapay zeka sistemleriyle değiştirileceğini" öne sürüyor ( vurgu orijinalde ). Welsh, "yazılım geliştirme ekiplerini desteklemek için yapay zeka yetenekleri geliştiren yeni kurulmuş bir girişim olan Fixie.ai'nin CEO'su ve kurucu ortağıdır".
Genel olarak bu geniş iddialara şüpheyle yaklaşıyorum. Her şeyden çok, insanların yapay zekayı (ve özellikle LLM'leri) yazılım geliştirmeye (veya başka herhangi bir sürece) entegre etmeyi hayal ettiklerinde, aşırı iyimser olma eğiliminde olduklarını düşünüyorum. Ama burada özellikle bir şeye odaklanmak istiyorum. Welsh, "hesaplamanın temel yapı taşlarının değişken, gizemli, uyarlanabilir aracılar olduğu bir dünyaya doğru hızla ilerliyoruz" diyor.
Bence bu en olası sonuç. Kullanıcıları ürünlerden uzaklaştıran özellikleri tanımlamanız gerekirse, "mizaçlı ve gizemli" sistem davranışı bu listede üst sıralarda yer alırdı (biz buna genellikle "kusurlu" deriz). Özellikle bu dünyada, ürünün arkasındaki insanlar muhtemelen "Ah, üzgünüm, bunu yapay zeka yaptı. Ona neyin düzeltilmesi gerektiğini açıklayıp açıklayamayacağımızı göreceğiz ve belki de doğru şeyi sorarsak düzeltilebilir”.
Genel olarak, AI'nın aldığı pek çok şeyin, AI'nın bir kişi için belirli bir görevin tüm sorumluluğunu üstlenebileceğini iddia ettiğini görüyorum ve dolaylı olarak kişinin görev için sorumluluğunun bir şekilde… buharlaşacağını varsayıyor? Yapay zeka yanlış anladıysa, bu senin hatan değil mi? Ancak, görevin doğru bir şekilde yerine getirildiğinden emin olmanın gerçek bir yolu yoksa, birkaç kez başarısız olduktan sonra muhtemelen bu görevi yerine getirecek başka birini bulacaklardır.
Yani, yazılımın hala kendisinden gerekeni yapmak zorunda olduğu bir dünyada, artık insan yazılım geliştiricilere ihtiyacımız olmasaydı nasıl görüneceğini hayal edelim. Bir insan, iş gereksinimlerini bir yapay zekaya dikte eden ve daha sonra yazılım oluşturan bir ürün yöneticisi olarak hareket ediyor. Ortaya çıkan yazılımın büyük ölçüde işlevsel olduğunu varsayalım (yani, düşük seviyeli hatalar içermez) — Bence bu daha çok uzak ve o zamana kadar nasıl görüneceği hakkında söylenecek çok şey var, ama bu ayrı bir konu tartışma.
Bir yazılım geliştiricisi olarak çalıştıysanız, iş gereksinimlerinin genellikle muğlak bir dille yazılmış belirsiz, kötü tanımlanmış, hatta çelişkili fikirler olarak geldiğini bilirsiniz. Yalnızca yapay zekaya yönelik bu yazılım geliştirmeyle ilgili birincil soru, ürün yöneticisinin yazılımdan yapmasını istediği şeyi uygulayan yazılımı nasıl yapacak?
Birbirini dışlamayan iki genel yön olduğunu düşünüyorum.
Birincisi, yapay zekanın ürün yöneticisine her bir seçim ve belirsizlik hakkında soru sorması gerektiğidir. Bunu yapmak zorundadır çünkü seçimlerin ve belirsizliğin ne olduğunu bilecek kadar iyidir, ancak doğru cevabı tutarlı bir şekilde tahmin edecek kadar iyi değildir. Bu ileri geri basit bir dille başlayacak ve ürün yöneticisi için çok zaman alacaktır. Zamanla, yapay zeka tasarımcıları, girdi gereksinimlerinin belirli bir şekilde çerçevelendiğinde belirli şeyler ifade etmesine izin veren kısayollar sunmaya başlayacak, böylece ürün yöneticisi seçimini en baştan netleştirebilecek. Böylece, sistem davranışını resmi garantilerle ifade etmek için bir yöntemimiz var. Yani yeni bir programlama dili icat ettik. Bu noktada ürün yöneticisi artık bir yazılım geliştiricidir.
Diğeri ise, yapay zekanın seçeneklere ve gereksinimlerdeki belirsizliğe doğru yanıtı tutarlı bir şekilde doğru tahmin edecek kadar iyi olması ve kendine güveni olmadığında doğru tahmin edebileceğini bilecek kadar iyi olmasıdır. Bunu yapmak için muazzam miktarda insan kültürel bilgisi ve muhtemelen ürün yöneticisi olarak hareket eden belirli bir kişi hakkında yüksek derecede bilgi gerekir. Yapay zeka, iş gereksinimlerini resmi sistem davranış gereksinimlerine çevirme ve bunları uygulama işini yapıyor. Bu noktada, AI artık bir yazılım geliştiricisidir.
Hâlâ resmi bir dil olmadan çalıştığınız için, ikincisinin Galce'nin “programlamanın sonu” vizyonuyla aynı olduğunu iddia edebilirsiniz. Farklı olduğunu söylüyorum, çünkü yazılım geliştiriciler (birlikte çalışmayı sevdikleriniz) kadar "mizaçlı ve gizemli" değil - güvenilir ve tutarlı.
Bence ikinci yön olan yazılım geliştirici olarak yapay zeka oldukça uzak, çünkü özellikle kültürel bağlam ve öz farkındalık zor şeyler. Bunu elde etmek için AGI'ye ihtiyacınız olduğundan şüpheliyim, ancak orada yolun iyi bir parçası olacak gibi görünüyor. Dolayısıyla, AGI konusunda iyimserseniz, bunu daha sonra değil, daha erken elde edeceğimizi umabilirsiniz.
Açıkça alınan ilk yönü görmeyi çok isterim. GitHub Copilot (ve benzer sistemler) ile ilgili sorunlarımdan biri, ortaya çıkan kodun hâlâ size ait olması ve ürettiği kodun doğruluğuna sahip olmanıza rağmen, size doğru bir uygulama sağladığına dair güven kazanmanın herhangi bir yolunu sağlamamasıdır. (bu aynı zamanda kendi makalesini de garanti ediyor sanırım). Ortak kalıpları tanımlamasını ve geliştiricilerin bu karmaşık mantığı ifade etmek ve beklediklerini elde ettiklerine güvenmek için biraz kestirme kullanabilecekleri şekilde resmileştirmesini çok isterim. Belki bu, mevcut sistemle yapılabilir veya belki de tamamen yeni bir Yardımcı Pilot odaklı programlama dilidir.
Sanırım buradaki ana çıkarım, AI'nın bazı süreçleri otomatikleştireceği iddialarına bakarken, bu sürecin gerçekten zor, doğal karmaşıklığının ne olduğuna ve büyük ölçüde (yeni) bu karmaşıklığa belirsizlik enjekte edildi. Yazılım geliştirme için cevabın hayır olduğunu düşünüyorum. Bu, yapay zekanın başarılı olmayacağı anlamına gelmez, sadece otomasyonun bunda neyin ve nasıl (ve ne zaman) rol oynayacağını hassaslaştırmak için daha derine bakmamız gerektiği anlamına gelir.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































