Nedir Bu Python ?

yalçın demir 29 Nisan 2020 0 Comments

2003 yılından itibaren 10 popüler yazılım dilleri arasına sıkı bir giriş yapan ve gün geçtikçe popülerliği artan yazılım dilinin artıları eksileri ve bu kadar çok kullanılmasının sebepleri nelerdir bunlar üzerinde duralım.

Tarihcesi

Python 90’li yıllarının başlarında Amsterdamlı yazılımcı Guido Van Rossum tarafından geliştirilmeye başlanmıştır. Herkesin bildiğinin aksine bu yazılım dili piton yılanından değil “Mounty Python’s Flying Circus” adlı tv programından almaktadır.Python ilk versiyonu olan 1.0 Ocak 1994 yılında yayınlanmıştır. Bundan yaklaşık 6 yıl sonra yani 16 ekim 2000 yılında 2.0 versiyonu yayınlamıştır. 8 yılın ardından yani 3 Aralık 2008’de 3.0 yayınlamıştır. Şu Anda kullanılmakta olan 2 versiyonu vardır. Bunlardan 2.x sürümü “miras” olarak geçmektedir. Peki neden 2 sürüm halinde versiyon çıkarıldığına gelmek gerekirse versiyon 3.x ile versiyon 2.x arasında çok büyük güncelleme farkları vardır. Bunlardan başlıcaları iyi eş zamanlı kontroller ve daha verimli bir derleme sistemidir. Şuan birçok firmada halen 2.x sürümü kullanılmaktadır. Birçok python kitaplığı yalnızca python 2’yi desteklemektedir. Üçüncü sınıf kütüphanelerin python 3’ü desteklemesi biraz yavaş olarak ilerlemektedir. Buda doğrudan geçişi zaman alıcı bir hale getirmektedir. Bu nedenle firmalar şu an kullanmakta oldukları yapıları 2.x’den 3.x almaya devam etmektedir. Lakin 2000 yılında çıkan 2.x versiyonu 2020 yılında topluluk desteğini almaya devam edecektir. Ancak son birkaç yılda python 2’i destekleyen kütüphaneler azaldı. Bunun karşılığında yeni yazılan kütüphaneler artık python 3’e göre yapılmaktadır. Bundan dolayıdır ki ileriki bir tarihte python 3 python 2 tarih sahnesinden kaldıracaktır.

Python’un Yükselişi

Van Rossum 2003 yılında google başlamasıyla birlikte python 10 programlama dilinin arasına sıkı bir giriş yapıyor. Popülerliği doğrusal bir şekilde artmaya başladı. Tabi bunun en büyük nedeni google gibi bir yazılım devinin projelerinde python kullanmaya başlaması büyük etki yapmıştır. Google’den başka Wikipedia,Yahoo,Cern,Nasa python ile geliştirme yapmıştır.Ayrıca günümüzde birçok popüler sosyal medya ağı alt yapısında python kullanmaktadır. Bunlar Instagram,reddit(Tamamı),facebook.Eve kapandığımız bu günlerde Netflix gibi internet üzerinden video kiralama hizmeti sunan firmaların alt yapısında kullanılmaktadır.

Python oldukca genel bir programlama dilidir. Web servis uygulamalarından , büyük veri işleme(BIG DATA),yapay zeka uygulamalarından,bilimsel hesaplama ,nesnelerinin interneti(IOT) ve network sistemlerine kadar birçok sistemde kullanılmaktadır. 

Haziran 2014 yapılan bir araştırmada Amerika’da bileşim bilimi bölümlerinde öğrencilerin başlangıç programlama dili olarak python tercih ettiği görülmektedir. Amerikada yer alan ilk 10 üniversitenin %80 bir kısmıda ,39 üniversitenin’de %27’si python programlamaya giriş dili olarak belirlemiştir. Ülkemizde ITU Fizik Mühendisi bölümünden Berlin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” adında bir bildiri yayınlamıştır(Url).Python R programlama dilinden sonra veri madenciliğinde kullanılan 2’ci yazılım dilidir. Python Githup en çok kullanılan 4. yazılım dili stackoverflow en büyük 5. topluluğa sahipken meetup’ta 3 en büyük topluluğa sahip yazılım dilidir.

Alt kısımda PYPL (popularity of a programming language index)  index sonuçlarının oluşturduğu grafiği görebilirsiniz. PYPL elde edilen verileri google trends üzerinden temin ettiğini belirtiyor.

Programlama dillerinin popülaritesi inceleyen bir diğer kaynak olan TIOBE sonuçları alt kısımda yer almaktadır.Tabi burda da ivme sürekli yukarı yönde ilerlemektedir.TIOBE birçok kaynaktan veri sağlar bunlar dünya genelinde uzmanlaşmış mühendis sayısı.Bir dilde uzmanlaşan yazılıcının artması o dilin populerlik ve iş potansiyelinin olduğu anlamına gelir.Programlamlama dilinde eğitim içeriklerinin adedi artması o dile ait öğrenme ve talibin olduğu anlamına gelir.Son olarakta internet üzerinde yapılan aralama ve tıklamalar o dilin halk arasında populerliğinin olduğu anlamına gelir.Yalnız dikkat edilmesi gereken husus en iyi programlama dili veya en çok kod yazılan dil şeklinde olmadığıdır.

Ayrıca yazılım camiasının sıklıkla kaynak veya bilgi paylaşım mecrası olarak kullanmış olduğu stackoverflow sitesinin yapmış olduğu 2013 ve 2017 yılları arasındaki ankette %21’lerden %32’lere çıktığı görülmektedir.

Python IDE Nelerdir ?

Python için bir çok IDE (Integrated Development Environment) mevcuttur. Türkce adıyla söylemek gerekirse “Tümleşik Geliştirme Ortamı” olarak türkçeye çevrilmektedir.Bu IDE’ler kullanılan yere ve işletim sistemine göre tercih edilmektedir. 

Online Compiler

Bu IDE online ortamda kod yapmamıza olanak sağlamaktadır. Yani bilgisayarınıza herhangi bir uygulama kurmadan internetinizin olduğu her yerden kod geliştirmesi yapabilirsiniz.Kullanımı tamamen ücretsizdir. Bu URL den erişim sağlayabilirsiniz.

Jupyter Notebook

Aldığınız notları ve kodları bir arada tutabileceğiniz oldukça faydalı bir IDE’dir. Browser üzerinden çalışan bu IDE tek başına kurulum yapılabildiği gibi Anaconda dağıtımının içerisinde yer almaktadır. Benim tavsiyem Anaconda kurulumu yapmanız yönündedir. Eğer bilmiyorsanız Anaconda veri bilimi ve makine öğrenimi için oldukça popüler bir dağıtımdır.Anaconda Numpy,Pandas,Matplotlib ve benzeri yüzlerce kütüphane içerisinde barındırır.

IDLE

Python kurulum ile birlikte gelen default IDE’dir. Herhangi bir Python sürümünü kurul yapmanız halinde bilgisayarına kurulmaktadır. 

 

Sublime Text 3

Başlangıç ve ileri düzey programcılara yönelik bir IDE dir. Ücretli bir uygulamadır. Türkiye’de ve dünyada bir çok yazılımcının kullanmakta oldukça hoşnut olduğu bir programdır.

Atom

Open source bir programdır. Github üzerinden kodlarına erişim sağlayabilirsiniz.Oldukça popüler bir IDE’dir.

Thonny

Başlangıç düzeyinde ki kişilerin genelde tercih ettiği bir IDE’dir. Oldukça popüler özellikleri vardır.

Pycharm

Hem başlangıç seviyesinde olan hemde profesyonel yazılımcılara hitap eden bir IDE’dir. Bu nedenle hem lisanslı sürümü hemde free open source sürümleri mevcuttur.

Visual Studio Code

Kullanımı daha çok profesyonellere yönelik olsada yeni başlayanlar için de tavsiye edebileceğim editörler arasında yer almaktadır. Extra modüllerinin olması onu diğer editörlerden bir adım daha ileri taşımaktadır. Tamamen ücretsiz olarak kullanılabilir.

Vim

Unix ve macOS içerisinde default olarak gelen bir yazı editörüdür. Lakin windows için daha sonra kurulum gerekmektedir. Eğer Unix sistemlerden aşına iseniz bu IDE üzerinden kolayca kod yazmaya başlayabilirsiniz. Bazı geliştiriciler Vim kısa yollarına aşina olduğundan dolayı kullanımını tercih etmektedir. Lakin ilk kez duyuyorsanız kısa yollarına alışmanız biraz zaman alabilir.

Spyder

Genellikle bilimsel gelişim için kullanılan açık kaynak kodlu bir IDE’dir. Spyder ile çalışmaya başlamanın en kolay yolu Anaconda dağıtımını kurmaktır.

Python Üst Seviyeli Bir Yazılım Dilidir

Python nesne yönelimli ,yorumsal ,modüler ve etkileşimli yüksek seviyeli bir dildir. Bilmeyenler için yüksek seviyeli diller olan c#,php ve java ile düşük

 seviyeli diller olan makine ve assembly örnek olarak gösterilebilir. Peki arasında ki fark nedir derseniz yüksek seviyeli diller insanların anlayacağı şekle ne kadar yaklaşırsa o kadar yüksek seviyeli dil olarak tanımlanırken bilgisayarın anlayacağı ve yorumlamada hız kazanacağı dille yaklaşırsa düşük seviyeli dil olarak adlandırılır. Buda bir dil yazılı zorlaştıkça bilgisayarın anlaması o’kadar kolay hale ge

lmekte ve daha hızlı çalışabilmektedir. Lakin insanların anlayabileceği yazım şekline yaklaştıkça daha kolay uygulama geliştirilmekte lakin bu seferde bilgisayarın derlemesi uzun süreceğinden dolayı daha yavaş ç

alışmaktadır.

Ayrıca son zamanlarda derleme zamanı ipucu desteği eklenmiştir. Buda yazma anında yazılımcıya bilgi vermektedir.

Python Alt Seviyeli Dillere Yaklaştıran Özellikler

Java,c#,GO programlama dilleri gibi bellek yönetimine sahiptir. Yani yazmış olduğumuz nesneleri izlemek ve kullanılmadığı durumlarda bellekten silmek için yazılımcının kod yazmasına gerek duymaksızın programlama dilinin kendiliğinden ayarlama yapabilmesi demektir. Lakin diğer dillerden farklı olarak python bunu kısmı olarak veya tamamen yazılımcı denetimine bırakmayı sağlayabilmektedir. Bu geliştirmiş olduğunuz bir projede yapılmış olan iyileştirmeyi daha stabil hale getirmek için ihtiyaç duyabileceğiniz bir durumdur.

Python “significant whitespace” denilen boşluklar kullanılarak kod geliştirilmesi yapılmaktadır.Bu en iyi yönü ve en kötü özelliklerinden biri olarak değerlendirilebilir. İyi olmasının nedeni çok daha okunaklı olması diğer dillerde olan “{}” parantezlerinin veya “;” kullanılmaması yazılımcının hata yapmasını engellerken kodların derlenmesi de yavaş çalışmasına neden olur. Buda c veya java’dan daha yavaş çalışmasına neden olur.

Python Yapışkan Kod (Glue Code) olarak adlandırılan takma ismini, C dilinin kütüphanesi kodları ortaklaşa kullanarak daha spesifik programlar yazmaya olanak sağlamasından dolayı almıştır.

Python Yavaş Bir Dil Mi ?

Python ilgili duyabileceğiniz negatif yorumlardan biri C,C++ ve Java göre daha yavaş olduğuna yöneliktir. Genel olarak değerlendirmek gerekirse EVET yavaştır. Bunun nedeni nesneler kullanıldığı kodlar aracılığıyla belirlendiği için, derlendiğinde bile diğer yazılım dillerine oranla bir tık daha yavaş olabilir.

Peki Hızlandırılabilir Mi ?

Evet tabiki hızlandırılabilir. Bunun için üçüncü taraf kütüphanelerinin seçimine dikkat etmek gerekmektedir. Çünkü yavaşlık üçüncü part kütüphanelerin içiri aktarımında yaşanan sorunlardan kaynaklanmaktadır. Örneğin NumPy ve Pandas gibi kütüphaneleri kullanarak matematik ve istatistik işlemleri muazzam bir şekilde yaptırabilirsiniz.

Yazılımcılar arasında bir söz vardır. Programın %90 işlevsellik %10 program kodlarından oluşur.Siz %10’luk kısmını optimize ettiğinizde oldukça başarılı sonuçlar alabilirsiniz. Örneğin Cyhon ve Bumba gibi projeleri kullanarak C hatta Assembly dönüştürebilirsiniz. Lakin ortaya çıkan sonuç C göre biraz daha yavaş olabilir.Burda da C’nin micro yönetimi göz ardı edildiğinde yarışacak düzeyde performans sağlayabilirsiniz.

Geliştirme Süresi Makine Süresini Yener

Evet programın geliştirildiği süre ile programın çalışma hızı değerlendirildiğinde herkes geliştirilme süresinin daha kısa olmasını tercih edecektir.Örneğin C dilinde yazılan bir kod ile Python yazılan bir kod değerlendirildiğinde C dilinde yazılan kod 1 sn çalışırken Python bu süre 6 sn olabilmektedir. Lakin kod yazımında harcana  süre değerlendirildiğinde Python çok daha idealdir.

Fakat bu bir ticari uygulama geliştirilmesinde yüksek verimlilik ,düşük eş zamanlılık gerektiren bir projede daha az doğru bir durumdur. Ancak birçok sıradan program yazımında ve makine öğrenimi gibi konularda hızlı olduğu aşikardır.

Python İle Uygulama Programlama

Python ile bir çok GUI uygulamaları yazabilirsiniz. Lakin diğer dillerde olduğu şekilde kurulum dosyası yapamazsınız. Bunu CX_Freeze ve PyInstaller kullanarak mümkün kılabilirsiniz.

Veri Bilimi ve Makine Öğrenimindeki Yeri

Veri analizi günümüzde IT için önemli konulardan biri halini almıştır. Python geniş kutuphanesi sayesinde çok az kod ile çok rahat sonuç alınabilmektedir.Tabi bu durum Makine öğrenimi için geçerli olmaktadır.

Python Programlama Dilinin Kullanım Alanları

Web Geliştirme

  1. Django ve Pyramid gibi web frameworkları
  2. Flask ve Bottle gibi micro-framework’ler
  3. Plone ve django CMS gibi İleri seviye içeri yönetimi istemleri

İnternet Protokolleri

  1. HTML ve XML, JSON, E-mail processing, FTP, IMAP ve diğer Internet protokolleri
  2. Socket programlama ara yüzü oldukça kolaydır.
  3. Ayrıca paketlerde daha kullanışlı kütüphaneler mevcuttur:
  4. Requests gibi güçlü http istemci kütüphanesi
  5. BeautifulSoup gibi HTML parse(ayrışımı)
  6. Feedparser gibi RSS besleme kütüphanesi
  7. Paramiko gibi SSH2 protokolünü adapte etme
  8. Twisted Python Asenkron ağ programlama kütüphanesi

Bilimsel Hesaplama Ve Matamatik Alanında 

  1. SciPy
  2. NumPy
  3. Matplotlib
  4. SageMath

Yapay Zeka Uygulamaları

  1. Deepy
  2. Caffe
  3. OpenCV
  4.  Theano
  5. TensorFlow
  6. Sci-kit Learn
  7.  mlpy(Machine Learning Python)
  8. NLTK (Natural Language Toolkit)
  9.  NeuroLab
  10.  PyMC

Nesnelerin İnterneti (IOT)

  1. Raspberry Pi için temel programlama dili olarak belirlenmiştir.
  2. MQTT Makineler arası bağlantı protokolü
  3. Zerynth IoT ve Endüstri 4.0 uygulamalarına sahip framework

Veri Madenciliği (Data Mining) Uygulamaları

  1. Orange Veri analizi ve görselleştirme
  2. PyData Python Veri Analiz Kütüphanesi
  3. Pandas veri analizi ve modelleme

Aboutyalçın demir

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir