arşiv

yazılar buna göre etiketlendi; ‘hangisi?’

Python Sürümü Anketi

Salı, 22 Eyl 2009

12 Ağustos 2009 tarihinde burada bir anket başlatmıştık. Anket sorumuz, “Python’un Hangi Sürümünü Kullanıyorsunuz?” idi… Bu anketi başlatırken amacım istihza.com takipçilerinin Python sürümleri hakkındaki tercihlerini anlamaktı. Hangi Python sürümünü kullanacakları konusunda henüz bir karara varamamış olanlara da az çok yol göstereceğini hesap ediyordum bu anketin. Elbette bu anket istihza.com’un gidişatı konusunda bana bir fikir verme görevi de görecekti…

Bu arada, Python’un hangi sürümünden başlanması gerektiği konusunda, http://www.istihza.com/blog/hangisinden-baslamali-python-2x-mi-yoksa-3x-mi.html/ adresindeki günlük girdisinde şahsi bir şeyler karalamıştım. Belki ilginizi çekebilir…

Bildiğiniz gibi, istihza.com’da Python’un hem 2.x, hem de 3.x sürümü hakkında belgelendirme çalışmaları yürütülüyor. Python 3.x’in bir anda karşımıza çıkmış olmasından ötürü, uzun süredir Python 3.x belgeleriyle ilgileniyordum. Bu sebepten, Python 2.x belgelerini büyük oranda geri plana atmıştım…

Şimdi bu anketten çıkan sonuçları da göz önüne alarak istihza.com’un hangi patika üzerinden ilerleyeceğini daha kolay bir şekilde belirleyebileceğim.

Dilerseniz önce anketin bize söylediklerine kulak verelim. Ankete verilen oylara baktığımızda şu tabloyu görüyoruz:

Python 2.4 için verilen oy sayısı: 3

Python 3.0 için verilen oy sayısı: 8

Python 3.1 için verilen oy sayısı: 21

Python 2.5 için verilen oy sayısı: 27

Python 2.6 kiçin verilen oy sayısı: 66

Buna göre toplam 111 kişi 125 oy kullanmış. Tablodan görüldüğü gibi ağırlık Python 2.6 üzerinde… 2.x ve 3.x sürümlerini grupladığımızda, 2.x sürümlerinin 3.x sürümlerine kıyasla sahip oldukları ağırlık kendini daha fazla hissettiriyor… Demek ki Python 3.x sürümlerine geçiş henüz epey alt seviyelerde seyrediyor. Bunda muhtemelen GNU/Linux dağıtımlarının resmi olarak hâlâ Python 2.x sürümlerini destekliyor olmasının da payı büyüktür. Python 3.x paketleri henüz sadece bir-iki GNU/Linux dağıtımında var. Çoğu GNU/Linux dağıtımı Python’un ya 2.5 ya da 2.6 sürümlerini destekliyor resmi olarak. Ancak bildiğim kadarıyla Python’un 2.4 sürümüyle gelen dağıtım kalmadı…Tabii üçüncü parti modüllerin henüz Python 3.x’e aktarılmamış olması da, insanların Python 2.x’te kalmalarına yol açan çok önemle etkenlerden bir tanesi…

Anket sonucu aslında tam da beklendiği gibi çıktı. Şu anda bütün dünyada yaygın olarak kullanılan Python sürümleri, 2.x numaralı olanlar. Henüz Python 3.x’e ciddi bir geçiş söz konusu değil. Bu durum kendini belge kaynaklarında da gösteriyor. Gerek internet üzerinde, gerekse basılı olarak bulabileceğiniz kaynakların yüzde 90′ından fazlası Python’un 2.x sürümlerini belgelendiriyor. Dolayısıyla Python’a 3.x sürümleriyle başlamayı planlayanlar için zaten hareket alanı epey dar… Neyse… Dediğim gibi, bu anketin sonuçları elbette istihza.com‘un yönelimi üzerinde de belirleyici rol oynayacak. Zaten OpenOffice ve Python adlı makaleyi yayımlayarak ibreyi Python 2.x’e çevirmiştim. Bundan sonra belli bir süre boyunca Python 3.x’ten ziyade Python 2.x bölümünün iyileştirilmesine odaklanacağım. Python 2.x bölümünü incelerken gördüğüm aksaklıkları düzeltmenin yanısıra, bu bölüme yeni konular da ekleyeceğim.

Bu arada, anketi de kapatmıyorum. Bu ankete oy vermeye devam edebilirsiniz. Bu sayede Python 3.x’e doğru olan dönüşümün seyrini de izleyebileceğimizi ümit ediyorum.

Sevgiler,

istihza

admin Python , , , , ,

Hangisinden Başlamalı? Python 2.x mi yoksa 3.x mi?

Salı, 21 Nis 2009

Sıkça sorulan bir soru olduğu için, bu yazıda “Python’u öğrenmeye hangi sürümle başlamalıyım?” sorusuna genel bir cevap vermeye çalışacağım.

Hepimizin bildiği gibi, Python 3.x sürümleri Python’un 2.x sürümleriyle uyumlu değil. Yani Python 2.x ile yazılmış bir program, Python’un 3.x sürümlerinde çalışmayacaktır. Bu söylediğimin tersi de geçerlidir: Buna göre, Python’un 3.x sürümlerinden biriyle yazdığınız bir programın Python’un 2.x sürümlerinde çalışmasını beklememelisiniz.

Diyelim ki Python programlama dilini öğrenmeye karar verdiniz. Bu dile sıfırdan başlayacak biri olarak acaba hangisini seçmeniz gerekir? Eski sürümü mü? Yoksa yeni sürümü mü?

Python’un 2.x sürümleri çok uzun süredir kullanılıyor. Dolayısıyla yıllar içinde üretilmiş Python programları, üçüncü parti modüller ve belge kaynakları hep 2.x sürümleri temel alınarak hazırlanmış durumda. Henüz ortada Python 3.x’le yazılmış kayda değer bir program olmadığı gibi, hemen her Python programında ihtiyaç duyulan üçüncü parti modüllerin neredeyse hiçbiri henüz Python 3.x’e aktarılmış da değil.

Duruma GNU/Linux dağıtımları açısından bakacak olursak, dağıtımlarda ana Python paketlerinin hep 2.x olduğunu görüyoruz… Yani konsolda “python” komutunu verdiğinizde karşınıza çıkacak Python sürümü 2.x olacaktır (Genellikle 2.5.2 sürümü…)

Python 3.x paketleri henüz dağıtımların depolarında da yer almıyor. Şu anda Python 3.x paketlerini kullanıcılarına sunduğunu bildiğim tek dağıtım Ubuntu Jaunty Jackalope. (Bu dağıtımın kararlı sürümü 23 Nisan’da sunuculardaki yerini alacak).

Python 3.x’i öğrenebilmek için gereken belge kaynakları da henüz kararlı bir duruma ulaşmış değil. Bu konudaki temel başvuru kaynağımız olan resmi belgeler sürekli olarak güncelleniyor. Mesela bu belge en son güncellemeyi bugün görmüş…

Eğer Python programlama dilini öğrenmeye Python 3.x ile başlamak istiyorum diyorsanız, İngilizce bilmek zorundasınız. Çünkü etraftaki üç-beş Python 3.x belgesinin tamamına yakını İngilizce. Üstelik bu kaynaklar da henüz 2.x belgeleriyle kıyas kabul etmeyecek derecede eksik. İngilizce bilmeyen arkadaşlarım için ben naçizane istihza.com’da Türkçe belgelendirme çalışmalarını yürütüyorum. Python 3.x hakkında bilgi edinmek isteyen arkadaşlarım istihza.com‘daki Python 3.x sayfalarına göz gezdirebilir…

Python kullanıcılarını ilgilendiren önemli bir konu da arayüz tasarımı… Python’la arayüz tasarlamak istiyorsanız ve illa Python 3.x kullanacaksanız şu an için elinizdeki tek seçenek Tkinter olacaktır. Ancak Tkinter ile arayüz tasarlarken mutlaka gereksinim duyacağınız PIL (python-imaging) modülü de henüz Python 3.x’e aktarılmış değil. Dolayısıyla Tkinter ile hazırladığınız programlara resim eklemek isterseniz büyük sıkıntı yaşarsınız.

Tkinter’e iyi bir alternatif olarak düşünülebilecek olan wxPython’un durumu ise biraz karanlık… Bu arayüz takımına ait kullanıcı listelerinde geliştiricisinin söylediğine göre, wxPython’un Python 3.x’e taşınabilmesi için henüz doğru dürüst bir hazırlık yapılmış değil…

Sözün özü, Python programlama dilini Python 3.x ile öğrenmek isteyenler kendilerini hareket imkanı kısıtlı bir ortamda bulabilir…

“Python 2.x mi, yoksa 3.x mi?” sorusuna cevap bulabilmek için elbette Python’un baş geliştiricisi Guido Van Rossum’un bu konudaki fikirlerine de kulak vermek gerekir. Kendi sitesinde, http://www.artima.com/forums/threaded.jsp?forum=106&thread=211200 adresinde belirttiğine göre, Python 3.x’i öğrenmeye başlamak için daha 2 yıl beklemek gerekiyor. Guido Van Rossum’un bu yorumu 28 Temmuz 2007 tarihinde yaptığını düşünürsek, 2 yılın dolmasına pek fazla vakit kalmamış gibi görünüyor… Ama şu anki duruma bakılacak olursa, bu “2 yıl” tahminini, yukarıda belirttiğim sebeplerden ötürü birazcık daha uzatmakta fayda var… O yazıda Van Rossum Python öğrenmek isteyenlere 2.6 sürümüyle başlamalarını tavsiye ediyor. Benim fikrim de açıkçası bu yönde. Python’un 2.6 sürümünü hakkıyla öğrenen bir kişi Python 3.x’e uyum sağlamakta zorluk çekmeyecektir, çünkü Python’un 3.x sürümüne ait pek çok özellik Python 2.6 sürümünde de çalışıyor. Ayrıca Python 2.6 ile program yazarken, eğer Python 3.x ile uyumlu olmayan bir kod yazarsanız, Python 2.6, yazdığınız bu kodun 3.x’te çalışmayacağı konusunda sizi uyaracak, bu da Python 3.x’e uyum sağlama açısından size büyük bir kolaylık sağlayacaktır.

Velhasıl-ı kelam, Python’un 2.x sürümleri daha uzun bir süre bizimle beraber olmaya devam edecek. Zaten Python’un resmi belgelerinden de anlaşılacağı gibi, Python 3.x sürümlerinin geliştirilmesi devam ederken, Python 2.x de uzun bir süre destek görmeye ve geliştiştirilmeye devam edecek… Dolayısıyla eğer Python öğrenmeye yeni başlayacaksanız, Python’u öğrenmeye 2.6 sürümüyle başlamalı, bu arada da Python 3.x’teki gelişmelere de kulak kabartmalısınız… Hem zaten eski kodları anlayabilmenin, Python deneyiminiz açısından önemli bir artı olduğunu rahatlıkla söyleyebilirim.

admin Python , ,