Açık kaynak yazılım

açık kaynak lisansıyla yayınlanmış programlama kodu

Açık kaynak yazılım ya da açık kaynak kodlu yazılım, telif hakkı sahibinin kullanıcılara yazılımı ve kaynak kodunu herhangi bir amaç için kullanma, inceleme, değiştirme ve dağıtma haklarını verdiği bir lisans kapsamında yayınlanan bilgisayar yazılımıdır.[1] Kullandıkları lisans gereğince isteyen kişi ve grupların yazılımı kendi kişisel ihtiyaçlarına uyarlamalarına ve sonunda değişikliği benzer tercihlere sahip kullanıcılar için bir çatal olarak yayınlamalarına olanak tanır.

Cinnamon masaüstü ortamı kullanan Manjaro Linux dağıtımından bir ekran görüntüsü. Görüntüde Firefox üzerinden MediaWiki yazılımı kullanan Wikipedia, LibreOffice Writer, Vim, GNOME Hesap Makinesi, VLC ve Nemo dosya yöneticisi bulunuyor. Tüm bunlar açık kaynak kodlu yazılımdır.

Açık kaynak yazılımlar, halka açık bir şekilde ortak çalışmaya dayalı bir şekilde geliştirilebilir. Açık kaynak yazılım, açık işbirliğinin önde gelen bir örneğidir.[2] Bu, kodlama yeteneğine sahip herhangi bir kullanıcının geliştirmeye çevrimiçi olarak katılabileceği ve olası katkıda bulunanların sayısının sınırsız olduğu anlamına gelir. Kodu inceleme yeteneği, halkın yazılıma olan güvenini kolaylaştırır.

Açık kaynak yazılım hareketi, Richard Stallman tarafından 1983'te GNU projesinin başlatılmasıyla başlayan özgür yazılım hareketinden 1998 yılında dallanmıştır. Açık kaynak kavramı Şubat 1998'de Eric Raymond ve Bruce Perens tarafından Açık Kaynak Girişimi'nin (OSI) kurulması ile resmileştirilmiştir.[3]

Açık kaynak kodlu yazılım geliştirme, tek bir şirketin geliştirdiği yazılımın ötesinde farklı bakış açıları getirebilir. Standish Group tarafından hazırlanan bir 2008 raporu, açık kaynaklı yazılım modellerinin benimsenmesinin tüketiciler için yılda yaklaşık 60 milyar dolar tasarruf sağladığını belirtti.[4]

Tarih değiştir

Açık kaynak yazılım hareketi, Richard Stallman tarafından 1983'te GNU projesinin başlatılmasıyla başlayan özgür yazılım hareketinden 1998 yılında dallanmıştır. Stallman, açık kaynak topluluğu içinde, yazılım geliştirme için özgürce paylaşılan kaynak kodunun kavramsallaştırılmasında önemli rol oynayan kişi olarak kabul edilir.

1997'de Eric Raymond yazılım mühendisliği yöntemleri üzerine yazdığı, Linux çekirdek geliştirme süreci ve gözlemlerine dayanan makale önemli bir ilgi gördü ve Netscape Communications Corporation'ı dönemin popüler internet tarayıcısı Netscape'in kaynak kodlarını özgür bir lisansla yayınlamaya motive eden bir faktördü.

Ocak 1998'de Netscape kaynak kodunun GNU Genel Kamu Lisansı'na benzer Netscape Kamu Lisansı ile yayınlanacağının duyurulması üzerine 3 Şubat 1998'de özgür yazılım topluluğundan bir grup insan, özgür yazılım kavramındaki "özgür" kelimesinin ima ettiği felsefi ve siyasi gündem yerine özgür yazılımın iş dünyasına pragmatik terimlerle tanıtılmasını tartışmak üzere Kalifornia'nın Palo Alto şehrinde bir araya geldi.[3] Özgür Yazılım Vakfı'nın sosyal aktivizminin şirketlere çekici gelmediği fikri ve yazılım kaynak kodu üzerinde paylaşma ve işbirliği yapma iş potansiyelini vurgulamak için özgür yazılım kavramını yeniden markalamanın bir yolunu aradılar.[5] Ayrıca grup, özgür (İngilizce: free) kelimesinin İngilizcede hem özgür hem de ücretsiz anlamlarına gelmesi nedeniyle oluşan belirsizliğin işletmelerin bu terimi benimsemesinde cesaret kırıcı olarak görüyordu.[6][7] Grupta bulunan kişiler arasında Christine Peterson (Foresight Enstitüsü'nden), Larry Augustin ve Jon Hall (her ikisi de Linux International'dan), Sam Ockman (Silikon Vadisi Linux Kullanıcı Grubu'ndan), Todd Anderson ve Eric Raymond vardı.[3][8] Orada bulunan Christine Petersen, "açık kaynak" terimini önerdi. Ertesi gün Linus Torvalds destek verdi. Bruce Perens gruba "açık kaynak" ticari markasını oluşturmayı ve bu web sitesini barındırmayı teklif etti ve bir hafta sonra www.opensource.org web sitesini açtı. Richard Stallman bu terimi benimsemedi.

Şubat 1998'de açık kaynak hareketinin resmileştirilmesi, genel eğitim sağlanması ve savunuculuğu için Eric Raymond ve Bruce Perens tarafından Açık Kaynak Girişimi (OSI) kuruldu.[3] 1997'de Bruce Perens öncülüğünde Debian projesi kapsamında Debian Özgür Yazılım Yönergeleri oluşturmuştu. Şubat 1998'de Açık Kaynak Girişimi'nin kurulması ile beraber söz konusu yönergede Debian referansları "açık kaynak" ile değiştirilerek ve bir miktar revize edilerek Açık Kaynak Tanımı oluşturuldu.

Tanım değiştir

Açık Kaynak Girişimi'nin (OSI) tanımı, uluslararası düzeyde birçok hükümet ve şirket tarafından standart veya fiili tanım olarak tanınmaktadır.[9] Açık Kaynak Girişimi, bir yazılım lisansını açık kaynak olarak kabul edip etmediğini belirlemek için Açık Kaynak Tanımını kullanır. Tanım, 1997 yılında Bruce Perens öncülüğünde yazılan Debian Özgür Yazılım Yönergeleri'ne dayanmaktadır. Perens, Debian Özgür Yazılım Yönergelerini oluştururken Özgür Yazılım Vakfı'nın "dört özgürlük" tanımını kullanmamıştır. Şubat 1998'de Açık Kaynak Girişimi'nin kurulması ile beraber Perens, yönergede Debian referanslarını "açık kaynak" ile değiştirilerek ve bir miktar revize edilerek Açık Kaynak Tanımı oluşturmuştur.[10]

Perens'in tanımına göre yazılımın hızlı bir şekilde gelişmesini sağlamak amacıyla herhangi bir kuruluş veya kullanıcı tarafından kullanıma veya dağıtıma çok az kısıtlama getirmesi, açık kaynağın açık bir özelliğidir.

"Açık", "özgür" ve "özgür ve açık" değiştir

Bir yazılımın açık kaynak sayılması için Açık Kaynak Tanımı'na uyması, bir özgür yazılım sayılması için Özgür Yazılım Tanımı'na uyması gerekir. Bu iki tanım pratikte birbirine çok yakın olduklarından tüm özgür yazılımlar aynı zamanda açık kaynak yazılımdır. Neredeyse tüm açık kaynak yazılımlar da özgür yazılımdır. Buna karşın açık kaynak yazılım ve özgür yazılım destekçileri arasında süregelen fikirsel bir tartışma mevcuttur. "Özgür" ve "açık kaynak" kelimeleri arasında tarafsız bir yol izlemek isteyenler ise genellikle "özgür ve açık kaynak" terimini kullanmaktadır.

Açık kaynak yazılım geliştirme değiştir

Geliştirme modeli değiştir

Açık kaynak hareketinin öncülerinden Eric Raymond, 1997 tarihli Katedral ve Pazar isimli yayınında açık kaynak yazılım geliştirme için katedral ve pazar(çarşı) adını verdiği iki modeli tarif etmekte ve pazar modelini önermektedir.[11]

Raymond, yazılımın geleneksel yöntemlerle geliştirilmesini, bireylerin veya küçük grupların dikkatli ve izole bir çalışmasıyla bir katedral inşa etmeye benzetiyor ve yazılımların pazar tarzı kullanılarak, farklı gündem ve yaklaşımlarla geliştirilmesi gerektiğini öne sürüyor. Katedral modeli olarak adlandırdığı geleneksel geliştirme modelinde ilerleme merkezi bir şekilde gerçekleşir. Roller açıkça tanımlanmıştır, projeyi yönetmekten sorumlu kişiler ve uygulamadan sorumlu kişiler bellidir. Geleneksel yazılım mühendisliği katedral modelini takip eder. Ancak pazar modeli farklıdır. Bu modelde roller açıkça tanımlanmamıştır. Pazar modeli kullanılarak geliştirilen yazılımın aşağıdaki özelliklere sahip olması beklenir.[12]

Kullanıcılara ortak geliştiriciler gibi davranılmalıdır: Kullanıcılara ortak geliştiriciler gibi davranılır ve bu nedenle yazılımın kaynak koduna erişimleri olmalıdır. Ayrıca, kullanıcıların yazılıma eklemeler, kod düzeltmeleri, hata raporları, belgeler vb. göndermeleri teşvik edilir. Daha fazla ortak geliştiriciye sahip olmak, yazılımın gelişme hızını artırır.

Erken sürümler: Yazılımın ilk sürümü, ortak geliştiricileri erken bulma şansını artırmak için mümkün olduğu kadar erken yayınlanmalıdır.

Sık entegrasyon: Proje yaşam döngüsünün sonunda çok sayıda hatanın düzeltilmesi yükünü önlemek için kod değişiklikleri mümkün olduğunca sık entegre edilmelidir (paylaşılan bir kod tabanına birleştirilmelidir). Bazı açık kaynaklı projeler, entegrasyonun otomatik olarak yapıldığı gecelik yapılara sahiptir.

Çeşitli versiyonlar: Yazılımın en az iki versiyonu olmalıdır. Daha fazla özelliğe sahip daha hatalı bir sürüm ve daha az özelliğe sahip daha kararlı bir sürüm olmalıdır. Hatalı sürüm yani geliştirme sürümü, en son özelliklerin anında kullanılmasını isteyen ve henüz kapsamlı bir şekilde test edilmemiş kodu kullanma riskini kabul etmeye istekli kullanıcılar içindir. Kullanıcılar daha sonra ortak geliştirici olarak hareket edebilir, hataları bildirebilir ve hata düzeltmeleri sağlayabilir.

Yüksek modülerleştirme: Yazılımın genel yapısı, bağımsız bileşenler üzerinde paralel geliştirmeye olanak sağlayacak şekilde modüler olmalıdır.

Dinamik karar alma yapısı: Değişen kullanıcı gereksinimlerine ve diğer faktörlere bağlı olarak stratejik kararlar veren, resmi veya resmi olmayan bir karar alma yapısına ihtiyaç vardır.

Açık kaynak geliştirme süreci, geliştiricilerin yeni özellikler eklemeleri gerekip gerekmediğini veya projelerinde bir hatanın düzeltilmesi gerekip gerekmediğini değerlendirdikleri gereksinimlerin ortaya çıkarılmasıyla başlar.[13] Bu, açık kaynak yazılım topluluğuyla hata raporlama ve izleme veya e-posta listeleri ve proje sayfaları gibi yollarla iletişim kurularak sağlanır. Daha sonra, açık kaynak yazılım geliştiricileri bir görev seçer veya bu göreve atanarak çözüm aranır. Açık kaynak yazılımda çözümler için çoğu zaman birçok farklı olası yol olduğundan, en iyi çözüm dikkatlice düşünülerek ve hatta bazen geri bildirimi ile seçilmelidir. Geliştirici daha sonra kodu geliştirmeye ve işlemeye başlar. Kod daha sonra meslektaşları tarafından test edilir ve incelenir. Geliştiriciler, sürekli entegrasyondan elde edilen geri bildirimler yoluyla kodlarını düzenleyebilir ve geliştirebilirler. Liderlik ve topluluk projenin tamamından memnun kaldıktan sonra kısmen yayınlanabilir ve kullanıcı talimatları belgelenebilir. Proje yayınlanmaya hazırsa dondurulur ve yalnızca ciddi hata düzeltmeleri veya güvenlik onarımları yapılır. Sonunda proje tamamen yayınlanır.[13]

Lisanslama değiştir

Açık kaynak lisansları, yazılım ve diğer ürünlere yönelik kaynak kodunun, planın veya tasarımın tanımlanmış şartlar ve koşullar altında kullanılmasına, değiştirilmesine ve dağıtılmasına (değişiklik yapılarak veya yapılmadan) olanak tanıyan lisans türüdür.[14][15] Bu, son kullanıcıların ve ticari şirketlerin kaynak kodu, planı veya tasarımı kendi özelleştirme, merak veya sorun giderme ihtiyaçlarına göre incelemelerine ve değiştirmelerine olanak tanır. Açık kaynak lisanslı yazılımlar çoğunlukla ücretsiz olarak mevcuttur, ancak ücretsiz olmak zorunda değildir. Kaynak kodun yalnızca kişisel kullanım için yeniden dağıtımına ve değiştirilmesine izin veren, ticari amaçlı yeniden dağıtım ve değiştirilmesine izin vermeyen lisanslar genellikle açık kaynak lisansı olarak kabul edilmezler. Özgür ve açık kaynak ürünleri iki tür lisans kategorisi kapsamında lisanslanır: Hoşgörülü lisanslar ve Copyleft lisanslar.[16]

Kaynakça değiştir

  1. ^ Understanding Open Source and Free Software Licensing. O'Reilly Media. 2008. s. 4. ISBN 9780596553951. 30 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Ocak 2021. 
  2. ^ Levine (30 Aralık 2013). "Open Collaboration for Innovation: Principles and Performance". Organization Science. 25 (5): 1414-1433. doi:10.1287/orsc.2013.0872. ISSN 1047-7039. 
  3. ^ a b c d Tiemann, Michael (19 Eylül 2006). "History of the OSI". Açık Kaynak Girişimi. 1 Ekim 2002 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Ağustos 2008. 
  4. ^ "Creating wealth with free software". Free Software Magazine. 5 Ağustos 2008. 8 Eylül 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Eylül 2008. 
  5. ^ "Producing Open Source Software – How to Run a Successful Free Software Project". O'Reilly Media. 2016. 22 Haziran 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Nisan 2016. But the problem went deeper than that. The word "free" carried with it an inescapable moral connotation: if freedom was an end in itself, it didn't matter whether free software also happened to be better, or more profitable for certain businesses in certain circumstances. Those were merely pleasant side effects of a motive that was, at its root, neither technical nor mercantile, but moral. Furthermore, the "free as in freedom" position forced a glaring inconsistency on corporations who wanted to support particular free programs in one aspect of their business, but continue marketing proprietary software in others. 
  6. ^ Raymond, Eric S. "Goodbye, "free software"; hello, "open source"". 2 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Nisan 2024. The problem with it is twofold. First, ... the term "free" is very ambiguous ... Second, the term makes a lot of corporate types nervous. 
  7. ^ Shea, Tom (23 Haziran 1983). "Free software – Free software is a junkyard of software spare parts". InfoWorld. 11 Ekim 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Şubat 2016. "In contrast to commercial software is a large and growing body of free software that exists in the public domain. Public-domain software is written by microcomputer hobbyists (also known as "hackers") many of whom are professional programmers in their work life. [...] Since everybody has access to source code, many routines have not only been used but dramatically improved by other programmers." 
  8. ^ O'Mahony, Siobhan Clare (2002). "The emergence of a new commercial actor: Community managed software projects". Stanford, CA: Stanford University: 34-42. 
  9. ^ "Uluslararası Yetki ve Tanınma". Opensource.org. 21 Nisan 2015. 23 Temmuz 2019 tarihinde kaynağından arşivlendi. 
  10. ^ "Açık Kaynak Tanımı". Açık Kaynak Girişimi. 23 Mart 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mart 2024. 
  11. ^ Raymond, Eric (2005). "The Cathedral and the Bazaar (originally published in Volume 3, Number 3, March 1998)". First Monday. ISSN 1396-0466. 
  12. ^ Robles, Gregorio (2006). "Empirical Software Engineering Research on Free/Libre/Open Source Software". 2006 22nd IEEE International Conference on Software Maintenance. ss. 347-350. ISBN 0-7695-2354-4. 17 Nisan 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Mayıs 2024. 
  13. ^ a b Napoleao, Bianca M.; Petrillo, Fabio; Halle, Sylvain (2020). "Open Source Software Development Process: A Systematic Review". 2020 IEEE 24th International Enterprise Distributed Object Computing Conference (EDOC). IEEE. s. 135–144. ISBN 978-1-7281-6473-1. 
  14. ^ "Brief Definition of Open Source Licenses". Açık Kaynak Girişimi. 31 Mart 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Nisan 2013. 
  15. ^ Popp, Dr. Karl Michael (2015). Best Practices for commercial use of open source software. Norderstedt, Germany: Books on Demand. ISBN 978-3738619096. 
  16. ^ Brock, Amanda (2023). Open Source Law, Policy and Practice. Oxford University Press. ISBN 978-0-19-886234-5.