Ana Sayfa

Şablon Kod Vergisi: Programlama Dillerini Yoğunluğa Göre Sıralamak

1 dk okuma

Yazar, projelerin boyutunu ve karmaşıklığını ölçmek için kullanılan yöntemlere odaklanarak, özellikle scc aracında bulunan ULOC (Unique Lines of Code) metriğini ele alıyor. Geleneksel SLOC (Source Lines of Code) ölçümlerinin aksine, ULOC boş satırları, kapatma parantezlerini ve yaygın dahil etmeleri (common includes) göz ardı ederken, kodun bakımı kadar önemli olan yorumları sayar ve her dosyada bulunan lisans başlıkları gibi tekrarlayan öğeleri hesaba katmaz. Bu yaklaşım, bir projenin gerçek karmaşıklığına dair daha doğru bir tahmin sunmayı amaçlamaktadır. Yazar, ULOC'un iki yıldır scc içinde olmasına rağmen yeterince kullanılmadığını belirtiyor ve bu metriğin değerini objektif olarak ortaya koymak için bir çalışma yapma ihtiyacını vurguluyor.

Bu çalışmada, farklı programlama dillerindeki şablon kod (boilerplate code) yoğunluğunu karşılaştırmak amacıyla, EvanLi/Github-Ranking deposunda listelenen en popüler 100 GitHub deposu incelenmiştir. Yazar, bu depoları dil bazında gruplandırarak, her bir dil için scc kullanarak ULOC değerlerini hesaplamayı hedeflemiştir. Depo URL'lerini otomatik olarak çıkarmak için Google Gemini'den yardım alarak basit bir Python betiği oluşturulmuştur. Bu yöntemle, Go ve Rust gibi diller arasındaki şablon kod tekrarı farkının nicel olarak belirlenmesi ve ULOC için "normal" değerlerin ne olabileceğine dair bir referans oluşturulması amaçlanmaktadır.

Bu çalışma, yazılım projelerinin gerçek boyutunu ve karmaşıklığını daha iyi anlamak için yeni bir metrik olan ULOC'un potansiyelini göstermeyi hedeflemektedir. Farklı dillerdeki şablon kod yoğunluğunu objektif olarak karşılaştırarak, geliştiricilere ve araştırmacılara projelerin yapısal özellikleri hakkında değerli bilgiler sunabilir. Bu tür analizler, dil seçiminden proje yönetimine kadar birçok alanda daha bilinçli kararlar alınmasına yardımcı olabilir.

İçgörü

ULOC metriği, programlama dillerindeki şablon kod yoğunluğunu objektif olarak ölçerek projelerin gerçek karmaşıklığını daha iyi anlamamızı sağlıyor.

Kaynak