Post by Admin on Oct 27, 2020 19:33:16 GMT
Python Programlama Nedir?
Python, ilk sürümü Guido van Rossum tarafından 1991’de ortaya konulmuş genel amaçlı bir programlama dilidir. Yorumlanan ve dinamik bir dil olan Python, esas olarak nesne tabanlı programlama yaklaşımlarını ve belli bir oranda da fonksiyonel programlamayı desteklemektedir.
Python Yazılım Vakfı, Python’ın ana gerçekleşimi olan C dili gerçekleşimini özgür ve açık kaynak kod mantığı altında yürütmekte ve Python’ın fikirsel haklarını korumaktadır. Günümüzde Python, görece kolaylığı ve sahip olduğu geniş standart kütüphane sayesinde oldukça popülerleşmiş ve büyük kurumların da arasında olduğu yaygın bir kullanıcı kitlesine ulaşmıştır.
Python Nerelerde Kullanılır?
Python, mühendislikten-finansa kadar birçok alanda kullanılmaktadır. 2000’li yıllardan itibaren bilimsel veya mühendislikle ilgili hesaplamalı çalışmalarda da çokça kullanılmaya başlamıştır. Bunda hem donanımsal hem de yazılımsal gelişmelerin etkisi olmuştur:
Donanımsal açıdan, işlem gücü ve bellek (depolama) kapasitesinin herkesin kolayca ulaşabileceği şekilde artıp yaygınlaşması ile, Python gibi yorumlanan dillerin bazı işlemlerde epeyce yavaş olmaları ve yüksek düzeyli veri yapılarının kullanılmasının hafızada çok yer tutması gibi olumsuzluklar birçok durumda göz ardı edilebilecek seviyeye gerilemiştir.
Yazılımsal açıdan ise, İnternet ve onunla beraber açık kaynak kod veya özgür yazılım akımının yaygınlık kazanması, bu yaklaşımı benimseyen bilimcilerin İnternet üzerinden ve geliştirilen verimli araçlar sayesinde eş-güdümlü bir şekilde çalışmalarını beraberinde getirmiştir.
Python Bilimsel Hesaplama Kütüphaneleri
Python ile temel bilimsel hesaplama için üç ana kütüphane kullanılmaktadır: Hızlı dizi yapıları ve matris işlemleri gibi bazı temel işlevler için Numpy; Numpy veri yapılarının üzerinde sayısal entegrasyon, diferansiyel denklem çözümü, optimizasyon ve istatistik gibi herkesçe ihtiyaç duyulabilecek işlevler için SciPy ve iki boyutlu ve belli bir düzeyde üç boyutlu görselleştirme için Matplotlib kütüphanesi kullanılmaktadır.
Yukarıda sayılan kütüphanelerin dışında, bilimsel çalışmalarda sıkça yapılan veri tabanı ve İnternet sayfalarının manipülasyonu gibi işlemler için gelişmiş ve kararlı standart kütüphane bileşenleri vardır. Ayrıca belli bilim dallarına özgül, örneğin biyoloji için BioPython gibi, kapsamlı kütüphaneler geliştirilmiştir.
Özgül çalışma alanları için mevcut kütüphaneler konusunda okuyucu SciPy gibi sitelere başvurabilir. Bunların dışında bilimsel hesaplamada çokça kullanılan Fortran, C, R gibi dillerin Python içinden çağrılabilmesi için Pratik arayüzler, GNU bilimsel kütüphanesi (“GNU scientific library”) gibi kütüphaneler için bağlama kütüphaneleri ve paralel hesaplamalar için çeşitli kütüphaneler mevcuttur.
Python ile bilimsel hesaplama yaparken kullanılabilecek geliştirme ortamları seçenekleri de oldukça zengindir: Öncelikle, elbette, IDLE veya Eclipse gibi genel (Python) geliştirme araçları kullanılabilir. Bilimsel geliştiriciler için bunlardan daha pratik olarak MATLAB ortamına çok benzer bir ortam sağlayan üç farklı seçenek vardır. Bu tür ortamların, MATLAB kullanıcılarının aşina olduğu ve değişkenleri yerinde değiştirme gibi olanaklar sağlayan “variable explorer” ve dili yeni öğrenmekte olanlar için çok faydalı olabilecek “object explorer”, kod analizcisi “Pylint” gibi özellikler vardır.
Mathematica veya Maple kullanıcılarının aşina olduğu defter (‘notebook’) arayüzünü elde etmek içinse, Sage5 veya IPython (sürüm > 0.12) kullanılabilir. (IPython, bilimsel hesaplamaya özgü olarak geliştirilmiş ve standart olarak kullanılan yetenekli bir komut satırı Python ortamıdır.Diğer birçok proje (örn. Spyder), zengin etkileşimli programlama becerilerini Python üzerinden sağlamaktadırlar.)
Yukarıda Python’ın çok yaygın kabul gördüğü bilimsel hesaplama alanındaki kullanımına kısaca değindik. Bildirinin geri kalan kısmında, üniversitelerimizin hemen hepsinde yürütülmekte olan bilimsel hesaplama eğitimi için Python’ın iyi bir programlama dili seçimi olduğunu, diğer seçeneklerle karşılaştırma da yaparak, göstermeye çalışacağız.
Özgür olması Python programlama dili, standart sürümünde, C dili kullanılarak gerçekleştirilmiştir. Bu kodlar ile Python’ın standart kütüphanesi, geliştirme araçları ve diğer birçok kütüphane, Açık kaynak kod olarak İnternet’ten ücretsiz ve herhangi bir lisans sorunu yaşanmadan indirilebilmektedir. Dolayısıyla bilimsel hesaplama derslerindeki tüm öğrenciler istedikleri her yerde bu araçları serbestçe kullanabileceklerdir.
Ayrıca, Python’un bilimsel kütüphaneleri de açık kaynak kodlu olduklarından, derste ele alınan konular için kullandıkları modüllerin kodlarını inceleyebilecek ve gereği halinde değiştirerek farklı amaçlara uyarlayabileceklerdir.
Kolay olması Python, kolay öğrenilebilirlik ve kullanım için tasarlanmıştır. Bu kolay öğrenilebilme özelliği, doğal olarak, her türlü kullanım için önemli bir avantajdır. Bilimsel hesaplama bağlamında ise, gerektiğinde bilimsel hesaplama derslerinde dilin en baştan öğrencilere öğretile- bilmesi ve yine de asıl işlemek istenilen konulara zaman ayrılabilmesi olasılığını ortaya koymaktadır. Şayet öğrenciler bilimsel hesaplama kapsamındaki ilk derslerine gelmeden önceki programlama derslerini de bu dilde alabilirlerse, daha çok konuyu daha derinlemesine işleme olanağı olacaktır.
Python Ne İşe Yarar?
Python’ın basitliği, öğrenilmek istenilen algoritmalara veya bilimsel problemlere odaklanılmasını kolaylaştıracaktır. Ayrıca öğrenciler hem kendi yazdıkları hem de başkalarının (özellikle de hocalarınım) yazmış olduğu kodu daha kolay okuyabilecek ve kodda yatan fikri daha kolay özümseyebileceklerdir. Etkileşimli olması Yorumlanan bir dil olması itibarıyla Python, yorumlayıcı üzerinde etkileşimli olarak çalışılmasına olanak sağlamaktadır. Bu özelliğin getirdiği üç önemli fayda vardır.
• Birincisi, dilin yeni özelliklerinin veyahut yeni kütüphanelerin öğrenilmesi sırasında hızlı ve etkileşimli bir şekilde ‘keşif’ yapmaya olanak sağlamasıdır.
• İkincisi, yeni bir program yazılırken hızlı bir şekilde deneme yapılmasının kolaylaşmasıdır.
• Bilimsel hesaplamaya özgü olan üçüncü fayda ise, hesaplamaların sonuçlarını adım adım görmeye ve eldeki problemin şekillenişini verimli bir şekilde takip etmeye yardımcı olmasıdır.
Nesne yönelimli programlamayı desteklemesi Python’ın desteklediği temel paradigmalar prosedürel, nesne yönelimli ve fonksiyonel programlama paradigmalarıdır. Bilimsel hesaplamada prosedürel olarak kolayca çalışabilmek temel bir gerekliliktir. Görece büyük bilimsel yazılım projelerinde ise sağladığı kolaylık açısından nesne yönelimli programlamayı destekleyen bir dilin kullanımı tercih edilir.
Ayrıca bu paradigma, özellikle de fiziksel benzetim yapmak gibi amaçları olan çalışmalarda doğal bir çalışma çerçevesi oluşturur. Popüler olması Bir programlama dilinin popülerliğinin tespiti için standart bir yöntem olmamakla beraber, çeşitli yaklaşımlarla yapılmış ölçümler birbirleriyle hemen hemen aynı çıkmakta ve Python’ın en popüler diller arasında olduğunu göstermektedirler.
TIOBE sitesinin rakamlarıyla, Python, genel diller sıralamasında altıncı; betik dilleri sıralamasında ise standart İnternet olan PHP’nin arkasından ikinci sıradadır. Ayrıca Google gibi firmaların da Python kullanmaya başlamış olmaları, dilin arkasına geniş bir kitleyi almasını sağlamaktadır. Popülerliğin bir programlama dili ve onu öğrenenler için çeşitli getirileri vardır.
Standart kütüphanenin genişliği geliştiricileri Python için “pilleri dahil” sloganını kullanarak, standart kütüphanede her türlü iş için araçların bulunabileceğini vurgulamaktadırlar. Bu, öğrencilere, hem akademik çalışmalarında hem de diğer işlerinde her türlü ihtiyaçları için tutarlı ve taşınabilir bir çerçeve sağlar.
Taşınabilir olması Derlenen bir dil olan Python’da yazılmış olan programlar, platformdan bağımsız olarak çalışabilirler (elbette bu, Python derleyicisinin ve ilgili kütüphanelerin o bilgisayarda bulunmasını gerektirir). Dolayısıyla herhangi bir şekilde çalıştırılabilir dosya oluşturmaya ve programı farklı platformalara uyarlamaya gerek kalmadan, programların öğrenciler ve hocalar arasında kolayca paylaşılabilmesi olanağı vardır.
Elbette, her konuda Python’ın avantajlı olduğunu öne sürmek mümkün değildir. Örneğin, bu kısımda Python’ın derlenen dillerden çok daha yavaş çalışması gibi noktalardan bahsedilmemiştir. Aslında belki de bu, lisans düzeyindeki bilimsel hesaplama açısından tek önemli dezavantaj olarak düşünülebilir. Öte yandan en kötü durumda çok vahim olan bu hız farkı, ortalama durumda ise derleme aşamasının olmamasıyla telafi edilebilen bir seviyededir.
Günümüzde, makine kaynaklarındansa insan kaynağının çok daha önemli olduğunu düşündüğümüzde, Python, lisans seviyesindeki bilimsel hesaplama için en uygun dil gibi görünmektedir. Burada “en uygun” ile kastedilen, elbette, “her açıdan en iyi olmak” değil; tüm hususlar göz önünde bulundurulduğunda “optimum olmak”tır. Üniversitelerimizdeki öğretim görevlileri, özgür yazılımın getirdiği serbestlik ve zengin öğretim kaynaklarının sağladığı geniş seçeneklerden faydalanarak, derslerinde kolayca Python’a geçebilirler.
Python, ilk sürümü Guido van Rossum tarafından 1991’de ortaya konulmuş genel amaçlı bir programlama dilidir. Yorumlanan ve dinamik bir dil olan Python, esas olarak nesne tabanlı programlama yaklaşımlarını ve belli bir oranda da fonksiyonel programlamayı desteklemektedir.
Python Yazılım Vakfı, Python’ın ana gerçekleşimi olan C dili gerçekleşimini özgür ve açık kaynak kod mantığı altında yürütmekte ve Python’ın fikirsel haklarını korumaktadır. Günümüzde Python, görece kolaylığı ve sahip olduğu geniş standart kütüphane sayesinde oldukça popülerleşmiş ve büyük kurumların da arasında olduğu yaygın bir kullanıcı kitlesine ulaşmıştır.
Python Nerelerde Kullanılır?
Python, mühendislikten-finansa kadar birçok alanda kullanılmaktadır. 2000’li yıllardan itibaren bilimsel veya mühendislikle ilgili hesaplamalı çalışmalarda da çokça kullanılmaya başlamıştır. Bunda hem donanımsal hem de yazılımsal gelişmelerin etkisi olmuştur:
Donanımsal açıdan, işlem gücü ve bellek (depolama) kapasitesinin herkesin kolayca ulaşabileceği şekilde artıp yaygınlaşması ile, Python gibi yorumlanan dillerin bazı işlemlerde epeyce yavaş olmaları ve yüksek düzeyli veri yapılarının kullanılmasının hafızada çok yer tutması gibi olumsuzluklar birçok durumda göz ardı edilebilecek seviyeye gerilemiştir.
Yazılımsal açıdan ise, İnternet ve onunla beraber açık kaynak kod veya özgür yazılım akımının yaygınlık kazanması, bu yaklaşımı benimseyen bilimcilerin İnternet üzerinden ve geliştirilen verimli araçlar sayesinde eş-güdümlü bir şekilde çalışmalarını beraberinde getirmiştir.
Python Bilimsel Hesaplama Kütüphaneleri
Python ile temel bilimsel hesaplama için üç ana kütüphane kullanılmaktadır: Hızlı dizi yapıları ve matris işlemleri gibi bazı temel işlevler için Numpy; Numpy veri yapılarının üzerinde sayısal entegrasyon, diferansiyel denklem çözümü, optimizasyon ve istatistik gibi herkesçe ihtiyaç duyulabilecek işlevler için SciPy ve iki boyutlu ve belli bir düzeyde üç boyutlu görselleştirme için Matplotlib kütüphanesi kullanılmaktadır.
Yukarıda sayılan kütüphanelerin dışında, bilimsel çalışmalarda sıkça yapılan veri tabanı ve İnternet sayfalarının manipülasyonu gibi işlemler için gelişmiş ve kararlı standart kütüphane bileşenleri vardır. Ayrıca belli bilim dallarına özgül, örneğin biyoloji için BioPython gibi, kapsamlı kütüphaneler geliştirilmiştir.
Özgül çalışma alanları için mevcut kütüphaneler konusunda okuyucu SciPy gibi sitelere başvurabilir. Bunların dışında bilimsel hesaplamada çokça kullanılan Fortran, C, R gibi dillerin Python içinden çağrılabilmesi için Pratik arayüzler, GNU bilimsel kütüphanesi (“GNU scientific library”) gibi kütüphaneler için bağlama kütüphaneleri ve paralel hesaplamalar için çeşitli kütüphaneler mevcuttur.
Python ile bilimsel hesaplama yaparken kullanılabilecek geliştirme ortamları seçenekleri de oldukça zengindir: Öncelikle, elbette, IDLE veya Eclipse gibi genel (Python) geliştirme araçları kullanılabilir. Bilimsel geliştiriciler için bunlardan daha pratik olarak MATLAB ortamına çok benzer bir ortam sağlayan üç farklı seçenek vardır. Bu tür ortamların, MATLAB kullanıcılarının aşina olduğu ve değişkenleri yerinde değiştirme gibi olanaklar sağlayan “variable explorer” ve dili yeni öğrenmekte olanlar için çok faydalı olabilecek “object explorer”, kod analizcisi “Pylint” gibi özellikler vardır.
Mathematica veya Maple kullanıcılarının aşina olduğu defter (‘notebook’) arayüzünü elde etmek içinse, Sage5 veya IPython (sürüm > 0.12) kullanılabilir. (IPython, bilimsel hesaplamaya özgü olarak geliştirilmiş ve standart olarak kullanılan yetenekli bir komut satırı Python ortamıdır.Diğer birçok proje (örn. Spyder), zengin etkileşimli programlama becerilerini Python üzerinden sağlamaktadırlar.)
Yukarıda Python’ın çok yaygın kabul gördüğü bilimsel hesaplama alanındaki kullanımına kısaca değindik. Bildirinin geri kalan kısmında, üniversitelerimizin hemen hepsinde yürütülmekte olan bilimsel hesaplama eğitimi için Python’ın iyi bir programlama dili seçimi olduğunu, diğer seçeneklerle karşılaştırma da yaparak, göstermeye çalışacağız.
Özgür olması Python programlama dili, standart sürümünde, C dili kullanılarak gerçekleştirilmiştir. Bu kodlar ile Python’ın standart kütüphanesi, geliştirme araçları ve diğer birçok kütüphane, Açık kaynak kod olarak İnternet’ten ücretsiz ve herhangi bir lisans sorunu yaşanmadan indirilebilmektedir. Dolayısıyla bilimsel hesaplama derslerindeki tüm öğrenciler istedikleri her yerde bu araçları serbestçe kullanabileceklerdir.
Ayrıca, Python’un bilimsel kütüphaneleri de açık kaynak kodlu olduklarından, derste ele alınan konular için kullandıkları modüllerin kodlarını inceleyebilecek ve gereği halinde değiştirerek farklı amaçlara uyarlayabileceklerdir.
Kolay olması Python, kolay öğrenilebilirlik ve kullanım için tasarlanmıştır. Bu kolay öğrenilebilme özelliği, doğal olarak, her türlü kullanım için önemli bir avantajdır. Bilimsel hesaplama bağlamında ise, gerektiğinde bilimsel hesaplama derslerinde dilin en baştan öğrencilere öğretile- bilmesi ve yine de asıl işlemek istenilen konulara zaman ayrılabilmesi olasılığını ortaya koymaktadır. Şayet öğrenciler bilimsel hesaplama kapsamındaki ilk derslerine gelmeden önceki programlama derslerini de bu dilde alabilirlerse, daha çok konuyu daha derinlemesine işleme olanağı olacaktır.
Python Ne İşe Yarar?
Python’ın basitliği, öğrenilmek istenilen algoritmalara veya bilimsel problemlere odaklanılmasını kolaylaştıracaktır. Ayrıca öğrenciler hem kendi yazdıkları hem de başkalarının (özellikle de hocalarınım) yazmış olduğu kodu daha kolay okuyabilecek ve kodda yatan fikri daha kolay özümseyebileceklerdir. Etkileşimli olması Yorumlanan bir dil olması itibarıyla Python, yorumlayıcı üzerinde etkileşimli olarak çalışılmasına olanak sağlamaktadır. Bu özelliğin getirdiği üç önemli fayda vardır.
• Birincisi, dilin yeni özelliklerinin veyahut yeni kütüphanelerin öğrenilmesi sırasında hızlı ve etkileşimli bir şekilde ‘keşif’ yapmaya olanak sağlamasıdır.
• İkincisi, yeni bir program yazılırken hızlı bir şekilde deneme yapılmasının kolaylaşmasıdır.
• Bilimsel hesaplamaya özgü olan üçüncü fayda ise, hesaplamaların sonuçlarını adım adım görmeye ve eldeki problemin şekillenişini verimli bir şekilde takip etmeye yardımcı olmasıdır.
Nesne yönelimli programlamayı desteklemesi Python’ın desteklediği temel paradigmalar prosedürel, nesne yönelimli ve fonksiyonel programlama paradigmalarıdır. Bilimsel hesaplamada prosedürel olarak kolayca çalışabilmek temel bir gerekliliktir. Görece büyük bilimsel yazılım projelerinde ise sağladığı kolaylık açısından nesne yönelimli programlamayı destekleyen bir dilin kullanımı tercih edilir.
Ayrıca bu paradigma, özellikle de fiziksel benzetim yapmak gibi amaçları olan çalışmalarda doğal bir çalışma çerçevesi oluşturur. Popüler olması Bir programlama dilinin popülerliğinin tespiti için standart bir yöntem olmamakla beraber, çeşitli yaklaşımlarla yapılmış ölçümler birbirleriyle hemen hemen aynı çıkmakta ve Python’ın en popüler diller arasında olduğunu göstermektedirler.
TIOBE sitesinin rakamlarıyla, Python, genel diller sıralamasında altıncı; betik dilleri sıralamasında ise standart İnternet olan PHP’nin arkasından ikinci sıradadır. Ayrıca Google gibi firmaların da Python kullanmaya başlamış olmaları, dilin arkasına geniş bir kitleyi almasını sağlamaktadır. Popülerliğin bir programlama dili ve onu öğrenenler için çeşitli getirileri vardır.
Standart kütüphanenin genişliği geliştiricileri Python için “pilleri dahil” sloganını kullanarak, standart kütüphanede her türlü iş için araçların bulunabileceğini vurgulamaktadırlar. Bu, öğrencilere, hem akademik çalışmalarında hem de diğer işlerinde her türlü ihtiyaçları için tutarlı ve taşınabilir bir çerçeve sağlar.
Taşınabilir olması Derlenen bir dil olan Python’da yazılmış olan programlar, platformdan bağımsız olarak çalışabilirler (elbette bu, Python derleyicisinin ve ilgili kütüphanelerin o bilgisayarda bulunmasını gerektirir). Dolayısıyla herhangi bir şekilde çalıştırılabilir dosya oluşturmaya ve programı farklı platformalara uyarlamaya gerek kalmadan, programların öğrenciler ve hocalar arasında kolayca paylaşılabilmesi olanağı vardır.
Elbette, her konuda Python’ın avantajlı olduğunu öne sürmek mümkün değildir. Örneğin, bu kısımda Python’ın derlenen dillerden çok daha yavaş çalışması gibi noktalardan bahsedilmemiştir. Aslında belki de bu, lisans düzeyindeki bilimsel hesaplama açısından tek önemli dezavantaj olarak düşünülebilir. Öte yandan en kötü durumda çok vahim olan bu hız farkı, ortalama durumda ise derleme aşamasının olmamasıyla telafi edilebilen bir seviyededir.
Günümüzde, makine kaynaklarındansa insan kaynağının çok daha önemli olduğunu düşündüğümüzde, Python, lisans seviyesindeki bilimsel hesaplama için en uygun dil gibi görünmektedir. Burada “en uygun” ile kastedilen, elbette, “her açıdan en iyi olmak” değil; tüm hususlar göz önünde bulundurulduğunda “optimum olmak”tır. Üniversitelerimizdeki öğretim görevlileri, özgür yazılımın getirdiği serbestlik ve zengin öğretim kaynaklarının sağladığı geniş seçeneklerden faydalanarak, derslerinde kolayca Python’a geçebilirler.