Ana içeriğe atla

Bilimsel Araştırma için Python - 10 Neden

Python'un önemli bir özelliği bir çok alanda rahatlıkla kullanılıyor olmasıdır. Python; GNU/Linux işletim sistemlerinde sistem ve betik kodlamada kullanıldığı gibi Matlab'ın yerine bilimsel araştırmalarda, deneylerde de kullanılabilen geniş bir uygulama alanı yelpazesine sahiptir.

Yeni gördüğüm bir yazıda, Python deneyimini bilimsel araştırmada 10 neden şeklinde yazıldığını görünce, bir Python "avukatı" olarak (belirteyim ki Oracle'ın Sun'ı satın alması, Google'a karşı Oracle hamleleri beni Java yerine alternatif olarak Python'u daha sık düşünmeye itiyor) yazıyı paylaşmam farz oldu. Yazıda aşağıda özetle verdiğim başlıkların ayrıntısına ulaşabilirsiniz.

1. Özgürlük: Python özgür yazılımdır. Açık kaynak koda sahiptir (özgür yazılım olmanın gereği). Windows, GNU/Linux, Mac OS vb. işletim sistemlerinde rahatça çalıştırılabilir.
2. Okunabilirlik: Python kodları yapısı gereği oldukça rahat okunabilen kodlardır. Söz dizimi tasarlanırken okunabilirlik ana amaçlardan biri olarak düşünülmüştür.
3. Belgelendirme sistemi: epydoc gibi araçlar ve doc string'ler sayesinde kodunuzu yazarken bir taraftan o kodun belgelendirmesi de yapılabilir.
4. Yüksek seviye - düşük seviye: Python'da yüksek seviyeli programlama ile düşük seviye programlama arasında bir denge kurulabilir. Farklı makine kodu üreten araçların yardımıyla neredeyse C kodu kadar hızlı çalışan Python kodu yazmak mümkün.
5. Standart kütüphane: Düzinelerce modül içeren oldukça kapsamlı standart kütüphanesi size gereken neredeyse çoğu şeyi sunmaktadır. Python'un bu konudaki felsefesi "piller dahildir" şeklindedir.
6. Bilimsel çalışma için üçüncü parti açık kaynak kütüphaneler: NumPy, SciPy (birlikte Matlab'ın çoğu işlevselliğini gerçekleştirirler), iPython (geliştirilmiş Python kabuğu - hata ayıklama, kod kesitlendirme vb. şeyleri sağlıyor), Cython - kütüphanelerle ilgili ayrıntılı bilgi için bağlantıyı ziyaret edebilirsiniz.
7. Veri yapıları: Python listeleri, tupleları, kümeleri, sözlükleri, karakter dizilerini, iş parçacığı güvenli kuyrukları, ve bir çok veri tipini destekliyor. NumPy ve SciPy'nin eklenmesiyle n-boyutlu dizi nesnesi (Matlab'ın matrislerinden daha fazla işlevselliğe sahip) desteği de kazandırılabiliyor.
8. Modül sistemi: Python kullandığı modüler programlama sayesinde kodun hiyerarşik bir yapıya kavuşmasını sağlıyor ve kodun tekrar kullanımı da artmış oluyor.
9. Proje ölçeklenebilirliği: Python hem küçük betikler hem de oldukça büyük projeler üretilmesine olanak sağlıyor. Pythonla 20 satırlık bir kod yazabileceğiniz gibi bir çok modülden oluşan ve bir çok modülü kullanan bir büyük proje de yazabilirsiniz.
10. Farklı paradigmaları destekleme: Python fonksiyonel, prosedürel, ve nesne yönelimli programlama paradigmaları arasında rahatlıkla geçiş yapmanızı sağlar.

Kaynak: http://www.stat.washington.edu/~hoytak/blog/whypython.html
Python öğrenmeye başlamak için: http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/

Yorumlar