Ana Sayfa

Yapay Zeka Ajanlarıyla Literate Programming'e Yeni Bir Bakış

1 dk okuma

Literate programming, kodun bir hikaye gibi okunabilmesi ve işleyişinin anlaşılabilmesi için metinle iç içe geçirilmesi fikridir. Yazar, bu fikre ilgi duysa da, pratikte kod ve metin olmak üzere iki paralel anlatıyı sürdürmenin zorlu bir iş haline geldiğini ve bunun benimsenmesini sınırladığını belirtiyor. Tarihsel olarak, veri bilimi topluluğunda Jupyter notebook'lar aracılığıyla yaygınlaşsa da, Emacs Org Mode gibi araçlarla niş bir kullanım alanı bulmuştur. Özellikle büyük yazılım projelerinde Org Mode'u ana kaynak olarak kullanmak, kaynak kodun derlenmiş bir çıktı haline gelmesi ve her düzenlemeden sonra kodun yeniden çıkarılması ("tangle" edilmesi) gerektiği için zahmetli olabilmektedir. Bu durum, gerçek kaynak kodda yapılan değişikliklerin bir sonraki "tangle" işleminde üzerine yazılması gibi sorunlara yol açabilir.

Yazar, bu zorluklara rağmen, kişisel yapılandırmaları düzenlemek ve manuel testler için literate programming'i başarıyla kullandığını ifade ediyor. Komutları doğrudan editörde yazıp çalıştırarak, her adımın doğru olduğundan emin olana kadar düzenleyerek bir çalışma belgesi oluşturma pratiği geliştirmiştir. Bu yaklaşım, testleri çalıştırırken notları da ücretsiz olarak elde etmeyi sağlamıştır.

Günümüzde kodlama ajanlarının varlığıyla bu fikir daha da heyecan verici hale gelmiştir. Claude ve Kimi gibi yapay zeka modelleri, Org Mode sözdizimini mükemmel bir şekilde anlamaktadır. Bu modeller, bir özellik test edilmek istendiğinde Org formatında bir "runbook" yazabilirler. Bu "runbook"lar, modelin her adım için niyetini açıklayan metinler ve gözden geçirme tamamlandıktan sonra etkileşimli olarak çalıştırılabilen kod blokları içerir. Bu sayede, yapay zeka ajanları, literate programming'in geçmişteki zorluklarını aşarak, kodun anlaşılabilirliğini ve bakımını önemli ölçüde artırabilir.

İçgörü

Yapay zeka ajanları, kod ve açıklamaları bir araya getiren literate programming yaklaşımının yaygınlaşmasını sağlayarak yazılım geliştirme süreçlerini daha anlaşılır ve verimli hale getirme potansiyeli sunuyor.

Kaynak