JavaScript Lisans Web Etiketleri: Arka Plan ve Gerekçe
Webte gezinen kullanıcılar günümüzde, kendi bilgisayarlarında sıklıkla, çoğu kez bilmeden, muazzam miktarlarda özel mülk yazılım çalıştırıyorlar. Özgür yazılım'ın masaüstünde başarılı olmasını kısmen, belirli bir programı kullanmak, incelemek, paylaşmak ve değiştirmek için özgür olduklarını kullanıcılara önceden söylenmesini güvence altına alan copyleft korumasıyla sağlıyor. Webte tarayıcılar, kullanıcıları programın lisansı hakkında veya kendi özgürlükleri konusunda (veya diğer programların özgürlüklerini nasıl engellediği konusunda) hiç bilgilendirmeden JavaScript indirip, çalıştırıyorlar.
Bu sorunu çözmek için, önemli JavaScript kodunu tanıyan ve lisansını denetleyen LibreJS programını geliştirdik. İşlevselliği, lisansların, insan zekasından yoksun olan bir programın anlayabileceği şekilde belirtilmesine dayanıyor. Ayrıca, tüm GNU yazılım lisansları, dağıtıcıların yazılımla birlikte lisansı bildirmesini (böylece alıcılar haklarını bilirler) ve kaynak kodun nereden bulunabileceğini söylemesini gerektiriyor.
Lisansı belirtmenin kolay yolu JavaScript kodu içerisinde biçimlendirilmiş yorumlardır. Ancak bu, sıkıştırılmış kütüphane dosyaları için zahmetli olabilir, bu nedenle lisanslarını belirtmeleri için başka bir yöntem geliştirdik: JavaScript web etiketleri.
Gerekçe
Özgür yazılım lisanslarındaki lisansın kopyasını ve kaynak koda erişimi içerme koşullarına, yazılım Web veya diğer İnternet kanallarıyla dağıtıldığında uyulması neredeyse her zaman çok kolaydır. Ancak Web sitelerinde gömülü JavaScript'i dağıtmak kendine özgü bir kaç etkenden dolayı karmaşıktır: ziyaretçiler yazılımı açıkça talep etmeden edinirler ve web sorumluluları JavaScript kodunu tek bir dosya şeklinde sunabilirler (bu yüzden, örneğin, lisans tarafından gerektirilen diğer kaynakları içeren bir arşiv dosyası gönderemezler).
Bu sorunlar birlikte web sorumlularına özgür yazılım lisanslarının gerektirdiği ek malzemeleri sağlamak için az sayıda açık yol bırakır. En kolay yol JavaScript'i, yorumlarında tüm lisans kopyasıyla birlikte kaynak kod biçiminde sunmaktır. Bu küçük sitelerde kabul edilebilir bir çözüm olsa da, JavaScript trafiğin çoğunu oluşturmaya başladığında web sorumluları bu kadar çok miktarda veriyi göndermekte anlaşılır bir şekilde isteksiz olurlar. Bizim yöntemimiz onlara, bu iki sorunu da çözecek şekilde, ek lisans kaynaklarını sunabilecekleri (ve ziyaretçilerin de bakabileceği) belirgin bir yer sağlıyor. İlk olarak, “JavaScript lisans bilgisini” bir bağlantı aracılığıyla sağlayarak yazılım dağıtımını görünür kılıyor. Bağlantılı sayfa web sorumlularına, ziyaretçiler için gereğine uygun olarak belirgin ama kafa karıştırıcı olmayacak bir şekilde bu kaynakları yayınlayabilecekleri bir alan veriyor.
Makinelerce Okunabilirlik
İnsanların özgür olmayan JavaScript'i tarayıcılarında reddetmelerini kolaylaştırmak amacıyla bizim yöntemimiz, bir eklenti veya diğer yazılımların sitenin JavaScript lisans bilgisini içeren tabloyu bulması, tüm JavaScript'in bilinen bir özgür lisans altında olduğunu doğrulaması, kaynak kodunu indirmesi ve sitede sunulan optimize edilmiş JavaScript'e uyduğunu doğrulaması için yeterince açıktır. Böylece ziyaretçiler JavaScript'in özgür olup olmadığını hızlıca ve rahatlıkla denetleyebilir ve çalıştırmak isteyip istemediklerine buna göre karar verebilirler. LibreJS, Mozilla tabanlı tarayıcılar için, kullanıcıların özgür olmayan JavaScript çalıştırmaktan kaçınmasına yardımcı olan bir eklentidir ve yeteneklerini iyileştirmek için bu denetimleri gerçekleştirecektir.
Sistemin temeli olarak, kolayca çözümlenen bir biçimde daha ayrıntılı bilgi vererek programcıların bu işini kolaylaştırmak amacıyla RDF gibi başka bir biçimi kullanmayı da düşündük. Ancak amacımız bu bilginin ilk olarak insanlarca, daha sonra makinelerce okunabilmesini sağlamaktı. İyi biçimlendirilmiş HTML kullanımı, bu öncelikleri karşılayan en iyi seçenek oldu.
Sonraki adımlar
Özgür yazılım JavaScript barındıran sitelerin Web sorumlularının lisanslara uymak için bu belirli yöntemi izlemesi gerektiğini söylemiyoruz. Her yazılım lisansı açıkla kendi koşullarını ortaya koyar ve herhangi bir web sorumlusu bu koşulları sağlayan farklı bir yöntem kullanmak istiyorsa, bunda özgürdür. Fakat önerdiğimiz yöntemin, web sorumlularının JavaScript'i en iyi olduğunu düşündükleri sekilde sunmaları önünde bir engel oluşturmadan, tüm lisans bilgisini ziyaretçiler için (günümüze kadar çözülmesi zorluk yaratan) rahatça erişilir kılma gibi bir yararı var.
Sistemi web sorumluları, site ziyaretçileri veya lisans denetleme yazılımları üzerine çalışan geliştiriciler için daha kullanışlı kılarken, aynı amaçlara ulaşabileceğimiz diğer yollara ilişkin önerilerinizi ve geri bildirimlerinizi duymaktan memnuniyet duyarız. Eğer mevcut yöntem üzerine göze çarpan bir şekilde daha iyileşmiş yeni bir yöntem yayınlayacak kadar öneri alabilirsek, onu yayınlarız. (Bu yüzden bu yöntem lisans bilgisi tablosu için ayrıntılı bir tanımlama kullanıyor: yazılımların bu yöntemi, gelecekte oluşturabileceğimiz diğerlerinden ayrıt etmelerini sağlamak). Eğer bu konu ilgilendiğiniz bir konuysa, lütfen LibreJS e-posta listesine abone olun ve yorumla önerilerinizi listeye gönderin. Sizden bir şeyler duymayı sabırsızlıkla bekliyoruz.