Açık Kaynak Nedir?

Python derslerinde kullandığımız Python’un kendisi, telefonların çoğunda çalışan Android’in temelindeki Linux, Firefox tarayıcısı… Hepsinin ortak bir özelliği var: Kodlarını herkes okuyabilir. Bunlara açık kaynak yazılım deniyor.

Kısa tanım

Açık kaynak, bir yazılımın kaynak kodunun herkese açık olması ve bir lisansla insanlara bu kodu kullanma, inceleme, değiştirme ve paylaşma izni verilmesi demek. Kaynak kod, bir programın insanların okuyabildiği, programlama diliyle yazılmış hali.

Karşıtı kapalı kaynak (ya da mülk) yazılım: Programı kullanırsın ama kodunu göremez, değiştiremezsin.

Bir benzetme: yemek tarifi

Bir restoranda harika bir yemek yedin. Kapalı kaynak, o yemeği sadece restoranda yiyebilmek gibi: Tadına bakarsın ama tarifi sır. Açık kaynak ise tarifin kapıya asılması gibi: İstersen evde yaparsın, tuzunu azaltırsın, kendi versiyonunu arkadaşına verirsin. Biri tarifte bir hata bulursa herkes düzeltmesinden faydalanır.

Kendin dene: Python’un içine bak

Python açık kaynak olduğu için, kullandığın hazır fonksiyonların kodunu bilgisayarından okuyabilirsin. Mesela medyanı (ortanca değeri) hesaplayan fonksiyonun içine bakalım:

import inspect
import statistics
print(inspect.getsource(statistics.median))

Çıktının son kısmı şöyle:

    data = sorted(data)
    n = len(data)
    if n == 0:
        raise StatisticsError("no median for empty data")
    if n % 2 == 1:
        return data[n // 2]
    else:
        i = n // 2
        return (data[i - 1] + data[i]) / 2

Tanıdık geldi mi? sorted ve len Python Dersi 7’den, if/else Python Dersi 5’ten. Python’u yazan geliştiriciler de bizim derslerde öğrendiğimiz araçlarla kod yazıyor. Açık kaynağın en güzel tarafı bu: “Bu nasıl çalışıyor?” diye merak ettiğinde cevabı kendin okuyabiliyorsun.

Açık kaynak bedava mı demek?

Çoğu zaman evet ama asıl mesele bu değil. Açık kaynak dünyasında sık kullanılan bir söz var: “Bedava bira gibi değil, özgür konuşma gibi özgür.” Yani önemli olan fiyat değil, kodla ne yapabileceğin. Ücretsiz olup kodu kapalı olan birçok uygulama var; bunlar açık kaynak değil.

Açık kaynak kod kullanan şirketler de para kazanabilir: destek hizmeti satarak, bulutta barındırarak ya da açık kaynak bir projenin üstüne kendi ürününü kurarak.

Lisanslar: “Şu şartlarla kullanabilirsin”

Kodun herkese görünür olması tek başına yetmez; neye izin verildiğini lisans belirler. En sık karşılaşacağın üç lisans:

LisansKısaca
MITÇok serbest. Kodu istediğin gibi kullan, sadece lisans metnini ve telif notunu koru.
Apache 2.0MIT’e benzer serbestlik, ek olarak patent haklarıyla ilgili maddeler içerir.
GPLKodu değiştirip dağıtırsan, senin sürümün de aynı şekilde açık kaynak olmak zorunda.

GitHub’da bir projenin lisansını görmek için depodaki LICENSE dosyasına bakman yeterli. Lisansı olmayan bir kod, herkese açık görünse bile hukuken açık kaynak sayılmaz; sahibi izin vermedikçe kullanım hakları belirsiz kalır.

Neden önemli?

  • Öğrenmek için: Gerçek projelerin kodunu okumak, ders kitabından sonra gelen en iyi okul.
  • Güven için: Kod herkese açık olduğu için başkaları da inceleyip hataları ve güvenlik açıklarını bulabiliyor.
  • Hız için: Herkes tekerleği yeniden icat etmiyor. Veri biliminde kullandığımız pandas, NumPy, scikit-learn gibi kütüphanelerin hepsi açık kaynak.
  • Kariyer için: Açık kaynak bir projeye yaptığın katkılar herkese açık bir portfolyo gibi çalışır.

Nasıl katkı verilir?

Açık kaynak projeye katkı vermek için usta bir yazılımcı olman gerekmiyor. Başlamak için birkaç kolay yol:

  • Kullandığın bir projede hata bulursan, projenin GitHub sayfasında “issue” açarak bildir.
  • Belgelerdeki yazım hatalarını düzelt ya da eksik bir örneği ekle.
  • Belgelerin Türkçe çevirisine yardım et.
  • GitHub’da “good first issue” etiketli işlere bak; bunlar yeni başlayanlar için ayrılmış küçük görevler.

Bir cümlede

Açık kaynak, bir yazılımın tarifini herkese açmak demek: Herkes okuyabilir, değiştirebilir, paylaşabilir; kuralları da lisans belirler.


Hatice Özbolat | Teknoloji ve AI Rehberi sitesinden daha fazla şey keşfedin

Son gönderilerin e-postanıza gönderilmesi için abone olun.

Comments

Bir yanıt yazın