Python'ın Tarihi

ABC kadar kolay

Papyros üzerinde Python

Alfabe ve programlama dili Python'ın ortak noktası nedir? Doğru, her ikisi de ABC ile başlar. Python bağlamında ABC'den bahsediyorsak, ABC programlama dilinin kastedildiği açıktır. ABC, Hollanda, Amsterdam'da CWI'de (Centrum Wiskunde & Informatica) geliştirilen genel amaçlı bir programlama dili ve programlama ortamıdır. ABC'nin en büyük başarısı Python'un tasarımını etkilemek olmuştur.

Python 1980'lerin sonunda kavramsallaştırıldı. Guido van Rossum, o zaman CWI'de dağıtılmış bir işletim sistemi olan Amoeba adlı bir projede çalıştı. Bill Venners ile yaptığı röportajda* Guido van Rossum şunları söyledi: "1980'lerin başında Centrum voor Wiskunde en Informatica'da (CWI) ABC adlı bir dil inşa eden bir ekipte uygulayıcı olarak çalıştım. İnsanların ABC'nin Python üzerindeki etkisini kadar iyi bildiğini bilmiyorum . ABC'nin etkisinden bahsetmeye çalışıyorum çünkü bu proje sırasında öğrendiğim her şeye ve üzerinde çalışan insanlara borçluyum. "

Daha sonra aynı röportajda Guido van Rossum şöyle devam etti: "ABC ile ilgili tüm deneyimlerimi ve bazı hayal kırıklıklarımı hatırladım. ABC'nin daha iyi özelliklerine sahip, ama problemleri olmayan basit bir kodlama dili tasarlamaya karar verdim. Basit bir sanal makine, basit bir ayrıştırıcı ve basit bir çalışma zamanı hazırladım, beğendiğim çeşitli ABC parçalarının kendi versiyonunu yaptım. Basit bir sözdizimi oluşturdum, süslü parantez veya başla bitir
blokları yerine gruplamak için girintilemeyi kullandım ve güçlü veri çeşitleri geliştirdim: bir komut tablosu (veya dediğimiz gibi sözlük), bir liste, harf dizinleri (string) ve sayılar. "

Komedi, Yılan veya Programlama Dili

Peki ya "Python" ismi? Çoğu insan yılanları düşünür ve logo bile iki yılanı tasvir eder, ancak bunun kökeni İngiliz mizahıdır. Python'un yaratıcısı Guido van Rossum, 1996'da programlama dilinin adının kökeni hakkında yazdı** : "Altı yıl önce, Aralık 1989'da, beni meşgul edecek bir 'hobi' programlama projesi arıyordum Ofisim ... kapalı olurdu, ama ev bilgisayarım vardı ve elimde çok fazla bir şey yoktu. Son zamanlarda düşündüğüm Unix / C hackerlarına hitap edecek, ve ABC'nin torunu olacak yeni senaryo dili için bir yorumlayıcı (interpreter) yazmaya karar verdim. Biraz riayetsiz bir ruh hali içinde olduğum (ve de Monty Python'un Uçan Sirki'nin büyük bir hayranı) için proje için çalışma başlığı olarak Python'u seçtim. "

Python'un Zen'i

Güzel, çirkinden iyidir.
Açık, gizliden iyidir.
Basit, karmaşıktan iyidir.
Karmaşık karmaşık olmaktan iyidir.
Düz olan iç içe geçmişten iyidir.
Aralıklı olan sık olandan iyidir.
Okunabilirlik önemlidir.
Özel durumlar, kuralları çiğneyecek kadar özel değildir.
Uygulanabilirlik saflığı yense de
Hatalar asla sessizce geçiştirilmemelidir.
Açıkça yapılmadıysa.
Belirsizlik karşısında, tahmin yürütmenin cazibesinden kaçın.
Bir şeyi yapmanın -tercihen sadece- bir tek belirgin yolu olmalıdır.
Tabii Hollandalı değilseniz bu yol ilk başta belirgin olmayabilir.
Şimdi hiçbir zamandan daha iyidir.
Asla çoğu zaman *hemen* şimdiden daha iyi olsa da.
Açıklanması zor olan uygulama, kötü fikirdir.
Açıklanması kolay olan uygulama, iyi fikir olabilir.
Ad uzayı harika bir fikir - onlardan daha çok yapalım! (Çeviren: İlker Arslan, (2019), sf. 21)*


Python'un Geliştirme Adımları

Guido Van Rossum, Python kodunun ilk sürümünü (sürüm 0.9.0) Şubat 1991'de alt.sources'da yayınladı. Bu sürümde zaten hata işleme, fonksiyonlar ve list, dict, str ve benzeri temel veri türleri vardı. Ayrıca nesne yönelimliydi ve bir modül sistemi vardı.

Python 1.0 Ocak 1994'te piyasaya sürüldü. Bu sürümdeki en önemli yeni özellikler, Guido Van Rossum'un hiç sevmediği lambda, harita, filtre ve azaltma işlevsel programlama araçlarıydı.

Altı buçuk yıl sonra Ekim 2000'de Python 2.0 tanıtıldı. Bu sürüm, liste kavrayışlarını, bir çöp toplayıcısını içeriyordu ve unicode'u destekliyordu.

Python, Python 3.0 ("Python 3000" ve "Py3K" olarak da bilinir) olarak bir sonraki büyük sürümden önce 2.x sürümlerinde 8 yıl daha gelişti. Python 3, Python 2.x ile geriye doğru uyumlu değildir. Python 3'teki vurgu, yinelenen programlama yapılarının ve modüllerinin kaldırılması üzerineydi, bu nedenle Python Zen'in 13. yasasını yerine getiriyor veya yerine getiriyordu: "Bir şeyi yapmanın -tercihen sadece- bir tek belirgin yolu olmalıdır."

Python 3.0'daki bazı değişiklikler:

 Print artık bir fonksiyondur
 Listeler yerine görünümler ve yineleyiciler vardır
 Sıralama karşılaştırmalarının kuralları basitleştirildi. Örneğin. heterojen bir liste sıralanamaz, çünkü listenin tüm unsurları birbiriyle karşılaştırılabilir olmalıdır.
 Yalnızca bir tamsayı türü kalmıştır, yani int. long da artık int. olmuştur.
 İki tamsayının bölünmesi bir tamsayı yerine bir ondalık sayı ile sonuçlanır. "//", "eski" çalışma biçimini devam  ettirmek için kullanılabilir.
 Unicode'a karşı 8 bit yerine, metine karşı veri benimsenmiştir.



Venners, B. (2003). ABC's Influence on Python. Retrieved from https://www.artima.com/intv/python.html
** O'Reilly & Lutz, M. (2003)"Programming Python" (1st ed.)
Arslan, İ. (2019). Python ile Veri Bilimi. Pusula.