Python, basit ve okunaklı sözdizimi sayesinde öğrenmesi kolay bir dildir. Bu dil, web siteleri, uygulamalar ve oyunların geliştirilmesi, veri analizi, sistem yönetimi, test etme gibi çeşitli görevler için kullanılır. Ukraynalı iş arama hizmeti Djinni'ye göre, Python geliştiricileri için yaklaşık 1.800 açık pozisyon bulunmaktadır ve bir aday ayda ortalama 10 iş teklifi almaktadır.
Python'u işlerinde nasıl kullandıklarını sormak için uzmanlara başvurduk. Aşağıdaki uzmanlar bilgilerini bizimle paylaştı:
- Holidu'da Veri Bilimcisi ve "Zaman Serilerinin Tahmini ve Analizi" kursu eğitmeni Kristina Isakova;
- Wargaming'de Yapay Zeka Oyun Geliştiricisi, Ekip Lideri, Kıdemli Yazılım Mühendisi Alexander Pindyk;
- Wirex Ar-Ge'de Sistem Ürün Sahibi Artem Topol;
- a-Gnostics'in kurucu ortağı ve CTO'su Yaroslav Nedashkovsky.
Data Science, Data Analytics ve Data Visualization
Python Geliştiricileri Anketi 2020'ye göre, anket katılımcılarının %55'i verilerle çalışmak için bu dili kullanıyor.
2019 verileri, veri bilimcilerin %87'sinin büyük miktarda bilgiyle çalışırken bu dili kullandığını gösteriyor.
Kristina Isakova: "Veri bilimcileri, veri analistleri ve veri mühendisleri genellikle birlikte çalışır ve sonuçları paylaşırlar. Bir ekip aynı araçları kullandığında, işi büyük ölçüde basitleştirir.
Python, istatistiksel analiz ve tahmin için kütüphaneler, görselleştirme için çok çeşitli paketler gibi veri analizi ve işleme için tüm araçlara sahiptir. İş ve pazar gereksinimlerine uyum sağlayan kütüphanelerin sayısı artıyor.
Bu dil çok esnektir. Verileri işlemenize, modeller oluşturmanıza, web siteleri oluşturmanıza olanak tanır. R veya Matlab'den farklı olarak Python, akademik kullanımın ötesine geçerek diğer projelerle entegrasyonu kolaylaştırır. Time series (zaman serileri) belirli bir zaman aralığında kayıtlı bir değişkenin istatistiksel değerleri dizisi ile çalışır. Site trafiğini izlemeye, satış döngüsünü analiz etmeye, sistemlerin sağlığını kontrol etmek için mekanizmalar oluşturmaya (sunucu yükü, sıcaklık seviyesi) ve tıbbi verilerle (nabız, kalp atış hızı) çalışmaya yardımcı olurlar. Zaman serileri ayrıca tahmin, izleme, anormallik tespitinde de kullanılır. Python, zaman serileriyle çalışmak için birçok kütüphane ve araca sahiptir. Böylece, istatistik modelleri kütüphanesini kullanarak seriyi bileşenlere ayırabilirsiniz: trend, mevsimsellik ve artıklar. Otokorelasyon ve kısmi otokorelasyon da keşfedebilirsiniz.
Statsmodels, üstel yumuşatma ve Holt-Winters modelleri gibi zaman serisi yumuşatma ve tahmine dayalı model oluşturma araçları sunar. Birçok analist tarafından kullanılan Pandas kütüphanesi, zaman dizini oluşturmayı kullanarak zaman serileriyle çalışmayı kolaylaştırıyor. Python, düzinelerce grafik kütüphanesi sağlar. Grafiksel bir temsil veya etkileşimli bir arsa oluşturmak için - örneğin, Pandas Visualization veya Plotly bir kütüphane almanız gerekir.
Yaroslav Nedashkovsky: "Python, Veri Bilimi için ana dilimizdir. Bunu hem DataOps görevleri (veri toplama, doğrulama, temizleme) hem de ModelOps (eğitim, yeniden eğitim, model sürüm oluşturma vb.) için kullanıyoruz. Ayrıca, endüstriyel ekipmanlardan gelen verileri analiz etmek için platformumuz olan a-Gnostics'in hizmetlerinin çoğu Python'da yazılmıştır.
Dilin birkaç günde bir prototip oluşturmayı mümkün kılması önemlidir.
Ancak dezavantajları da var. Bazı geçici ve optimal olmayan çözümler kalıcı hale gelebilir (düşük giriş eşiği ücreti). Ancak bir kod incelemesi (code review) yaparsanız sorun ortadan kalkacaktır. Ayrıca hız ve hafıza sınırlamaları gibi eksiklikler de var, ancak bunlar kritik değiller. Doğru kod yazımı ve hizmetlerin organizasyonu ile herhangi bir sorun olmamalıdır.
Python, veri analizi problemlerini çözmek için iyi bir altyapıya sahip en iyi araçtır. Veri Biliminde otomasyonun hızlı gelişimi (örneğin, kodda minimum değişiklikle buluttaki veri boru hatlarını ölçeklendirmenize izin veren coiled.io hizmeti ortaya çıktı), bir ürün oluşturmaya daha fazla odaklanmanıza izin veriyor.
Ayrıştırıcılar, Python ile internet üzerinde bilgi toplama işlemleri için kullanılır.
Dil kütüphaneleri, önemli makine öğrenimi görevlerinin çözümüne yardımcı olur. Bu kütüphaneler aşağıdakileri içerir:
- Scikit-Learn, temel makine öğrenimi algoritmalarının işlenmesi için kümelenme, doğrusal ve lojistik regresyon, sınıflandırma ve diğerleri gibi.
- TensorFlow, sinir ağlarıyla çalışmak için.
- Pandas, üst düzey veri yapıları ve analizi için.
- Keras, hızlı bilgi işlem ve prototip oluşturma için.
- NLTK, hesaplamalı dilbilim, doğal dil tanıma ve işleme ile çalışmak için.
- Scikit, görüntü işleme için.
Python, fintech alanında da talep görmektedir. HackerRank, 2016 yılında işverenlerin aktif olarak hangi dillere ihtiyaç duyduğunu araştırdı ve fintech (kripto para birimleri, bankacılık yazılımı, analitik araçlar) için Python en popüler diller arasında yer aldı.
2021'de durum değişmedi: eFinancialCareers'a göre Python geliştiricileri, diğer dillerdeki geliştiricilere kıyasla en açık pozisyonlara sahiptir.
İşletmeler, geliştirme aşamasında ölçeklenebilir ancak basit ve farklı kitaplıklar ve bileşenlerle uyumlu çözümlere ihtiyaç duyar. Bu nedenle bir dil seçerken, API bağlantısı, entegrasyon ve güvenlik üç faktör dikkate alınır. Python, üçüyle de başa çıkmanıza izin verir ve hatta açık kaynaklı finansal kitaplıklardan oluşan geniş bir ekosistem sunar.
Python kullanarak şu kütüphaneleri kullanabilirsiniz:
- NumPy hızlı vektörleştirilmiş dizi işlemleri için kullanılır.
- Bilimsel sınıflar ve işlevlerden oluşan bir koleksiyon olan SciPy.
- Statik bir derleyici olan Cython, hibrit Python ve C kodu için kullanılır.
- Zaman serilerini ve tablo verilerini yönetmek için Pandas.
- G/Ç ve diğerleri için PyTables.
Python ile MVP yazarak, hızlı bir şekilde bir pazar ve müşteri bulabilirsiniz. Clearminds platformu, Python ve Django ile yazılmıştır ve MVP yaklaşımının başarılı kullanımına bir örnektir. Bu platform, finansal danışmanlık ve yatırım araçları sunmaktadır.
Artem Topol: "Python, neredeyse tüm Fintech alanlarında yaygın olarak kullanılıyor. Devasa modül tabanı sayesinde özellikle Veri Bilimi ve Kantitatif Analiz için kullanışlıdır. Matematiksel istatistik, ekonometri ve olasılık teorisi alanındaki tüm problemlerin yaklaşık %95'i, birkaç dakika içinde Python kullanılarak çözülebilir.
Python ayrıca, profesyonel varlık yönetimi şirketleri, yüksek frekanslı ticaret şirketleri ve serbest fonlar tarafından piyasa süreçlerini tanımlayan uygulamalı matematiksel modeller veya menkul kıymet fiyatlandırma modelleri oluşturmak için kullanılır. Diğer dillere kıyasla performansı düşük olduğu için, nihai uygulama genellikle Python'da yazılmaz. Ben bir analistim ve Python'u sık sık ve kapsamlı bir şekilde kullanıyorum. Wirex ile ilgili yeni bir 3. parti ile çalışmam gerekiyor. Bu nedenle, 3. parti ile entegrasyon yapmak için dokümantasyonu Python kullanarak hazırlıyorum ve tüm iş akışını tamamen düşük seviyede geçiyorum. Bu, tüm olası durumları anlamanıza ve tanımlamanıza olanak tanır.
Ayrıca, Python'da veri örnekleri oluşturmak, istatistiksel göstergeleri hesaplamak ve görselleştirmek kolay ve hızlıdır, bu da zaman kazandırır.
Web Geliştirme
Python, sunucu taraflı bir programlama dili olduğu için, web uygulamaları için sıklıkla kullanılır. Çeşitli kaynaklardan alınan istatistiklere göre, Python, arka uç geliştirmede lider dildir.
Python'da iş mantığı oluşturabilir ve veritabanıyla etkileşim kurabilirsiniz. Kitaplıklar dili genişletir. Örneğin, veri analizi ve matematiksel algoritmalar için Numpy, scikitLearn ve bileşik SQL sorguları kullanılabilir. Ve hepsi açık kaynaklıdır: Python'u kullanmak ve dağıtmak ücretsizdir.
Python ayrıca, web uygulamalarının geliştirilmesini hızlandıran araç grupları gibi birçok çerçeveye sahiptir. Popüler olanlar arasında Django, Flask, Pyramid, Web2Py ve Turbogears bulunur. URL yönlendirme, veritabanı erişimi, HTTP istekleri ve yanıtları gibi uygulamanın belirli bölümlerinde yardımcı olacak standartlaştırılmış kod paketleri ve modülleri içerirler.
Oyun Geliştirme
Battlefield 2, Pirates of the Caribbean, Sims 4, Disney's Toontown Online (grafikler için Panda3D'yi de kullanır) ve diğer popüler oyunların özelliklerinde ve eklentilerinde Python kullanılır. Oyun endüstrisinin gelişmesiyle birlikte, basit olması ve video oyunlarını hızlı bir şekilde prototiplemenize izin vermesi nedeniyle dil giderek daha fazla tercih edilmektedir.
Alexander Pindyk: "Python ile yazarsanız, basit, anlaşılır ve güzel bir kod elde edersiniz. Bu, iş mantığına odaklanmanıza olanak tanır. Gamedev'de mekanik ve özellikler geliştirilirken çok sayıda hızlı yineleme yapılması gerekir ve Python bu süreci kolaylaştırır. Her yeni yineleme ne kadar hızlı yapılırsa, oyundaki özellikler de o kadar yüksek kaliteli olacaktır. Python ayrıca, birçok kişinin ilk dil olarak öğrendiği kolay bir eşiğe sahiptir. Bu nedenle bir uzmanı bulmak, bir C++ uzmanı bulmaktan çok daha kolaydır. Gamedev'in büyüme oranı göz önüne alındığında, Python uzmanlarına olan talep şu anda oldukça yüksek.
Gamedev'de Python nasıl kullanılır:
Test otomasyonu. Python, oyun istemcisini çalıştırmaktan, test senaryolarını yönetmeye ve test sonuçlarını işlemeye kadar, eksiksiz bir test döngüsü oluşturmak için uygundur. DevOps için, dağıtımı otomatikleştirmek, sunucuları yapılandırmak ve çeşitli yapılandırma türleriyle çalışmak, ayrıca çeşitli oyun hizmetlerinin durumu hakkında bilgi toplamak ve görselleştirmek için kullanılır.
Oyuna yakın ek hizmetlerin yazılması. Örneğin, çeşitli kaynaklardan yapılan ödemelerin doğrulanması, şirketin ve oyunun arka uç web hizmetleri, istatistik hizmetleri ve oyun için diğer yararlı eklentilerin yazılmasıdır.
Python, motorun ana betik dili olarak da kullanılabilir. Örneğin, Wargaming'de World of Tanks, World of Warships ve World of Warplanes gibi oyunlara güç sağlayan BigWorld motoru için kullanılır. Oyunlar zorlaşıyor. Sektör, oyun hizmetlerine veya ek sosyal mekaniği olan oyunlara doğru ilerliyor. Bir oyun ne kadar çok sosyal bir platform haline gelirse, o kadar çok hizmete ihtiyaç duyar ve bunları geliştirmek için o kadar çok Python kullanılır."
Önemli çerçeveler aşağıdakileri içerir:
- Pyglet, pencereleme, program olay yönetimi, oyun çubukları, OpenGL grafikleri, resim, ses, müzik ve videoları her biçimde yükleme işlemlerini destekler.
- Panda3D, C++ ile yazılmış, eksiksiz bir Python bağlama seti içeren bir 3B motorudur. Gelişmiş seçenekler, gölgeleme, şablon ve doku oluşturma dahil.
- PyKyra Pyglet, platformlar arası bir pencereleme ve ortam kitaplığıdır. Kyra motorunun yanı sıra tüm SDL'leri destekleyen en hızlı Python oyun geliştirme ortamlarından biridir. PyKyra ayrıca MPEG video, MP3 ses, Ogg Vorbis, Wav ve daha fazlasını destekler.
- Ursina, oyun sırasında kod, doku ve modelleri yeniden yüklemenize, .psd ve .blend dosyalarını otomatik olarak içe aktarmanıza, geliştirme sırasında tam ekran modunda oynamanıza izin veren bir motordur.
SEO
SEO, IT alanı ile ilgili olmasa da Python burada verimliliği de arttırır. Python bir RSS beslemesi oluşturmak, bir metin yazarı için teknik bir görev yazmak, günlükleri analiz etmek ve diğer işlemleri otomatikleştirmek için kullanılabilir.
Aşağıdaki örneklere bakalım:
Bir site yeni bir adrese taşındığında, eski adresten gelen bağlantılar genellikle bozuk gelir ve kullanıcıyı bir hata sayfasına yönlendirir. URL eşleştirme teknolojisi, belirli eski bağlantıları yeni adreslerle eşleştirerek URL'leri oluşturabilir. Python ile bu, büyük hacimli sayfaları yöneterek otomatik bir şekilde yapılabilir.
Dil, iç bağlantıları - miktar, durum, etiketler, yön - analiz etmek için bir strateji oluşturmanıza olanak tanır. Site büyükse, bunu manuel olarak yapmak neredeyse imkansızdır. Başka bir örnek, genellikle resimlerde kaybolan bir web sitesinin yükleme hızını izlemektir. Python, görüntüleri optimize etmek ve kaliteden ödün vermeden boyutlarını küçültmek için kullanılır.
Python'un basit tasarımı ve sözdizimi, yeni programlama dillerine ilham kaynağı olmuştur. Cobra, CoffeeScript ve Go, Python'a benzer bir sözdizimi kullanır.
Bu, Python'u bilmenin başka alanlara geçmenize yardımcı olabileceği anlamına gelir.