Özgür Yazılım, Ücretsiz Yazılım ve Açık Kod Karşılaştırması
Özgür Yazılım (Free Software), kullanıcıya dört temel özgürlük garanti eden yazılımdır: programı herhangi bir amaçla çalıştırmak, kaynak kodunu incelemek, onu değiştirmek ve orijinal veya değiştirilmiş kopyaları dağıtmak. Özgür Yazılım ile Freeware (ücretsiz yazılım) arasındaki temel fark fiyatta değil, kodu değiştirme hakkının varlığında yatar. Özgür Yazılım, felsefi olarak etik ve kullanıcı haklarına vurgu yaparken; Açık Kaynak, açık geliştirmenin pratik değerine odaklanır.
Birçok kullanıcı ve hatta geliştirici bu terimleri eş anlamlı sanarak karıştırır. Oysa bunlar arasındaki seçim, yasal riskleri, özelleştirme olanaklarını ve projenin uzun vadeli stratejisini belirler. Aşağıda her kavramı ayrı ayrı ele alacak, popüler lisansları karşılaştıracak ve bir programı indirirken tam olarak ne elde ettiğinizi anlamanıza yardımcı olacağız.
Kısa özet:
- Özgür Yazılım (Free Software): Kodu değiştirme hakkı (özgürlük) önemlidir.
- Freeware: Ücret olmaması (fiyat = 0) önemlidir, ancak kod kapalıdır.
- Açık Kaynak (Open Source): İşbirliği için kodun erişilebilir olması (metodoloji) önemlidir.
Üç Kavram: Gerçek Fark Nedir?
Yasal hatalardan ve yanlış beklentilerden kaçınmak için bu üç kategoriyi net bir şekilde ayırt etmek gerekir.
Özgür Yazılım (Free Software)
Terim, Richard Stallman ve Özgür Yazılım Vakfı (FSF) tarafından tanıtılmıştır. Buradaki anahtar kelime "özgürlük"tür (freedom), "bedava" (free beer) değil. Özgür yazılımı satabilirsiniz, ancak alıcı yine de onu değiştirme ve başkalarına aktarma hakkına sahip olacaktır.
Gerekli dört özgürlük şunlardır:
- Özgürlük 0: Programı herhangi bir amaçla çalıştırma özgürlüğü.
- Özgürlük 1: Programın nasıl çalıştığını inceleme ve ihtiyaçlarınıza göre uyarlama özgürlüğü (kaynak koduna erişim gerektirir).
- Özgürlük 2: Başkalarına yardımcı olmak için kopyaları dağıtma özgürlüğü.
- Özgürlük 3: Programı geliştirme ve iyileştirmeleri kamu malı olarak yayınlama özgürlüğü (bu da kod erişimi gerektirir).
Freeware (Ücretsiz Yazılım)
Bu, ücretsiz olarak dağıtılan tescilli (proprietery) yazılımdır. Yazar tüm telif haklarını kendinde saklar.
- Kaynak Kodu: Kapalıdır. Programın "kaput altında" ne yaptığını bilmezsiniz.
- Değişiklik: Yasaktır. Yazılımı kıramaz, değiştiremez veya tersine mühendislik uygulayamazsınız.
- Dağıtım: Genellikle kısıtlıdır. Örneğin, ayrı bir sözleşme olmadan yeniden satmak veya ticari amaçlarla kullanmak yasak olabilir.
- Örnekler: Skype (temel sürüm), Adobe Acrobat Reader, Windows için birçok ücretsiz yardımcı program.
Karışıklığın Tehlikesi: Freeware indirirken, kodun güvenlik denetimi yapma hakkını elde etmezsiniz. Geliştirici desteği durdurursa, program savunmasız hale gelebilir veya yeni işletim sistemleriyle uyumsuz olabilir ve bunun karşısında yasal olarak hiçbir şey yapamazsınız.
Açık Kaynak (Open Source)
Açık Kaynak Girişimi (OSI), açık kodu bir geliştirme metodolojisi olarak teşvik eder. Temel argüman şudur: "Çok sayıda göz, tüm hataları yüzeysel hale getirir."
- Odak Noktası: Açık geliştirmenin pratik avantajları üzerinde (güvenlik, hata düzeltme hızı, kod kalitesi).
- Özgür Yazılımdan Farkı: Teknik olarak çoğu Açık Kaynak lisansı aynı zamanda Özgür Yazılım lisansıdır. Ancak OSI felsefesi, FSF'nin etik katılıklarından kaçınarak iş faydaları ve işbirliğine vurgu yapar.
Kavramların Karşılaştırmalı Tablosu
| Özellik | Özgür Yazılım (Free Software) | Freeware | Açık Kaynak (Open Source) |
|---|---|---|---|
| Fiyat | Ücretli veya ücretsiz olabilir | Ücretsiz | Genellikle ücretsiz, ancak ücretli destek mümkündür |
| Kaynak Kodu | Açık | Kapalı | Açık |
| Değişiklik Hakkı | Garantilidir | Yasaktır | İzin verilir (lisansa bağlıdır) |
| Dağıtım Hakkı | Garantilidir | Kısıtlı veya yasaktır | İzin verilir (lisansa bağlıdır) |
| Temel Amaç | Etik, kullanıcı özgürlüğü | Pazarlama, pazar payı kazanma | Kod kalitesi, işbirliği |
| Yasal Altyapı | FSF Lisansları (GPL vb.) | EULA (Son Kullanıcı Lisans Sözleşmesi) | OSI Lisansları (MIT, Apache vb.) |
Lisans Türleri: Copyleft ve Permissive
Projeniz için bir lisans seçiyorsanız veya başkasının kodunu kullanıyorsanız, açık ve özgür yazılımın lisanslanmasına yönelik iki temel yaklaşımı anlamak önemlidir.
1. Copyleft (Katı Lisanslar)
"Bulaşıcılık" ilkesi: Böyle bir lisansa sahip kodu kendi ürününüzde kullanır ve dağıtırsanız, sizin ürününüz de aynı lisans altında açık hale gelmelidir.
- Amaç: Özgür yazılım tabanlı oluşturulan kodun kimse tarafından kapatılmasını engellemek.
- Temel Temsilci: GNU GPL (General Public License).
- Kimler İçin Uygun: Topluluğu korumak ve tüm iyileştirmelerin açık erişimde kalmasını garanti etmek isteyen projeler için. Linux çekirdeği klasik bir örnektir.
2. Permissive (İzin Verici Lisanslar)
Maksimum hareket özgürlüğü. Kodu alabilir, değiştirebilir, kendi tescilli (kapalı) ürünlerinize dahil edebilir ve kendi kaynak kodunuzu açmak zorunda kalmazsınız. Genellikle sadece orijinal yazarlara atıfta bulunulması gerekir.
- Amaç: Teknolojinin ticari kapalı yazılımlarda bile olsa maksimum yayılmasını sağlamak.
- Temel Temsilciler: MIT, Apache 2.0, BSD.
- Kimler İçin Uygun: Endüstri standardı haline gelmek isteyen kütüphaneler, çerçeveler (frameworks) ve araçlar için (örneğin React, Node.js, Android).
İşletmeler İçin Tavsiye: Açık bileşenler temelinde kapalı ticari bir ürün oluşturmayı planlıyorsanız, GPL lisanslarından kaçının. Kendi kodunuzu açma yükümlülüğünüz olmaması için MIT veya Apache 2.0'ı seçin.
Yazılım Seçimi ve Kullanımında Sık Yapılan Hatalar
- Lisans koşullarının ihmal edilmesi. Birçok geliştirici,
LICENSEdosyasına bakmadan GitHub'dan kod kopyalar. GPL kodunun kapalı bir kurumsal üründe kullanılması, şirketin tüm kaynak kodunu açma talebiyle dava edilmesine yol açabilir. - "Ücretsiz" = "Her Şey Serbest" karışıklığı. Ücretsiz bir eklenti (Freeware) indirmek, onu ücretli hizmetinize gömme hakkı vermez. Her zaman EULA'yı okuyun.
- Apache 2.0'ın yanlış anlaşılması. Bu lisans neredeyse her şeye izin verir, ancak telif hakkı bildirimlerinin korunmasını gerektirir ve açık bir patent grant'ı (katkıda bulunanlar tarafındaki patent trollerine karşı koruma) içerir. Bildirim şartının ihmal edilmesi lisans ihlalidir.
- Uyumsuz lisansların karıştırılması. GPL altındaki kod ile bazı diğer katı lisanslar altındaki kodu aynı binary dosyada keyfi olarak karıştıramazsınız. Lisans uyumluluğunu (license compatibility) kontrol etmeniz gerekir.
SSS: Popüler Sorulara Cevaplar
S: Özgür Yazılımı satabilir miyim? C: Evet. Özgür yazılım bir fiyat meselesi değil, haklar meselesidir. Taşıyıcı medya, dağıtım, teknik destek veya derleme için ücret alabilirsiniz. Ancak programı sizden alan kullanıcının onu internete ücretsiz koyma hakkı vardır ve bunu engelleyemezsiniz.
S: Linux Özgür Yazılım mı yoksa Açık Kaynak mı? C: Her ikisi de. Linux çekirdeği GPLv2 lisansı altında dağıtılır ve bu, Özgür Yazılım Vakfı'nın tanımına uygundur. Kod açık olduğu ve topluluk tarafından geliştirildiği için Açık Kaynak terimi de geçerlidir.
S: Hangisi daha güvenli: Freeware mi yoksa Açık Kaynak mı? C: Açık Kaynak potansiyel olarak daha güvenlidir, çünkü kod bağımsız uzmanlar tarafından denetlenebilir ("şeffaflık yoluyla güvenlik"). Freeware durumunda ise satıcıya körü körüne güvenmek zorundasınız. Ancak açık kodun varlığı hataların olmadığı garantisi vermez; topluluğun kodu ne kadar aktif olarak kontrol ettiği önemlidir.
S: Yeni projem için hangi lisansı seçmeliyim? C:
- Maksimum yayılım ve ticari kullanım istiyor musunuz? MIT veya Apache 2.0 seçin.
- Tüm türev çalışmaların açık kalmasını mı istiyorsunuz? GPLv3 seçin.
- Bir kütüphane yazıyor ve onun her yerde kullanılmasını, ancak kütüphanenin kendisindeki iyileştirmelerin size geri dönmesini mi istiyorsunuz? LGPL'yi değerlendirin.