Program ile program geliştirmek 1980 lerden beri kullanılan bir tekniktir. O yıllarda rapor yazmak, ekran düzenlemek veya bilgi bankası sorgulamak, düzenlemek vs gibi işlemler temelde rutin, sıkıcı ve zaman alıcı olduğu için, hemen her programlama lisanında bunları çok basit cümleler ile geliştiren uygulamalar vardı.
Bu uygulamalar istenilen neticenin %70 belki %80 nini hazırlıyordu. Gerisini ise işin gereğine göre programcılar dolduruyordu.
Bugünün Yapay Zekasının da temelinde program(lar) ve bilgi bankası sistemidir. İçine yüklenen milyonlarca paylaşılan açık kaynak kodlar ile bu Yapay Zeka destekli kodlama asistanları günümüzde çok yardımcı olmaktadır.
O gün ile bugün arasında benim için iki büyük olumlu fark:
- Özel eğitim gerektiren çok sıkı kurallı komutlar yerine konuşma lisanında yazdığımız cümleler ile kod geliştirme imkanımız var.
- Yaratılan programlarda kullanılan değişken isimleri ve kalıpların çoğunu okuyup anlayabilmek neredeyse imkansızdı. Bu tabiki uzun vadede destekleme sorunları yaratıyordu ve şirketleri bu özel program yazan programlara mahkum ediyordu.
Yapay Zeka destekli kodlama asistanlarının sunduğu fırsatları ve beraberinde getirdiği ciddi riskleri anlamamız önemlidir.
Yapay zekâ araçları mesela şu konularda iyidir:
- Boilerplate (tekrar eden) kodları ve kalıpları yüksek doğrulukla üretme
- Mevcut kodu açıklama ve karmaşık mantığı anlaşılır parçalara ayırma
- Kodları farklı programlama dilleri arasında dönüştürme
- Sözdizimi hatalarını ayıklama ve hızlı çözümler sunma
- İyi uygulamalarına dayalı iyileştirmeler önerme
Ama bazı konularda pek de iyi değiller:
- Karmaşık iş mantığını anlama
- Mevcut sistem hakkında derin bilgi gerektiren tasarım kararları alma
- Birden fazla, birbirine bağlı sistemdeki sorunları ayıklama
- Özellikle yüksek uzmanlık gerektiren veya en son teknolojileri kullanan kodlarda performansı optimize etme
- Üretilen kodun güvenli olduğunu garanti etme
Bu nedenle, yapay zekâ asistanlarını akıllı birer genç geliştirici gibi düşünmek en doğrusu olacaktır: Sağlam kod yazarlar, ancak tasarım kararları ve iş bağlamı konusunda rehberliğe ihtiyaç duyarlar.
Yapay zekâ araçlarını kullanırken genellikle şu tuzaklara düşebiliriz:
- %70 tuzağı: Yapay zekâ araçları, yeni başlayanların uygulamalarının %70 fonksiyonuna kolayca ulaşmasına yardımcı olabilir. Ancak, hata yönetimi ve özel durumlar gibi kritik bileşenleri içeren son %30, cilalanmış bir ürün ile sadece çalışan bir prototip arasındaki farktır. Zor ve sıkıcı olduğu için bu son %30’u atlamaktan kaçının.
- “Yapay zekâ yapsın” tuzağı: Yapay zekâ tarafından üretilen koda aşırı bağımlı hale gelmek, programlama becerilerinin körelmesine neden olur. Düzenli olarak yapay zekâ olmadan kodlama yaparak ve sadece copy-paste yerine kodu anlamaya odaklanarak dengeyi korumak lazım.
- Paylaşım tuzağı: Yapay zekâ araçları gizli bilgileri sızdırabilir. Kullanıcı verileriyle öğrenen yapay zekâ araçlarıyla asla tescilli, hassas veya gizli kodları paylaşmamak lazım.
- Bilgi boşluğu tuzağı: Yapay zekâ yardımına yoğun bir şekilde güvenmeden önce güçlü programlama temelleri oluşturmak gereklidir.
