Tab tuşu klavyelerin sol üst köşesinde bulunan en eski fonksiyonel tuşlardan biri. 10 parmak klavye kullananlar için sol elin serçe parmağı ile şöyle bir dokunulan, sessiz ama etkili bir tuş. Kişisel bilgisayar kullanımın neredeyse ilk günlerinden beri var. Hatta sadece kişisel bilgisayarlar değil, sunucu yönetiminde kullanılan pek çok yazılımda da tab tuşunun önemli fonksiyonları var. Fare imlecinin olmadığı bir dünyada, bir sonraki girdi kutusuna geçmek tab tuşu ile mümkündü. Evet o günlerde, bugünkü anlamıyla bir masaüstü arayüzü yoktu ama yine de MS-DOS programlarının pek çoğunda form girdileri için basit de olsa ekran tasarımları vardı. Arkaik muhasebe yazılımlarını, mesela ETA’yı kullanmış olanlar hatırlayacaktır. Tab tuşu aynı zamanda komut istemcilerinde komut tamamlama işlevi için, geçmişte olduğu gibi bugün de önemli bir vazife görüyor.
Sekiz karakterlik bir boşluk vermesi için tasarlanan Tab tuşunun bugünkü yazımıza konu olması ise bambaşka bir sebepten ötürü. OpenAI’ın kurucuları arasında yer alan, uzun yıllar Tesla’da otonom araçların dizaynı için çalışmış yapay zeka uzmanı Andrej Karpathy, tıpkı birkaç ay önce attığı “Geleceğin en yaygın dili İngilizce olacak” tweetine benzer şekilde, yeni bir trendin işaret fişeğini “tab tab tab” sözleriyle ateşledi. Yapay zeka destekli geliştirme ortamı Cursor.AI geliştirme ortamı ile birkaç saatlik tecrübesini “tab tab tab” sözleriyle özetleyen Karpathy yeni nesil teknolojilerin yazılım geliştirme süreçlerinde yaratacağı etkiye dair pek çok tartışmanın da önünü açmış oldu.
Aslında yapay zeka destekli kod yazma/tamamlama akımı, bugünkü kadar gelişmiş olmasa da 2021 yılında Github Copilot’un görücüye çıkardığı teknoloji ile başladı. Fakat bugünkü durum ile, 2021 arasında önemli bir fark var. Github Copilot, o günlerde yazılım geliştiricilerin ve işin uzmanlarının kadrajına girmiş olsa da, ChatGPT sonrası eskisi gibi olmayan dünyamızda yapay zeka destekli kod geliştirme ya da kod yazma işini tamamen yapay zekaya ihale etme işi bugün birçok farklı kesimden insanın ilgisini çekiyor. Kendi start up projesini hayata geçirmek isteyen ateşli girişimcilerden, proje ödevlerinin teslim tarihi yaklaşmış endişeli öğrencilere kadar herkes…
Yazımın başlığını Fatih Terim’in meşhur “Taktik maktik yok bam bam bam” sözünden esinle, “Taktik maktik yok, tab tab tab” olarak yazacaktım ki, bu iddianın biraz yanıltıcı olacağını düşünüp vazgeçtim. Nitekim yapay zeka kod üretme araçlarıyla yaşadığım birkaç saatlik tecrübe de bunu doğruladı.
Geçtiğimiz günlerde bir yakınımın aralıksız aylardır benden istediği web tabanlı taşıt yönetimi yazılımını birkaç saat içerisinde, GPT4.0’ın yardımı ile hazırlayıp, teslim ettim.
Muhtemelen bu yazılımın hazırlanması 3-4 saatimi almıştır. Bana bu yazılımı geliştirmenin maliyeti ise takriben 18 doları buldu. Helali hoş olsun.
Fakat bu süreçte gördüm ki yapay zeka kullanarak yazılım geliştirmek, gerçek anlamda bir pratiklik ve kolaylık sunsa da, yazılım altyapısı olmayan biri için pek de öyle sihirli bir çözüm olmayabilir.
İlk elden şunu söylemeliyim, doğal dil ile talimatları verebiliyor olsanız bile, gerçekten ne istediğinizi biliyor olmanız gerekiyor. Bu da kanaatimce hiç değilse bir dilde yazılım geliştirme tecrübesine sahip olmayı gerekli kılıyor. Aksi takdirde yapay zekanın “şak” diye yazdığı kodları çalıştırmak, hele ki kodda bulunması muhtemel hatalar nedeniyleö saçınızı başınızı yoldurabilir. Demedi demeyin!
Dolayısıyla yapay zekanın sunduğu bu önemli avantajdan faydalanmak isteyenlere temel düzeyde de olsa yazılım geliştirme süreçlerini anlatan kurslardan istifade etmelerini nacizane tavsiye ediyorum.
Hali hazırda yazılım geliştirme tecrübesi olanlar için Claude’un Sonnet’i, GPT’nin 4.0 versiyonu, Cursor.AI ya da kullanıcıları ile buluşması için gün sayan Genie gibi projeler zamandan tasarruf ve daha efektif kod yazma imkanları ile büyük bir nimet olarak düşünülebilir.
Sadece kodu sıfırdan yazdırmak için değil, hali hazırda yönetmek zorunda olduğunuz kodlardaki hataları ayıklamak, fonksiyonel testleri hazırlamak, kodun karmaşık olan kısımlarını anlayabilmek için de bu teknolojiler paha biçilmez değerde. Birkaç yıllık yazılım geliştirme tecrübesi olup, bu alanda dirsek çürütmüş kimseler daha ilk bakışta bunun nasıl bir mucize olduğunu fark edeceklerdir.
Peki bir yazılımı baştan sona hazırlayıp teslim edebilecek otonom sistemler yok mu? Elbette bu sahada da kimi girişimleri saymak mümkün. Örneğin Devin projesi. Duyurulduğu ilk günlerde adından çok söz ettiren Devin tarif ettiğiniz kodu sizin için bütün veçheleri ile düşünüp hazırlayabiliyor. Nitekim yazılım geliştirme süreçlerini yapay zeka agentlarından (işgören diye tercüme edelim.) müteşekkil, farklı tıtrlerdeki bir sanal ekip ile tasarlayıp, rakip analizi, SWOT analizi, arayüz ekranı dahil hazırlayan MetaGPT vb projeler de mevcut.
Yukarıda ismini andığımız Anthropic firmasının Claude Sonnet modeli, Artifact adını verdikleri sistem bileşeni sayesinde yapay zekanın ürettiği kodun sonucu görmek için sabırsızlanan geliştiricilerin yüreklerine adeta su serpiyor. Sonnet modeli, yapay zeka tarafından hazırlanan kodun sonuçlarını anında Artifact denilen ekranda gösteriyor. Hatta hazırlanan bu Artifact’lere genel erişime açık bir de adres atayan Claude modeli, ürettiğiniz uygulamaları üçüncü kişilerle paylaşmanıza imkân veriyor.
Ecnebiler moral of the story, diyor, bizdeki karşılığı ile kıssadan hisse: Yapay zeka yazılım geliştirme araçları zaman ve üretkenlik açısından büyük avantajlar sunuyor. Fakat bu araçları kullanabilmek, anlamlı çıktılar üretebilmek için bir yazılımın yaşam döngüsünü, yapay zekadan ne isteyeceğinizi bilecek kadar bir kod okuryazarlığı -bence- şart.
Hevesleri kursaklarda bıraktıysam affola.