Python – Java Hız Karşılaştırması ve Eclipse’i Python Kullanımı için Hazırlamak

Python’da değişken türünün belirtilmediğinden ve Python’ın değişken türünü kendiliğinden algıladığından dolayı Python’ın yavaş çalışacağını söyleyenler var. Ben ise her zaman bunun tersini savunuyorum. Aslında Python’da da int, float ifadeleri kullanılabilir değişken oluştururken ama kendisi kendiliğinden algıladığından dolayı ne gerek var? Aslında kendiliğinden deyince de zannediliyor ki Python değişkenin türünü aramakla zaman kaybediyor. Hayır böyle değil zaten değişkenin ne türde olacağını programcının yazımına göre biliyor Python onun için değişken arayarak zaman kaybetmiyor. Bunu bir hocamız vardı o da bana karşı savunmuştu ve demişti ki: “Python’da değişken türü belirtilmediğinden dolayı Python değişken türü belirtilen programlama dillerine göre daha yavaş çalışır.” (Yanlış biliyor. Tabi bu beni bağlamaz.) Neyse bir örnek ile bunu göstereceğim daha anlaşılır olması için. İlk önce değişken türü belirtilmiş bir Python programı ile belirtilmemiş bir programın karşılaştırmasını yapalım:

python-python

python-execute-time


#!/usr/bin/env python

class aritmetik:

    sayi1=1

    sayi2=2

    sayi1+=sayi2

    print "sayi1+= : ", sayi1

    sayi1-=sayi2

    print "sayi1-= : ", sayi1

    sayi1*=sayi2

    print "sayi1*= : ", sayi1

    sayi1/=sayi2

    print "sayi1/= : ", sayi1

denemearitmetik.py


#!/usr/bin/env python

class aritmetik1:

    sayi1=int(1)

    sayi2=int(2)

    sayi1+=sayi2

    print "sayi1+= : ", sayi1

    sayi1-=sayi2

    print "sayi1-= : ", sayi1

    sayi1*=sayi2

    print "sayi1*= : ", sayi1

    sayi1/=sayi2

    print "sayi1/= : ", sayi1

deneme1.py

Dikkat ederseniz iki program da çalıştırılırken pek bir zaman kaybı yok. Hatta salise farkı ile değişken türü belirtilmiş program daha yavaş çalışıyor. Bunun sebebi de değişken türü belirtirken int ifadesi kullanarak karakter sayısını(veya kodların sayısını) artırmış olduk. İkinci programda iki tane int() ifadesi kullanarak kodlarımıza fazladan 10 karakter daha eklemiş olduk ve böylece her bir karakter bellekte ayrı bir yer tuttu.

Şimdi bir de aynı programı Java ile yazalım ve Java ile Python arasındaki farkı görelim:

python-java

python-java-execute-time


public class aritmetik

{  public static void main(String[] args)

         {

         int sayi1=1;

         int sayi2=2;

         sayi1+=sayi2;

         System.out.println("sayi1+= : "+ sayi1);

         sayi1-=sayi2;

         System.out.println("sayi1-= : "+ sayi1);

         sayi1*=sayi2;

         System.out.println("sayi1*= : "+ sayi1);

         sayi1/=sayi2;

         System.out.println("sayi1/= : "+ sayi1);

         }
}

denemearitmetik.java

Görüldüğü üzere Python Java karşısında açık ara önde. Daha fazla söze gerek yok sanırım…

Java’nın tercih edilmesinin sebebi olarak her işletim sisteminde değişiklik yapmadan çalışabildiği(taşınabilir olduğu) söylenir. Doğrudur ama her program için java sanal makinasının çalıştırılması gerekmesi de sistem için ayrı bir yük oluşturur. Ayrıca Python da taşınabilir bir dildir, Python ile de işletim sisteminden bağımsız programlar yapılabilir.

Eclipse ve PyDev Plugin Kurulumu

  • Öncelikle uçbirimde root olup apt-get install eclipse komutu ile Eclipse IDE’yi sistemimize kuruyoruz.
  • Ardından Eclipse IDE’yi açıp “Help” menüsünden “Install New Software…” bölümüne tıklıyoruz.
  • Açılan ekranda “Work with” kutucuğuna http://pydev.org/updates adresini yazıp PyDev seçeneğini işaretliyoruz.

python-eclipse-pydev-plugin

  • “next” düğmesine tıklıyoruz ve ardından çıkan sözleşmeleri kabul ederek kurulumumuzu tamamlıyoruz.
  • Kurulum tamamlandıktan sonra Eclipse’i yeniden başlatıyoruz.

Eclipse’de Arayüzü Python İçin Hazırlamak

  • “Window” menüsünden “Open Perspective” bölümüne gelip “Other” ifadesine tıklayarak diğer seçenekleri açıyoruz.
  • Açılan pencerede PyDev seçeneğini seçerek “Ok” butonuna tıklıyoruz.

python-eclipse-pydev-plugin-1

  • Artık bir Python tasarısı oluşturabilmek için File-New yolunu izleyebiliriz.

python-eclipse-pydev-plugin-2

  • Örnek bir Hello World programı:

python-eclipse-pydev-plugin-gtk-hello-world