Pdf versiyon

Open Source Proje Geliştirme

Open Source Proje Geliştirmenin Tarihçesi

Open Source (Açık Kaynak Kod Yazılım) uygulamanın kaynak kodlarının incelenebilmesi,değiştirilebilmesi ve üçüncü kişilere ücretli veya ücretsiz olarak dağıtılabilmesine olanak sağlayan bir yazılım modelidir. Geleneksel kapalı kaynak kodlu yazılım modelinde yazılımı üreten firmanın hakları telif hakları ile koruma altına alınarak, yazılımı satın almış olan kişilere kullanma hakkı verir; fakat yazılımda değişiklik yapmasına veya dağıtılmasına izin verilmez.

Açık kaynak kodlu yazılım ilk kez 1970 yılında Richard Stallman tarafından Unix işletim sisteminin açık kaynak kodlu sürümünün yayınlanması ile başlamıştır. Richard Stallman ABD ‘li özgür yazılım aktivisti, sistem uzmanı ve yazılım geliştiricisidir. GNU Projesi ve Özgür Yazılım Vakfının kurucusudur. Eylül 1983’de, Unix benzeri işletim sistemi oluşturmak amacıyla işletim sistemi çekirdeği(kernel) hariç bir işletim sistemi için gerekli olan tüm yazılımları içeren özgür yazılım koleksiyonu olan GNU projesinin hayata geçmesini sağlanmıştır. Richard Stallman’a göre yazılım kodlarının kapalı olması birçok soruna yol açmaktaydı. Bir firma açık kaynak kodlu yazılımı almakta ve bu uygulama üzerinde değişiklik ve güncellemeler yapıp kaynak kodunu kapatarak ticari amaçla kullanmaktaydı. Bu sorun nedeniyle zamanla tüm yazılımların kapalı kaynak kod haline gelebileceğini savunan Stallman açık kaynak kodlu yazılımın en önemli savunucularından olmuştur.

Kaynak kod üzerinde düzenleme yapmaya izin veren bir lisansa sahip olan bu yazılım geliştirme modeli oldukça ilgi görmüştür ve bu sebeple yaygınlaşmasına olanak sağlanmıştır. Open Source Project kavramı ise ilk defa Kaliforniya da katılımcılarının büyük bir kısmının Linux geliştiricisi olduğu bir toplantıda kullanılmıştır.1998 yılında Netscape firması Microsoft’un Internet Explorer web tarayıcısına karşı pazarda üstünlük sağlamak adına ilgili web tarayıcısını açık kaynak kodlu ve ücretsiz olarak yayınlanmaya başlamıştır. Bu olayın açık kaynak kodlu yazılım geliştirme tarihinde önemli bir yeri olduğu ve yaygınlaşmasında da önemli bir rol oynadığı söylenebilir.

Open Source Proje Geliştirmenin Gücü ve yaygınlaşmasının nedenleri

1 - )Geniş Topluluklar Tarafından Desteklenmesi

Açık kaynaklı kodlu yazılımların en büyük avantajlardan bir tanesi topluluklar tarafından desteklenerek geliştirilebilmesi ve aynı zamanda bilgi paylaşımına açık olmasıdır.Böylelikle projelerin devamlılıkları da sağlanabilmektedir. Açık kaynaklı yazılımlar için devamlılık en önemli konulardan biridir ve uygulamaları kullanan kişiler kullanan kişi sayısına, geliştiren kişilere bakarak kullanacakları uygulamalara karar verebilmektedir.

2 - ) Güvenirlik ve şeffaflık

Open Source yazılımların en önemli özelliklerinden bir tanesi de şeffaf olmalarıdır. Kaynak kodlar açık olduğundan backdoor(arka kapı) gibi açıklar olduğunda kolayca tespit edilebilmektedir.

3 - ) Maliyet ve Hız Kazancı Sağlaması

Elbette açık kaynak kodlu yazılımlar mutlaka ücretsiz olmalıdır gibi bir kural yok fakat lisans ücreti olmayan çok fazla açık kaynaklı kod alternatifi bulunabilmektedir böylece firmalar lisans maliyetini azaltabilmekte veya ortadan kaldırabilmektedir. Versiyon güncellemesi ve bakım gibi konuların maliyetleri topluluklar veya açık kaynak kodlu yazılımı yapan kişiler tarafından yapılacak düzeltme veya güncellemeler ile yapılabilmektedir.

4 - )Yazılımı Üreten Firmalar için uygulamaların geniş kullanıcı kitlesi tarafından test edilmesi

Yazılımı üreten firmalar geniş bir kullanıcı kitlesine erişebilir ve hatalar daha hızlı ve kolay düzeltilebilir.Yapılması gereken geliştirmeler topluluklar tarafından yapılabilir ve böylece maliyet azaltılması ve hız kazanımı sağlanabilir.

5 - ) Esneklik

Yazılımı üreten firmaya bağımlılık azalır. İstenilen geliştirme kullanıcı firma tarafından yapılabilir. Özellikle hızlı çözüm gerektiren önemli uygulamalar için bu durum daha da önem kazanabilmektedir.

6 - ) Rekabet’in sektöre getireceği faydalar

Kapalı kod olarak geliştirilen ücretli uygulamaların açık kaynak kodlar ile rekabet edebilmeleri için daha kaliteli ve esnek olmaları gerekir ve böylece yazılım sektöründeki genel kalite artmış olur.

Open Source Lisanslar

Lisans dosyaları standartlaştırılmış ve yazılımın projelerde nasıl kullanılabileceğini anlatan temel dokümanlardır ve hukuki belirleyicilikleri vardır. Açık kaynak kodlu lisanslar bürokratik engellere takılmadan bir projede değişiklik yapabilmeyi ve paylaşabilmeyi sağlamaktadır. Aynı zamanda yazılımı geliştiren kişilerin hakları da lisanslar sayesinde savunulabilmektedir. Kapalı kaynak kodlu yazılımlarda lisanslar daha çok bu yazılımda neler yapılamayacağını söyler açık kaynaklı kod lisansları ise daha çok neler yapılabileceğini söylemektedir.

Açık kaynak kodlu lisanslama seçeneklerinden yaygın olarak kullanılanlarına bakacak olursak.

MIT

En yoğun kullanılan açık kaynak kodlu lisanslardandır. 1988 yılında Massachusetts Institute of Technology (MIT) tarafından hazırlanmıştır.

Yazılımda kopyalama, birleştirme, yayımlama, kullanma, değiştirme, alt lisanslama, kopyasını satma ve ticaretini yapma izinlerini vermektedir. Oldukça esnek izinlere sahip olması nedeniyle oldukça yoğun kullanılmaktadır. Çok fazla işleme izin vermekle birlikte yazılımı üreten kişiyi sorumlu tutmayacak şekilde hazırlanmıştır.

GPL (GNU General Public Licence)

GPL FSF (Free Software Foundation) tarafından geliştirilen bir lisanstır. En fazla kullanıldığı platformlardan bir tanesi Linux işletim sistemidir. Açık kaynak kod yazılım modelinin gelişmesinde önemli bir rolü olan Richard Stallman tarafından hazırlanmıştır. GNU General Public Licence uzun ismi ile de kullanılabilmektedir.

MIT lisansına göre biraz daha sıkı kuralları olması nedeniyle MIT lisansı çıkana kadar en yoğun kullanılan lisanlardan bir tanesiydi. MIT lisansına göre daha muhafazakar olduğunu söyleyebiliriz.

Yazılım üzerinde kopyalama, dağıtım yapabilme, değişiklik yapabilme izinleri verilmektedir. Bu özellikleri ile MIT lisansına benzemektedir. Farklı olarak düzenleme yapılan ya da kullanılan yazılımın her yeni versiyonunda bu lisansın kullanılması zorunludur.

Apache Lisansı 2

Kullanılan yazılım için dağıtma, değiştirme, özel kullanım ve ticari kullanım haklarını vermektedir. Ayrıca bu lisans ile birlikte yazılıma katkıda bulunanlara patent alabilme hakkı verilmektedir.

Lisansın bir kopyası GPL lisansında olduğu gibi yazılımın yeni versiyonunda mutlaka bulunmalıdır. Yazılımda yapılan değişiklikler belirtilmelidir. Oluşacak olan sorunlardan yazılımı yazan kişiler sorumlu tutulamaz.

Creative Commons

Yaygın olarak kullanılmamaktadır. Yazılımı yapan kişi eklenmelidir. Kopyalama ve yayınlama izni verilmektedir.Ticari kullanıma izin verilmemektedir. Yazılım sadece orjinal hali ile kullanılabilir ve değişiklik yapılmasına izin verilmez.

Mozilla Public Licence 2

Yazılım üzerinde değişiklik yapma, dağıtma, ticari kullanım, özel kullanım izinleri verilmektedir.Yazılıma katkıda bulunulması durumda patent kullanımı izni verilmektedir.Yazılımın lisansının bir kopyası kullanılan yerde bulunmalıdır. Yazılımda yapılan değişiklikler belirtilmelidir. Yeni versiyon aynı ve uyumlu lisans ile lisanslanmalıdır.Yazılımın kullanılmasından dolayı oluşacak sorunlardan yazılımı yazan kişi sorumlu değildir.

CopyLeft Nedir

Copyleft terimi kısaca copyright teriminin tam zıttıdır. Copyleft bir yazılımın özgür yazılım haline getirilmesi ve yazılımın farklı kişiler tarafından değiştirilmiş veya genişletilmiş versiyonlarının da özgür yazılım haline getirilmesini sağlamak için kullanılan bir yöntemdir. Bir yazılımı özgür hale getirebilmek için telif haklarının ortadan kalkması gerekmektedir. Ancak bu durumda bazen bu uygulamalar üzerinde geliştirme veya değişiklik yapan kişiler yeni versiyonu özel mülk olarak değiştirebilecektir ve ticarete dönüştürebilecektir. Aradaki insanların yazılımı özgürce kullanabilme hakları ortadan kalkmış olacaktır. Copyleft uygulamada değişiklik yapılarak ya da yapılmadan dağıtılması durumunda değişiklik yapabilme özgürlüğünün aktarılması gerektiğini söyler.

Nasıl iyi bir “Open Source Citizen” oluruz

İyi bir Open Source citizen olabilmek için açık kaynak kodlu yazılımın paylaşılması ilk adımdır fakat yeterli değildir. İyi bir open source citizen olabilmek için yapılması gerekenleri özetleyecek olursak:

1 - )Süreklilik (Bakım ve Destek)

Açık kaynak olarak paylaşılan uygulamaların atıl kalmaması ve sorumluklarının üstlenilerek gerekli bakım ve geliştirmelerin düzenli bir şekilde yapılması uygulamaya güvenerek kullanan veya katkıda bulunan insanların emeklerinin boşuna gitmemesi firmaların zarara uğramaması ve açık kaynak kod ile bir çok avantajın yok olmaması adına oldukça önemlidir.

Open Source Kod (Açık Kaynak Yazılım) kaynak kodu herkese açık olan yazılımdır.Open Source uygulama kullanımda en çok tereddüt edilen nokta uygulamanın desteğinin ortadan kalkabilme ihitimalidir.O nedenle sürdürülebilirlik açık kaynak kod kullanıcıları için ve iyi bir open source citizen olabilmek için en önemli konulardan bir tanesidir.

2 - ) Hataların iletilmesi

Açık kaynak olarak kullanılan uygulamalarda rastlanan hataların bildirilmesi oldukça önemlidir.Böylece uygulamayı kullanacak kişiler bu riski bilerek önlem alabilecek ya da farklı kişiler tarafından sorun giderilebilecektir. Hataların düzgün iletilmesi de oldukça önemlidir. İletilen hatanın standart bir formatta ve hataya bakan kişilerin rahatça anlayabileceği şekilde olması önemlidir. Aksi takdirde hem hataya bakan kişilerin gereksiz yere vakti alınmakta hem de sorunun çözümü uzayabilmektedir.

3 - )Katılımcı olmak

Açık kaynaklı kod kullanımında hem kullanılan uygulamanın gelişimine katkıda bulunmak, hem yaşanılan zorluk, yapılan çözümlerin paylaşılması gibi kritik konularda katılımcı olmak oldukça önemlidir.

4 - )Test

Uygulamalar paylaşılmadan önce test edilerek açık kaynak olarak paylaşılmalı ve geliştirmeler test edilmelidir. Aksi durumda bu sorundan çok fazla kişi mağdur olabilecektir. Açık kaynaklı kodda yapılacak bir hatanın çok kişiyi etkileyebileceği unutulmamalıdır.

5 - )Yazılım kullanıcılarının görüşlerini dikkate almak

Açık kaynak olarak paylaşılan uygulamalar için yapılacak geliştirmelerde kullanıcıların istekleri dikkate alınmalıdır. Geliştirmeler ve düzeltmeler önem sırasına göre önceliklendirilmelidir.

Open Source Projelere Hizmet Veren Servisler

Açık kaynak kodlu yazılımlar için kodların paylaşımı, hataların iletilebilmesi , versiyon takibi, code review yapılabilmesi gibi konular oldukça önemlidir. Bu anlamda açık kaynak kodlu yazılım paylaşan kişilere ve bu yazılıma katkıda bulunan kişilere çalışma imkanı sağlayan geliştirme platformları bulunmaktadır. Bu platformalara GitHub ve GitLab örnek verilebilir.

Github

Açık kaynaklı projeler için ücretsiz olarak hizmet vermektedir. Ücretli olarak özel repo hizmeti de vermektedir. Sürüm kontrol sistemi olarak git kullanılmaktadır. Kaynak kodların host edilmesi ,review yapılabilmesi ve proje yönetimi yapılabilmektedir. Mevcut durumda yaklaşık yaklaşık 31 milyon yazılımcıya hizmet vermekte olan oldukça büyük bir yazılım geliştirme platformudur.

GitLab

Github ta olduğu gibi repository yönetimi için git kullanmaktadır. Proje planlaması DevOps yaşam döngüsü yönetimi ve monitoring gibi bir çok özelliği bulunmaktadır.En önemli avantajlarından bir tanesi DevOps yaşam döngüsünün hızlı olmasıdır.

Dünyada Open Source Uygulamaları

Açık kaynak kodlu yazılımların ülkeler için en önemli faydaları tasarruf diyebiliriz. Çok büyük harcamalar gerektirebilecek olan işletim sistemi ve yazılımlar yerine açık kaynak kodlu yazılım kullanmak özel ve kamu firmaları için ciddi bir tasarruf sağlayabilmektedir.

Avrupa Birliği 6. Çerçeve programı kapsamında Avusturya, Belçika, Çek Cumhuriyeti, Danimarka, Fransa, Almanya, Yunanistan, İtalya, Hollanda, İspanya, İsveç ve İngiltere’ nin Açık kaynaklı kod kullanım oranları incelenmiş ve Kamu Kurumlarında %49 Açık kaynak Kodlu yazılım kullanıldığı ve %20 oranında da Linux işletim sistemini test ettikleri ortaya çıkmıştır.

Çin Halk Cumhuriyeti ve Hong Kong hükümeti kamu kurumalarında Linux kullanımını yaygınlaştırmıştır. İtalyada tüm öğrencilerin bilgisayar sahibi olmasını hedefleyen bir kampanya ile 11 milyon adet Linux tabanlı bilgisayarın dağıtılması hedeflenmiştir.Güney Kore de kamu kurumlarında ofis uygulaması olarak en çok Hancom Office uygulaması kullanılmaktadır. Bu uygulama sayesinde 26 milyon dolar tasarruf sağlanması hedeflenmektedir.

Almanyada 28 Mayıs 2003 tarihinde alınan bir karar ile aşamalı olarak açık kaynaklı kodlu uygulamalar kullanılmaya başlanmıştır ve %40 oranında ilk etapta tasarruf sağlanmıştır.

Dünya Bankası, Avrupa Birliği ve UNESCO gibi önemli kuruluşlar tasarruf ve güvenlik nedeniyle açık kaynak kod yazılımını desteklemektedir.

Türkiyede Open Source Uygulamaları

Dünyada açık kaynaklı yazılımın artması ile birlikte ülkemizde de kullanımı ve geliştirilmesi her geçen gün artmaktadır. Ülkemizde açık kaynak kodlu ulusal işletim sistemi geliştirilmesi çalışmaları Ulusal Elektronik ve Kriptoloji Araştırma Enstitisü (UEKAE) tarafından başlatılmıştır. Yapılan incelemeler sonunda GPL lisansı kullanan bir işletim sistemi oluşturulmasına karar verilmiştir. Bu çalışmalar sonucunda 2005 yılında Pardus işletim sisteminin ilk versiyonu yayınlanmıştır. Pilot uygulamala olarak Milli Savunma Bakanlığı Asker Alma daire başkanlığında kullanılmasına karar verilmiştir.

Doğuş Teknololoji’de uygulanabilecek veya uyarlanabilecek alan ve potansiyel faydalar

Open Source yazılımların kullanılmasının şirketlere mali anlamda ciddi katkıları bulunmaktadır. Doğuş Teknoloji içerisinde kullandığımız ve yüksek lisans maliyeti ödenmesine neden olan bir çok ürünün open source ve lisans ücreti ödenmesi gerekmeyen alternatifleri mevcuttur. Arge süreci ile birlikte inovasyon projeleri de oluşmaya başladı ve özellikle start up projeler için maliyetlerin azalması oldukça önemli.

Ücretsiz open source yazılımlar kullanıldığında hem yazılım geliştirme platformu hem de kullanılan 3 rd party open source projeler ile satın alma vb bürokratik süreçlere girmeden daha hızlı bir şekilde uygulamalar canlıya alınabilir. Özellikle startup vb. girişimlerin hızlı devreye alınabilmesi o ürünün rakipleri ile rekabet edebilmesi için önemli olmaktadır.

Kullanılabilecek open source projelere örnek verecek olursak

İşletim Sistemleri

Linux, Ubuntu

Ofis Programları

Open Office, LibreOffice, Apache OpenOffice, NeoOffice, GoogleDocs, KOffice

Versiyon Kontrol

Git

Code Editor

Visual Studio Code, Eclipse

Metin Editor

Notepad ++

Bir diğer önemli konuda açık kaynaklı olarak paylaşılan uygulamalar geniş kitlelere ulaşabildiğinden şirket için prestij sağlayacak bir unsur olabilir.Doğuş teknoloji çok farklı sektörlere yönelik kapsamlı uygulamalar geliştirmekte ve bu geliştirmeler yapılırken ürün geliştirme gözü ile bakılarak farklı firmaların da kullanabileceği bir çok kullanılabilir ürün ortaya çıkmaktadır. Bu ürünlerin açık kaynak olarak paylaşılması ile diğer firmalara ve ülke ekonomisine de katkı sağlanabilecektir.

Açık kaynaklı yazılımların kullanılması ile sağlanacak farklı bir avantaj ise bu uygulamalarda yapılacak bakım düzeltme ve geliştirmelerin, versiyon güncellemelerin ücretsiz olmasıdır. Açık kaynaklı kodlar çok fazla kişi tarafından düzeltildiğinden veya güncellendiğinden daha sık yeni özellik eklenebilmektedir. Böylece hem daha hızlı isteklere yanıt verebilmiş oluruz hem de test edilmiş ve onaydan geçmiş ve birçok insanın deneyimlediği bir uygulamayı hızlıca devreye alabilmiş oluruz.

Open source proje kullanımı ayrıca şeffaf olması nedeniyle daha güvenli olacaktır. Doğuş teknoloji olarak müşterilerimize sunduğumuz uygulamaların belirli güvenlik kriterlerini sağlıyor olması önemlidir .Açık kaynak kodlu uygulamalarda backdoor gibi uygulamalar kolayca fark edilebilmektedir.

Doğuş teknoloji bünyesinde geliştirilen uygulamaların open source olarak paylaşılmasının o yazılımın gelişmesi adına çok fazla katkısı olabilecektir. Open Source yazılımlar Github gibi bir açık kaynak platformda paylaşıldığında çok fazla insan tarafından incelenebilmektedir. Bu insanlar tarafından ürünün kullanılması veya incelenmesi ile sorunlar belkide henüz daha müşteri tarafından deneyimlenmeden tespit edilip çözülebilecektir.Ayrıca diğer yazılımcılar tarafından uygulamada yapılacak düzeltmelerde ek bir maliyet harcamadan uygulamada düzeltilmiş olacaktır.

Bir önemli katkıda github gibi platformlarda paylaşılan uygulamalar için topluluklardan gelecek öneriler ile kazanılabilecek önemli know how bilgisidir.Yazılımın geniş kitleler tarafından kabul görebilmesi için ve diğer rakipleri ile rekabet edecek yetkinliğe sahip olabilmesi için güncel kalabilmesi , mümkün olan en az hatayla paylaşılması ve güncel teknolojileri takip etmesi önem kazanacağından yazılım geliştiricileri için ciddi bir deneyim kazanımına ve güncel teknolojileri takip edebilmelerine ve uygulayabilmelerine neden olacaktır.

Kaynakça

  1. https://opensource.com/

  2. https://startuphukuku.com/acik-kaynak-yazilimlar-nedir-open-source/

  3. https://startuphukuku.com/acik-kaynak-yazilimlar-nedir-open-source/

  4. http://dergi.kmu.edu.tr/userfiles/file/mayis2007/12.pdf

  5. https://tldrlegal.com/

  6. https://gist.github.com/nolanlawson/d5334678848aaf11ba

  7. https://blogs.vmware.com/opensource/2017/10/12/good-open-source-citizen/

  8. https://bidb.marmara.edu.tr/en/hizmetler/acik-kaynak-kodlu-yazilimlar/

  9. https://www.yusufaytas.com/acik-kaynak-lisanslari/

  10. http://ozgurlisanslar.org.tr/