Tüm Üyelere ve Ziyaretçilere Forumda İyi Vakit Geçirmelerini Dileriz.
Tüm Paylaşımlarla, İsteklerinizle , Sorularınızla Daima Yanınızdayız.

Python Dilinin Öznitelikleri, Programlama Eğitiminde ve Yazılım Dünyasındaki Yeri

Konu Sahibi: Morningstar, Kategori: Python, 0 Yorum, 653 Okunma
BU KONUYU DEĞERLENDİR
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Görüntüleyenler: 1 Ziyaretçi
Yönetici
Yönetici
*******
348
Mesajlar
347
Konular
0
Rep Puanı
Information  07-02-2020, Saat: 23:35
#1
Python Dilinin Öznitelikleri, Programlama Eğitiminde ve
Yazılım Dünyasındaki Yeri

Özet: Teknolojik gelişmelerin getirdiği yenilikler yazılım sektörüne, dolayısıyla programlama dillerine olan ilgi ve yönelimi daha da arttırmıştır. Bu sebeple programlama eğitimi verilen bölümlerde programlama dili seçimi, üzerinde önemle durulan ve tartışılan bir konu haline gelmiştir. Programlama dili seçiminde, tercih edilecek olan dilin, öğrencilere temel programlama bilgi ve becerilerini kazandıracak nitelikte ve kolay öğrenilebilir olmasına dikkat edilmektedir. Ayrıca, sektörde tercih edilen programlama dilleri, lisans eğitiminde programlama dersi tercihini doğrudan etkilemektedir. Bu açıdan bakıldığında C, C++, Java, C# gibi statik kodlanan popüler dillerin yaygın olarak tercih edildiği görülmektedir. Bunların yanında JavaScript, PHP, Perl, Python, Ruby gibi dinamik kodlanan diller ise son yıllarda kullanım alanlarının genişlemesi ve kullanıcı sayılarının gittikçe artmasıyla yükselişe geçen dillerdir. Özellikle Python, ticari sektörde, akademik çalışmalarda ve üniversitelerin eğitim programlarında tercih edilen bir dil konumuna gelmiştir. Bu çalışmada, Python dilinin kendine has özellikleri tanıtılmış ve dünyada Python kullanımına olan yönelim araştırılmıştır.

Anahtar Sözcükler: Python, Programlama, Python Modülleri, Dinamik Kodlanan Diller.

Abstract: Innovations brought by technological developments further increased the interest and orientation to the software industry and so to programming languages. For this reason, selection of programming language in the departments where programming education is given has become an issue which has been discussed and emphasized. In the selection of programming language, the programming language which will be preferred needs to be easy to learn and be sufficient to give basic programming knowledge and skills to the students. In addition, preferred programming languages in commercial sector directly affect the choice of programming courses at the bachelor's degree education. From this aspect, it has been observed that the statically typed, popular programming languages, such as C, C++, Java, C#, are commonly preferred. In addition, dynamically typed languages such as JavaScript, PHP, Perl, Python, and Ruby are on the rise with the expansion of their usage field and growing number of users. In particular, Python, has become a preferred language in the software industry, in academic studies and in syllabus of universities. In this study, Python’s skills have been mentioned and orientation to the usage of Python in the world has been investigated.

1. Giriş

Bir programlama dilinin işlevselliği; yıllara meydan okuması, çağının ihtiyaçlarını karşılaması, sürdürülebilir olması, kullanım alanının geniş olması, yeniliklere açık olması gibi özellikleriyle paralellik göstermektedir. Ortaya çıktıkları ilk yıllarda etkin bir şekilde kullanılan ancak günümüzde bu etkinliğini kaybetmiş olan programlama dilleri mevcuttur. Örneğin, Pascal programlama dili bir dönem en çok tercih edilen dillerden biri olmasına rağmen günümüzde çok fazla rağbet görmemektedir [1]. Teknoloji ve bilim dünyasında, C, C++, C#, Java, Php ve Python gibi programlama dilleri ortaya çıktıkları yıllardan bu yana yaygın bir şekilde kullanılan programlama dilleridir. Python, ilk kez ortaya çıkışından bugüne, dünya genelinde kabul gören ve birçok alanda üzerinde uygulama geliştirilen bir dil olmuştur. Günümüzde Python’un akademik alanda, bilimsel çalışmalarda, teknolojik alanda, teknolojiye yön veren şirketlerde kullanılıyor olması ve
üniversitelerde programlama dersi olarak verilmesi, Python’un popülaritesini destekler niteliktedir. Python, güçlü standart kütüphanesi ve amaca göre sonradan eklenebilen modülleri sayesinde birçok alanda kendine yer edinmiştir. Örneğin; Spacepy, uzay bilimlerinde temel veri analizi, modelleme ve görselleştirme yapan bir Python paket yazılımıdır. Bu yazılım, iyi bilinen NumPy ve MatPlotLib paket yazılımlarının yetenekleri üzerine inşa edilmiştir [2]. Bir bulut depolama teknolojisi olan ve dünya genelinde yaygın kullanıcı ağına sahip olan Dropbox, Python ile geliştirilmiştir [3], [4]. SageMath; Magma, Maple, Mathematica ve Matlab gibi yazılımlara alternatif olarak geliştirilmiş, GPL lisanslı ve açık kaynak kodlu bir matematik yazılımıdır [5]. Bu yazılımın geliştirilmesinde, NumPy, SciPy, MatPlotLib, Sympy gibi Python modülleri kullanılmıştır [5]. SageMath
geliştirilirken, açık kaynak kodlu bilgisayarlı cebir sistemi projelerinden Maxima yazılımı ve Python ile geliştirilmiş olan GAP teknolojisinden de faydalanılmıştır. Dropbox ve benzeri ortamların alt
yapısında da kullanılmış olan Twisted, Python programlama dili ile yazılmış bir olay odaklı ağ programlama çatısıdır [4]. Twisted ortak ağ sunucularına ait birçok uygulamayı ve birçok ağ protokolünü desteklemektedir [4]. Yahoo tarafından satın alınan adres ve harita arama hizmetleri veren Four11’de de yine altyapı olarak Python kullanılmıştır. Yahoo maps, bugün hala Python kullanmaktadır. [4], [7]. Çok geniş bir kullanıcı
kitlesine sahip Yahoo groups web sitesinin dinamik alt yapısında çok büyük miktarda Python kodunun hızlı mesajlaşmayı sağladığı bilinmektedir [4], [7]. Pinterest, Python’un kapsamlı standart kütüphanesi ve açık kaynak kodlu modülleri kullanılarak hazırlanmış bir web sitesidir [8]. NASA ortaklarından olan United Space Allience şirketi, Python yazılım dilini İş akışı Otomasyon Sistemi (Workflow Automation System)’nde kullanan bir başka önemli kuruluş olarak ön plana çıkmaktadır [9].

2. Python ve Özellikleri

Python, ilk olarak 1990’lı yılların başında Guido Van Rossum tarafından geliştirilmeye başlanmıştır. Python’un ortaya çıkışında ve geliştirilme sürecinde, bir başka genel amaçlı yazılım dili olan ABC programlama dilinin etkisi olmuştur [10]. Van Rossum, Centrum Wiskunde & Informatica (CWI) isimli araştırma merkezinde, üzerinde çalıştığı ABC programlama dilinin sınırlı olduğunu, geliştirmeye açık olmadığını fark ederek ve ABC dilinin olumlu yanlarını alarak Python’u ortaya çıkarmıştır. Python, ilk sürümünden bu yana dikkatleri üzerine çeken ve dünya genelinde geniş bir kullanıcı sayısına ulaşan, nesne tabanlı ve dinamik kodlanan bir dildir.
Python, öncelikle söz dizimi (syntax) yapısındaki sadelik ve kolaylıkla dikkat çekmektedir. C++, C# ve Java gibi dillere kıyasla Python dilinde çok daha az satırla, daha okunaklı kod yazılabilmektedir.


Kod:
[b]//Ch ile yazılan //Java ile yazılan[/b]
[b](include "İostream" class jmerhaba {[/b]
[b]using namespace std; Public 5t* main(String args[])([/b]
[b]İrt majn|){ System.out.print[n("Merhaba Dünya”);]}[/b]
[b]Cout<"Merhaba Dünya"«endl;[/b]
[b]return 0;}[/b]
[b](Python ile yazılan //C# ile yazılan[/b]
[b]print ("Merhaba dünya”} public class Merhaba][/b]
[b]public static void Main])][/b]
[b]System.Console.WriteLine("Merhaba dünya");}}[/b]

[Resim: p1.jpg]
Şekil 1. Farklı programlama dillerinden örnekler

Ayrıca, Python’da kod yazılırken satırlardaki girintilerin (indentation) çok önemli oluşu, okunaklı ve düzenli kod yazma alışkanlığı kazandırmaktadır.
Python aynı zamanda nesne tabanlı bir dildir. Sözcük tipinde değişken tanımlamaya yarayan string (str) ve character (char) veri tipleri, sayı tipinde değişkenler tanımlayabildiğimiz integer (int), float gibi veri tipleri, listeler (lists), tüpler(tuples), sözlükler (dictionaries) ve dosyalar (files) Python’da değişken tanımlamak için kullanılan veri tipleridir. Bu veri tiplerinin her biri aslında birer sınıftır. Bu yüzden Python’da tanımlanan her bir değişken aslında ilgili sınıfa ait birer nesnedir.


Kod:
[b]şayi = 10[/b]
[b]print(şayi.__pow___(2))[/b]
[b]isim = 'Akademik Bilişim1 print(isim.count(1 i',1,14))[/b]
[b]isim.|[/b]
[b]m count(self, sub, start, end) str [/b]
[b]m capitalize(self) str [/b]
[b]® casefold (self) str [/b]
[b]m center(self, width, tillchar) str [/b]
[b]m encode (self, encoding, errors) str [/b]
[b]m endswith (self, suffix, start, end) str [/b]
[b]n> expandtabs (self, tabsize) str [/b]
[b]m find (self, sub, start, end) str [/b]
[b]m format(args, kwargs) str [/b]

[Resim: p2.jpg]
Şekil 2. Python ile tanımlanan değişkenler

Dinamik kodlanan bir dil olması nedeniyle Python’da tanımlanan değişkenlerin tipleri başlangıçta belirtilmemektedir. Tanımlanan
değişkenlerin tip kontrolleri programın çalışma anına bırakılmaktadır [11]. Statik kodlanan dillerde programa ait değişken tipleri derleme anında çözülür ve Virtual Method Table (V-table) içerisinde kaydedilir. Bu sebeple derleme anında bir hata tespit edildiğinde program çalışmayacaktır. Ancak, hatasız derlenen bir kodda, V-table’da oluşabilecek olası bir değişiklik sonucunda çalışma anında hata meydana gelecektir [12]. Günümüzde .NET gibi platformlarda JIT (just-in-time)
teknolojisi ile bu problemin önüne geçilmeye çalışılmaktadır. Dinamik kodlanan dillerde ise değişken tipleri çalışma anıyla eş zamanlı olarak V-table’a işlenmektedir. Late binding olarak da bilinen bu işlem sayesinde V-table’da oluşabilecek olası bir hatanın önüne geçilmiş olacaktır [12].

3. Python’un Kullanım Alanları

Python’un sahip olduğu zengin modüller (paket programlar), birçok alanda uygulama geliştirmeye
imkân vermektedir. Çalışma yapmak istenilen alanla ilgili olan modül, projeye “import modül_adı” şeklinde eklenebilmektedir.

3.1. Hesaplamalı Biyoloji ve Biyoenformatik Bilimlerinde Python Kullanımı

Python, özellikle bilimsel hesaplamalarda sıklıkla kullanılmaya başlanmasıyla birlikte, moleküler biyoloji, hesaplamalı biyoloji ve biyoenformatik alanlarında yapılan akademik çalışmalarda tercih edilen bir dil olmuştur. Python’un sunduğu biyoenformatik modülleri, NCBI, Ensembl gibi tüm dünyaca bilinen online veri bankalarına erişmeyi ve ilgili veri setlerini kullanarak proje geliştirmeyi mümkün kılmaktadır. Python’un Biomart paket yazılımı Ensemble Genome Browser altındaki verilere erişimi sağlamaktadır. Ayrıca, BioPython modülü hesaplamalı biyoloji ve biyoenformatik alanlarında kullanılan bir Python modülüdür [13]. BioPython ile BLAST, FASTA, Swiss-Prot, PubMed, KEGG, GenBank, AlignACE, Prosite, LocusLink ve PDB gibi farklı dosya formatlarına sahip veriler düzenlenerek işlenebilmektedir [14].
Python programlama dili ile yazılmış olan Phenix yazılımı makromoleküler yapı çözümlerinde ve modellemelerinde kullanılmaktadır [15]. Phenix, X-ışını kristalografisi gibi methodları kullanarak moleküler yapıların otomatik belirlenmesini sağlamaktadır [16].

3.2. REST API ve Web Çatısı Oluşturma

Python programlama dili sayesinde kısa sürede, daha hızlı bir şekilde web sunucuları kurmak ve yönetmek mümkündür. Python ile web tabanlı uygulamalar geliştirmeye yardımcı olmak için üretilmiş olan web çatılarından (web frameworks) bazıları Flask, Eve, Pyramid, TurboGears Django’dur [4]. Özellikle Django, kısa sürede web uygulaması hazırlamaya ya da web sunucusu kurmaya imkân sağladığı için tercih edilen bir web çatısıdır [17]. Python ile yazılmış olan Ramses yazılım paketi Pyramid web çatısı için RESTfull API üretmektedir [18].

3.3. Grafiksel Kullanıcı Arayüzü ve Oyun Yazılımları Geliştirme

Python’un güçlü yanlarından bir tanesi de sunduğu modüllerin hem iki boyutlu (2D) hem de üç boyutlu (3D) grafiksel uygulamalar ve oyunlar için gerekli alt yapıya sahip olmasıdır. Python’un Matplotlib modülü ile 2D grafik çizimleri yapılabildiği gibi MATLAB ve Mathematica yazılımlarına da benzer bir platform sağlamaktadır. WxPython, PyQt ve Tkinter grafiksel kullanıcı arayüzü
tasarlayabilmemizi sağlayan modüllerdir. Standart
Python kütüphanelerine ek olarak VPython, mplot3D, Pyglet modülleri eklenerek üç boyutlu grafikler tasarlanabilmektedir. Ayrıca, Panda3D, PySoy modülleri ile üç boyutlu oyun yazılımları geliştirilebilmektedir. MakeHuman yazılımı Python dilinde yazılmış açık kaynak kodlu bir yazılımdır ve 3D modelleme için kullanılmaktadır. [19]
[Resim: p3.jpg]
Şekil 3. MakeHuman 3D modelleme örneği [19]

3.4. Ağ Modelleme

Python’un ağ modellenmesinde kullanılan en güçlü modüllerden biri igraph modülüdür.
[Resim: p4.jpg]
Şekil 4. İgraph ile bir küçük dünya ağında hastalık salgınlarının simülasyonu (Simulation of outbreaks of disease on a small-world network) [21]
Python’un bir başka ağ modülü olan Networkx modülü, ağ simülasyonu oluşturmak ve ağ içerisindeki grafikleri işlemek için kullanılmaktadır. [20]. Python tabanlı bir ağ modelleme simülatörü
olan NS-3 yazılımı özellikle akademik çalışmalarda tercih edilmektedir [31].

3.5. Web Tabanlı Uygulamalar

Python web tabanlı uygulama geliştirmeye imkân vermektedir. CGI (Common Gateway Interface) ve WSGI (Web Server Gateway Interface) modülleri kullanılarak web uygulamaları hazırlanabilmektedir. CGI, web tarayıcılarından gelen bilgi alma taleplerini işlemek için web sunucuları tarafından kullanılan bir arayüzdür. CGI arayüzünün sınırlı sayıda web sunucusuyla çalışabiliyor oluşu Python geliştiricilerini yeni bir web sunucu arayüzü geliştirmeye yöneltmiş ve WSGI ortaya çıkmıştır. [22] , [23].

3.6. Bilimsel Hesaplamalar

Python’un sahip olduğu SciPy (Science Python), NumPy (Numerical Python) ve IPython (interaktif Python) modülleri temel matematik fonksiyonlar, çok boyutlu diziler, aralıklı matrisler, simetrik olmayan matrislerin öz değer analizi, sıralama ve seçme işlemleri, ayrık Fourier dönüşümleri, temel lineer cebir, temel istatiksel işlemler ve daha birçok matematiksel ve bilimsel hesaplamalar
yapılabilmektedir [24]. Matplotlib modülü
sayesinde de bu hesaplamalar gelişmiş grafiklerle ifade edilebilmekte ve yayınlanabilir kalitede çizimler yapılabilmektedir [25] .

3.7. Makine Öğrenmesi ve Veri Madenciliği

Python scikit-learn modülü ile makine öğrenmesi alanında hem denetimli hem de denetimsiz öğrenme çalışmaları yapabilmek, çeşitli sınıflandırma, kümeleme, tahmin işlemlerini yürütebilmek mümkündür [26]. PyBrain modülü de yine makine öğrenmesi alanında özellikle yapay sinir ağlarına yönelik çalışmalar yapmak isteyen kullanıcılar için tasarlanmış bir modüldür [27]. Bir veri madenciliği aracı olan Orange yazılımı Python altyapısını kullanmaktadır. Orange ile farklı dosya
[Resim: p5.jpg]
Şekil 5. Orange programının örnek bir ara yüzü
formatlarında yüklenen veri setleri çeşitli veri madenciliği algoritmalarıyla görsel olarak işlenebilmektedir.

4. Dünya’da Python’a Yönelim

Yazılım sektöründeki gelişmeler, teknolojik gelişmişlik düzeyine paralel olarak ülkeden ülkeye değişiklik gösterebilmektedir. Ancak, bir programlama dilinin popülerliğini, sektörde yaygın bir kullanım ağına sahip oluşu, iş imkânları, uygulama alanının geniş oluşu gibi durumlar etkilemektedir. Github 2008 yılında kurulduğu tarihten bugüne kadar geçen 7 yıllık sürede programlama dillerinin popülerliklerindeki değişimi gösteren bir grafik yayınlamıştır. Bu grafikteki verilere göre 2015 yılında en çok tercih edilen programlama dili JavaScript olmuştur. Java, 7 yıl boyunca istikrarlı bir şekilde popülaritesini arttıran ve en fazla gelişim gösteren dil olurken, Perl programlama dilinde 2009 yılından sonra keskin bir düşüş olduğu gözlemlenmiştir. Github verilerine göre, Python en popüler diller sıralamasında 5. sırada yer almaktadır. 2011 yılında Python popülaritesinde gözlemlenen düşüşü, Nokia’nın telefonlarında kullandığı Symbian işletim sistemi (Python for S60) üzerindeki desteğini çekmesine bağlayabiliriz [6], [31].

Şekil 6. Programlama dillerinin popülaritesinde son 7 yılda görülen değişim [33]

Philip Guo’nun yaptığı çalışmaya göre; ABD’de aralarında MIT, Berkeley, Michigan gibi saygın üniversitelerin de bulunduğu üniversitelerdeki toplam 39 bilgisayar bilimleri bölümünün 27’sinde Python eğitimi verilmektedir.
Programlama dillerinin ABD'dekı en iyi 39 bilgisayar bilimleri bölümünde programlamaya giriş dersi olarak verilme sayısı
50
[Resim: p6.jpg]
Şekil 7. ABD’de programlama dillerinin kazandırdığı yıllık ortalama maaşlar [29]

ABD’de, iş dünyasına yönelik dijital habercilik yayınları yapan Quartz ve uluslararası araştırma kuruluşu Brookings Institution’ın yaptığı ortak araştırmaların verilerine göre, programcılara en çok para kazandıran programlama dilleri arasında Python ilk üç içerisinde yer almaktadır.
ABD'de programlama dillerinin kazandırdığı yıllık ortalama maaş dağılımı
Şekil 9. ABD’de programlama dillerinin kazandırdığı yıllık ortalama maaşlar [29]
2014 yılında Webrazzi isimli teknoloji bloğunun Türkiye’deki yazılım geliştiricilerine yönelik gerçekleştirdiği anketle katılımcılara, demografik bilgilerinden eğitim bilgilerine, çalıştıkları şirketlerden, kullandıkları işletim sitemleri, kullanmayı tercih ettikleri programlama dillerine kadar farklı sorular yöneltilmiştir. Anketin sonuçlarına göre katılımcıların %70’inin eğitimini bilgisayar bilimleri üzerine aldığı ve ankete katılanların tam olarak yarısının C# kullanmayı tercih ettiği görülmektedir. C# programlama dilini sırasıyla PHP, Java ve Node.js takip ederken,
Python en çok kullanılan diller sıralamasında 5. sırada yer almaktadır.
[Resim: p7.jpg]
Şekil 8. Webrazzi anketine göre yazılımcıların en çok tercih ettiği programlama dilleri [30]

5. Sonuç ve Öneriler

Python programlama dili son derece güçlü, esnek ve işlevsel bir dildir. Python’un en çok kullanılan ve en stabil versiyonları Python 2.7 ve Python Python 3.4 ile proje geliştirmek oldukça rahat ve hızlı bir şekilde gerçekleşebilmektedir. Python ile belirli bir alanda yazılım geliştirmek isteyen bir programcı, çalışmak istediği alana uygun Python modülünü ücretsiz olarak mevcut Python platformuna ekleyerek geliştirmek istediği projeye odaklanabilmekte ve daha az satırla, daha kolay bir şekilde hedefine ulaşabilmektedir. Python dili kullanılarak yazılım geliştirilecek ortamlar ve yorumlayıcılar açık kaynak kodlu yazılımlardır. Bu nedenle sürekli geliştirilmekte ve ihtiyaca göre yeni modüller eklenebilmektedir. Ayrıca Python ile yazılan kodlar/projeler, platformdan bağımsız olarak; Windows, Linux, Unix ve Mac işletim sitemlerinde çalıştırılabilmektedir.
[Resim: imza.png]


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
PYTHON – Kullanıcıdan Veri Alma Morningstar 0 534 23-02-2020, Saat: 01:35
Son Yorum: Morningstar
Python – Veri Tipi Dönüştürme ( Type Casting, Type Conversion) Morningstar 0 658 23-02-2020, Saat: 01:34
Son Yorum: Morningstar
Python – Koşul İfadeleri Morningstar 0 473 23-02-2020, Saat: 01:31
Son Yorum: Morningstar


[-]
Etiket
python programlama yazılım eğitiminde dünyasındaki dilinin ve yeri öznitelikleri

Hızlı Menü: