Geliştiriciler Yapay Zekâ Kullanarak Yazılım Kullanım Maliyetlerini Düşürebilir mi?

Bir Nintendo kartuşu satın aldığınız ve üzerindeki yazılımı asla güncellemediğiniz günler artık geride kaldı. Dünya ile birlikte yazılımlar da değişti. Yazılımlar artık kendi küçük kutularında yaşamak yerine, birbirine bağlı makinelerde yaşıyor.

Yazan: Couchbase Geliştirici İlişkileri ve Strateji Yöneticisi Laurent Doguin

İster yeni bir siber saldırı karşısında bir güvenlik güncellemesi olsun, ister değişen ekosisteme ayak uydurmak için bir özellik güncellemesi olsun, yazılımlar artık değişime reaksiyon göstermek ve uyum sağlamak zorundalar. Yazılımlar güncellenmeli ve bakımları yapılmalıdır. Kodun yeniden yazılması, destek dosyalarının güncellenmesi ve uygulamaların yeniden dağıtılması gereklidir ki bu bedava değildir. Sürekli bir maliyet söz konusudur ve ne kadar çok kodun bakımını yapmak zorunda kalırsanız maliyet de bir o kadar yüksek olur. Bu nedenden dolayı kodlar sıklıkla silinir. Burada sorulması gereken soru şu: Yazılıma değer katan bir kod neden silinir? Kodun değeri nerede?

Kod ve Geliştirme Ekosisteminin Evrimi

Kodun değerini anlamak için öncelikle nasıl ortaya çıktığı hakkında konuşmamız gerekir. Bazı geliştiriciler hariç, çoğu geliştirici 0 ve 1 ile, hatta 0’dan f’ye kodlama yapmaz. Programlama dilleri aslında, geliştiricilerin 0 ve 1 yerine gerçek kelimeleri kullanmalarına olanak verecek şekilde evrimleşmiştir. Programlama dilleri zaman içinde gelişti ve geliştiricilerin hayatını kolaylaştırmak için daha yüksek seviyelere doğru evrilmeye devam ediyor. Düşük seviyeli, makine dillerinden (1GL) assembly’ye (2GL), C veya Java gibi daha soyutlanmış yüksek seviyeli dillere (3GL), R, SQL, PL/SQL gibi daha alana özgü dillere (4GL) ve Lisp, OPS5 veya Mercury gibi dillere (5GL) geçtik. Burada üzerinde durulması gereken nokta, her bir nesil daha kompleks yapıları da beraberinde getiriyor. 5GL’ler, belirtilen sorunlara ve koşullara dayalı çözümler oluşturmak için yapay zekaya güveniyor.

Geliştirme ekosistemleri de programlama dilleri ile birlikte evrim geçirmiştir. Geliştiriciler yeni bir projeye başlarken sıfırdan başlamıyor. Kütüphaneler, veritabanları, veri platformları, kodsuz/düşük kodlu geliştirme kullanıyorlar. Mevcut yazılımları kullanıyorlar ve onlarla etkileşime geçiyorlar. Daha az yazılı kodla aynı seviyede özellik sağlamaya devam edebilecekleri her şeyi kullanıyorlar.

Toplam Sahip Olma Maliyetini Azaltma ve Bakımı İyileştirme

Bir şeye sıfırdan başlamak her zaman daha maliyetli olur. Ekmek kızartma makinesi hikayesini bu nedenle hiç unutmam. Thomas Thwaites, gerekli madenin eritilmesine ve ekmek kızartma makinesi yapmak için yapmanız gereken diğer her şeye kadar, her şeyi en baştan kendisi yaparak bir ekmek kızartma makinesi yaratmaya karar verdi. Sonunda tost makinesi çalışmadı ve gereksiz bir şekilde hem zaman hem de paraya mal oldu. Bir ekmek kızartması makinesinin üretilebilmesi için koca bir medeniyet gerekir. Yazılımda da durum, henüz o noktaya gelmemiş olsa da aynıdır. Eğer değer sağlamak istiyorsanız, önceki çıkarımları kullanırsınız. Daha az kod yazılması, daha az kodun bakımının yapılması anlamına gelir. Bu da bakım için daha az para harcanması, yani daha düşük toplam sahip olma maliyeti anlamına gelir.

Bir geliştiricinin işi eski kod dilinde yazmaktır. Hala bir yerlerde çalışan “eski” kodunuz varsa, tebrikler, değer sağladınız ve sağlamaya devam ediyorsunuz. Bunu yapmanın en iyi yollarından biri, araç ve bağımlı olduğunuz ekosistemi akıllıca seçmektir. Birden fazla türde iş yükünü destekleyen ve sürekli yenilerini öneren modern bir bulut veri platformu kullanmak oldukça iyi bir seçenektir. Çünkü dereyi geçerken at değiştirmek oldukça maliyetli olabilir. Buradaki asıl mesele verileri taşımak değil, kodu yeniden yazmak ve bakımını yapmaktır. Hepimizin de bildiği üzere, ne kadar çok kod yazarsanız bakım maliyeti de o kadar yüksek olur.

Yazılım Geliştirmede Yapay Zekânın Etkisi

Bunun yapay zekâ ile ne ilgisi var demeyin. Büyük dil modellerinin piyasada çok fazla heyecan yarattığını ve sizin için kod yazmayı vaat eden yeni araçların ortaya çıktığını gördük. Bu, yazılım geliştirmenin ilk maliyetini düşürebilecek olsa da, geliştiricilerin/kuruluşların/ekiplerin gerçekten istediği şey mi? Ekipteki hiç kimse tarafından yazılmamış, tam olarak istediğimiz şeyi yapan veya yapmayan daha fazla kodun yazılmasının maliyeti ne olacaktır? Doğru araç veya doğru kütüphane kullanılarak bir kod elde edinebilecekken bunu sürdürmenin zorlukları ne olacaktır? Nihayetinde, bu şey bize ne kadara mal olacaktır?

Kod üreten bir yapay zekânın şimdilik 3GL için teknik borç oluşturduğunu düşünelim. Bu, gelecekte çevresindeki ekosistemleri kullanmada daha iyi hale geldikçe, daha iyi kod ürettikçe değişebilir ancak şu anda katma değer üretmiyor, hatta tam tersi bir duruma neden oluyor. Scala kodu yazmak için zaten Scala geliştiricileri var. 3GL ile çok sayıda “glue” kod veya “boilerplate” kodu üretiyor olurdunuz. Yani kullandığınız arayüze yardımcı olan, başka bir bağımlılık olabilecek veya olması gereken şeyin yerini alan kodlar.

Şu anda mevcut 5GL’ye bakmak veya 4GL için SQL gibi alanlarda üretken yapay zekayı kullanmak daha dikkat çekici görünüyor. SQL, sözdizimi daha basit olduğu için üretken yapay zeka için oldukça iyi bir seçim olarak öne çıkıyor ve SQL kodu için 3GL’de olduğu kadar bakım yapılması gerekmiyor. Buradaki en önemli nokta, SQL kodu üretirken yaratılan değerin direkt olarak iş değerine yansımasıdır. SQL, 3GL ve 5GL arasındaki kullanılabilecek en iyi programlama dilidir. Aynı 3GL gibi bir programlama dili olan SQL ile, 5GL’nin sorunları ve kısıtlamalarına maruz kalmadan istediğiniz her şeyi yapabilirsiniz. Bu nedenle piyasadaki her veri deposu SQL’yi geri getiriyor. Bizler de, Couchbase’de SQL’yi yeni özelliklerle güncellenmeye devam ediyoruz.

Sonuç

Toplam sahip olma maliyetini düşürmek için doğru tercihler yaptığınızdan emin olun. Eğer sizin için kod yazarak toplam sahip olma maliyetinizi azaltacak üretken bir yapay zeka arıyorsanız bunu bir daha düşünün ve 4GL ile kullanın.

Sizin de bu konuda söyleyecekleriniz mi var?