Yazılımda AI Slop Nedir? Kaliteli ve Kalitesiz Kod Ne Anlama Gelir?

Son birkaç senede yazılım sektörü tam anlamıyla radikal bir değişime uğradı. Yapay zeka ile gelen bu değişim bir çok kişiyi işinden etti. Yapay zekanın gelmesi ve gelişmesi ile birlikte artık yazılım şirketleri eskiden ihtiyaç duyduğu kalabalık takımlardan küçük ama yetkin, senior ünvanına sahip olan yazılımcıları tercih ediyor. Değişime ayak uyduramayan yazılımcılar ise işlerinde geride kalıyor, yapay zekanın hızına yetişemiyor. Peki bu son zamanlarda ortaya çıkan AI slop terimi nedir? Nasıl oluşmuştur?
AI slop terimi yapay zekanın verimli kullanılamamasından kaynaklanan, kaynak kodlarında DRY kuralına uymayan kalitesiz ve sürekli kendini tekrar eden kodlar bütününü temsil etmek için söylenen bir terimdir. Aslında bu şekilde daha çok yazılımsal alanda bunu tanımlamaya çalıştım, normalde AI ile üretilen her şeye AI slop denebilmektedir. Bir websitesini ziyaret ettiğinizde anlamsız görünen, kullanıcı deneyimini hiçbir şekilde iyileştirmeyen bir arayüz ile karşılaştığınızda hemen o websitesinin yapay zeka ile üretildiğini görebilirsiniz. Aşağıda son zamanlarda ziyaret ettiğim birkaç websitesinin ekran görüntüsünü paylaşıyorum:


Pek aşina olmayanlarınız için yukarıdaki web siteleri size yapay zeka ile yapılmış gibi durmayabilir. Hatta ilk paylaştığım örnek üzerinde baya bir çalışılmışa da benziyor.
Birkaç sene önce bu websitelerinin tek kişi tarafından yapıldığını söylesem belki geliştiricinin bir iki haftasını alır derdik. İşte tasarımı olacak sitenin, renk seçimi, font seçimi falan derken Adobe XD veya Figma üzerinden tasarım çalışması yapılır daha sonra ise geliştirilmeye başlanır, yazılımcının sahip olduğu bilgi birikimine göre bir frontend kütüphanesi veya framework'ü kullanılır ve yazılmaya başlanır. Bu dediğim iş akışını yapay zeka ile beraber tek güne indirip MVP oluşturmak artık mümkün hale geldi. Bir kişinin birkaç haftada yapabileceği bir işi, yapay zeka teknolojisi ile beraber 1 güne indirebilmiş durumdayız.
Durum bu şekilde olduğundan artık sektörde değişmeye başladı. İş verenler layoff dediğimiz çalışan çıkartmalara başladı. Çekirdek bir ekibi elde tutup diğer geliştiricileri atmaya başladılar. Kaliteli yazılımcı bulamayan veya bütçesi sıkışık olan iş verenler ise "zaten yapay zeka bu işi yapıyor, başına ortalama bir eleman koydum mu her türlü işi hızlıca yaparız." moduna girdiler. Bu da yazılımda AI slop dediğimiz oluşturulan saçma kodları beraberinde getirdi.
AI Slop Örnekleri Nelerdir?
Ben de oluşturduğum projelerde ağırlıklı olarak yapay zekayı kullanan bir geliştirici olarak AI slop'a birkaç örnek verebilirim. Ağırlıklı olarak React, React Native, Next.JS ve Typescript kullanıcısı olarak yapay zeka şu kısımlarda tam bir slop oluşturabiliyor:
Gereksiz Type Castlemeleri
Typescript ile proje geliştirirken her değişkenin, objenin bir tipi olduğu görülür. VS Code veya herhangi gelişmiş bir IDE kullanıyorsanız bu değişkenlerin üzerine mouse ile geldiğinizde o değişkenin tipini görebilirsiniz:

yukarıda ekran görüntüsü belki çok iyi bir örnek olmayacaktır fakat props isimli objenin React.ReactNode tipinde children adında bir alanı olduğunu görebilmekteyiz. AI ile beraber kod yazarken gereksiz yerlerde type casting yaptığını görebilmekteyim.
Component Oluşturmama
Bir uygulamanın ön yüzünü oluştururken tekrar edebilen ve birkaç sayfada tekrar tekrar kullandığımız küçük kod elementlerini component haline getiririz. Oluşturduğumuz bu componentler tek dosya içerisinde tanımlanır ve artık istediğimiz yerde istediğimiz miktarda kullanabilir hale geliriz. Böylece daha sonra o component'e bir güncelleme getirmek istediğimizde tek dosyadan bu değişimi yaparak birkaç sayfayı etkilemesini sağlarız. Buna yazılımda Don't Repeat Yourself yani Türkçesi kendini tekrarlama anlamına gelir.

Yapay zeka component haline getirilebilecek kısımları yakalamada oldukça başarılı bunu çok hızlı bir şekilde yapabilmekte. Fakat gözlemlediğim kadarıyla yazılımcı bu talebi prompt olarak vermeden kendisi bir türlü bunun farkına varamıyor. Bu da bir süre sonra tasarımda tutarsız bir görünüme neden olabiliyor.
Kütüphane Kullanımı
Özel direktifler verilmediğinde yapay zeka bazen bir kütüphane kullanılarak basitçe çözülebilecek bir işleme kendi implementasyonunu oluşturmaya çalışabiliyor. Bu implementasyon genelde anlaşılmayan karışık koda neden olabilmekte. Bunun önüne geçebilmek adına olabildiğince popüler ve geliştirilmeye devam edilen açık kaynaklı kütüphaneleri tercih ediyorum. Bu geliştirilen kütüphanelerin dökümantasyonu güncel olduğundan AI küçük bir web araması yaparak ayrıntılara hakim olabiliyor.
Yapay Zekanın Diğer Sektörlere Olan Etkisi
Yazılım sektöründe olduğu gibi yapay zeka diğer sektörlerde de iş yapış şekillerini ciddi şekilde değiştirmeye başladı. Buradaki en büyük değişim aslında mesleklerin tamamen ortadan kalkmasından ziyade, o mesleği yapan insanların kullandığı araçların değişmesi olarak karşımıza çıkıyor. Eskiden saatler süren veri analizi, raporlama, içerik üretimi veya tasarım süreçleri artık yapay zeka destekli araçlarla çok daha kısa sürede tamamlanabiliyor. Bu durum özellikle tekrar eden ve belirli kurallara bağlı işleri yapan pozisyonlarda büyük bir verimlilik artışı sağlıyor.
Bu yazımda yapay zeka ile ilgili tecrübelerimi ve kötü kullanımının doğurabileceği sorunları paylaşmaya çalıştım. Konuyu özetlemek gerekirse büyük takımlardan ziyade artık çekirdek bir takımın daha çok değer gördüğü hızla değişen bir sektöre tanıklık ediyoruz. Bu tarz bir sektörde diğerlerinin gerisinde kalmamak için kesinlikle yapay zekayı tecrübe etmeli ve işinizi nasıl daha verimli hale getirebileceğini çözmeniz gerekmekte.



