01.2. Ortam Kurulumu

Python, Windows, Linux ve Mac OS dahil olmak üzere çok çeşitli platformlara kuruluma sahiptir. Öncelikle www.python.org adresinden işletim sisteminiz uygun olan kurulumu indirmelisiniz. Bu bölüm Python sürümleri, nasıl çalıştığı ve kod yazma ortamlarına ayrılmıştır.

1.2.1. Hangi Python sürümü?

Günümüzde Python 2 ve 3 sürümleri ön plana çıkmaktadır. Bu sürümlerinde birçok alt versiyonları vardır. Bu iki sürümü de aynı anda işletim sisteminizde kullanabilirsiniz. Öncelikle Python 3’un son versiyonunu kurmanızı öneririm. Fakat, Python’un güçlü yönlerinden biri çok fazla modüle sahip olmasıdır ve bu modüller bazen daha alt sürümlere ihtiyaç duyabilir. Bu durumda bu alt sürümlere geçmenizde yarar vardır. Derslerimizde örnekleri Python 3 üzerinde çalıştırmayı düşünüyorum.

1.2.2. Python nasıl çalışır?

Pek öğrencilerin ilgisini çekmese de bir programlama dilinin nasıl çalıştığı önemlidir. Python yorumlamalı bir dil yapısı vardır. Programlama dillerini çalışma açısından üç gruba ayırabiliriz: Yorumlamalı, Derlemeli ve hem Derlemeli hem yorulmalı diller.

  • Yorumlamalı diller: Bir kaynak metni uygun bir yorumlayıcı ile yorumlanıp çıktı üreten programlama dilleridir. Örneğin, günümüzde sıklıkla karşımıza çıkan HTML ve Javascript dilleri yorumlamalı diller sınıfına girer. Bu dillere özgü yazılmış işaretlemeler ve kodlar sunucu tarafımda tutulur. Biz istemciden bir istek göndererek bu dillerde yazılmış metin sunucudan alınıp istemci tarafına çekilir. Tabii ki günümüzde bu isteği yaptığımız yer tarayıcılarımızdır. Tarayıcı metinleri elde ettikten sonra yorumlama işlemine geçer ve çıktılar tarayıcımızda görüntü olarak karşımıza çıkar. Python dili de bu diller gibi Python yorumlayıcısı tarafından yorumlanabilir.
  • Derlemeli diller: Bir kaynak metni uygun bir derleyici tarafından çalışabilen bir dosyaya çevrildiği dillerdir. Örneğin kaynak metni C’de yazılmış ise uygun bir C derleyicisi ile çalışabilen dosya (executable file – exe) üretilebilir. Burada üretilen exe işletim sisteminin türüne ve hatta 32bit veya 64bit olması bağlı olarak değişebilir. Başka bir deyişle platform bağımlıdır diyebiliriz. Örneğin, Windows ortamında derleyip oluşturduğumuz exe MAC veya Linux ortamlarında çalışmaz. İşte bu noktada platform bağımsız bir dil yapabilir miyiz düşüncesi oluşmuştur.
  • Derlemeli ve yorumlamalı diller: C gibi dillerin en kötü tarafı platform bağımlı olmasıydı. HTML gibi yorumlamalı dillerde ise açık kaynak kod ortaydı. Hem açık kaynak kod ortada olmasın hem de platform bağımsız bir dil olsun fikri Java dilini karşımıza çıkardı. Java dilinin platform bağımsızlık dili Microsoft’un .Net çatısı tarafından da kullanıldı. Dikkat ettiyseniz C# demedim, .Net çatısı dedim. Bunun sebebi Microsoft hem platform bağımsız hem de dil bağımsız bir yapı hayal etti. Bunu gerçekleştirmek içinde .Net çatısı çıkardı. .Net çatısı ile C#, VB veya F# gibi dillerde yazılmış kodları derlememiz mümkün hale geldi. Hem Java hemde .Net çatısına uygun yazdığımız bir metin önce derlenip ara bir kod oluşturulur. Bu kod C derleyecisinde oluşturulan exe’den farklıdır. Exe makina koduna çok yakın iken bu kod yorumlamaya uygun haldedir. Bir yorumlayıcı tarafından bu kod yorumlanır ve platforma uygun olarak çalıştırılır. Bu noktada yorumlama işlemi Java için JVM (Java Virtual Machine) ve .Net Framework tarafından yapılır. Bu sayede platform bağımsızlık elde edilmiş olur. Örneğin, Java da bir kod yazdınız ve Microsoft ortamında derlediniz. Ara kod oluştu ve bu ara kodu bir arkadaşınıza mail attınız. Arkadışınız hem sizin kaynak kodunuzu görmez hem de hangi platformu kullandığı önemli değildir. O makinede JVM kurulu olması yeterlidir. Ama JVM platform bağımlıdır, Java’nın internet sitesinden indirip platforma göre kurulumu yapılır.

Genelde, forum ortamlarında Java mı hızlı veya C mi hızlı gibi tartışmaları görüyorum. Her iki dilde de kodların iyi yazıldığını varsaydığımızda C her zaman çok öndedir. Çünkü çalışan exe makina koduna çok yakın durumdadır ve hızlı bir şekilde çalışır. Java’daki ara kod yorumlama işlemi sonrası çalışır. Kısacası bu noktada galip bellidir.

Tekrar Python’a geri dönelim. Python’da yazdığımız kodun yorumlandığını söyledik, bu durumda aklımıza kaynak kodları paylaşmamız gerektiği aklınıza gelebilir. Python yorumlanabildiği gibi ek yazılımlar ile derlenmiş bir exe üretilebilir. Bu ek yazılımlardan biri “cx_Freeze”‘dir. Bu yazılım ile derlenmiş kod üretebilirsiniz.

1.2.3. Python kodu yazma ortamları

Python kodlarınızı interaktif bir şekilde yazabiliriz. Ancak, kodlarımızı bir dosyaya yazıp kaydetmek daha sonrasında kod üzerinde değişiklik yapmak ve tekrar çalıştırmak için kaçınılmazdır. Ayrıca, kodları rahat ve hızlı bir şekilde yazmak için iyi bir IDE (Integrated Development Environment) kullanmamız gerekir. Python için farklı işletim sistemlerinde bir çok IDE mevcuttur. Bu IDE’lerden bazılarına önereceğim ancak bu dile şu an başlıyorsanız, işletim sisteminize özel IDE’leri araştırmanızı öneririm. Gelelim günümüz bir kaç güzel IDE’sine,

  • ATOM, birçok farklı programlama dilini destekleyen ve Python desteği olan bir IDE’dir. Otomatik tamamlama, gelişmiş kod gezinme özellikleri, tanıma gitme, referansları bulma, açıklayıcı bilgileri, hata ve uyarı verme, gelişmiş biçimlendirme gibi özelliklere sahiptir. En kötü yönü hafızayı fazla kullanmasıdır.
  • IDLE(Integrated Development and Learning Environment), çok temel özelliklere sahip sistemi yormayan Python’un kendi IDE’sidir. En kötü yönü proje yönetimi kapasitesi olmamasıdır.
  • Thonny, Estonta’daki Tartu Üniversitesi Bilgisayar Bilimleri Enstitüsü tarafından geliştirilen ve Raspberry Pi Foundation tarafından desteklenen ve önerilen bir IDE’dir. Sitenin sloganı “Python IDE for beginners” olduğuna göre acemiler düşünülmüştür. Çok sade ve kullanımı rahat bir arayüzünün yanı sıra iyi bir hata ayıklayıcısına sahiptir. İnternette kurulumun biraz zor olduğu şeklinde yorumlar okudum ancak Raspberry Pi Foundation tavsiye ettiği bir IDE olması sebebiyle seçtiğim IDE’lerden biri oldu.
  • Visual Studio Code, Microsoft’un geliştirdiği tamamen ücretsiz birçok programlama diline desteği olan iyi bir IDE’dir. Microsoft her ne kadar açık kaynak kod kullanan geliştiricilerinin kaçtığı bir ortam olsa da Visual Studio Code hakkında internette çok olumlu yorumlar okudum. Tavsiye edebileceğim IDE’lerin başında geliyor.
  • PyCharm, tüm geliştirme araçlarını tek bir yerde bütünleştiren güçlü, farklı platformları destekleyen ve son derece özelleştirilebilir bir  Python IDE’dir. Ücretsiz ve açık kaynak olmasının yanı sıra profesyonel sürümleri ne yazık ki paralı geliyor. Bu IDE’nin öne çıkan özellikleri akıllı kod tamamlama, kod denetimleri işlevsellikleri sağlama, hata vurgulama ve hızlı düzeltmeler içerir.

Ben bu bölümde sadece seçtiğim 5 tanesini anlattım. Ders için bu IDE’lerden birini veya internetten araştırıp bulduğunuz bir IDE’yi kullanabilirsiniz.