Neden Python öğrenmeliyim?

Arkadaşlar Python'nun kolay öğrenilmesi dışında neden Python seçeyim? Birde Python perfomans konusunda kötü diye duymuştum doğru mu ?

M
0 kişi takip ediyor.
Misafir olarak yayınla
27
27 CEVAP

18 yildir kullaniyorum, bir zararini gormedim.. Performans konusunda ne duydugunuzu bilmiyorum. Ama uygulamanizin hizli calismasi pek cok seye baglidir. En hizli dediginiz dilde, algoritmaniz kotu ise, python ile yazilmis ama algoritmasi iyi olan uygulamadan daha yavas kalabilirsiniz.. Yurtdisinda yazilimcilarin ortalama kazanclarina bakacak olursaniz, python yazilimcilarinin oldukca ustlerde yer aldiklarini da gorursunuz.. Ogrenmesi kolaydir. Daha anlasilir kodlar yazarsiniz.. Kimilerine sacma gelse de, dilin kendisi girintileri kullanarak kod bloklarinin baslangic bitislerini saptadigindan, adam gibi kod yazmaniz ( adam gibi olmayan koddan kastim, girintileri dert etmeyen dillerde hic girinti kullanmadan yazmak gibi) zorunludur.

I

Tek sorunu söz dizimi (benim açımdan). Parantez yerine tab karakteriyle fonksiyon yazmak beni ayar ediyor açıkçası Her programlama dili gibi python'da bir gün tarih olacak yaşlı bir dil. 2016 başında swift ile linux'a uygulama geliştirebiliyor olacağız. Popüler tüm programlama dillerinin iyi yanlarının tek bir dilde birleştirilmiş güçlü bir dil konumunda aklınızda bulunsun

H

ne için kullanacağına göre neden sorusunun cevabı da değişebilir. Sırf öğreneyim her şeyi bunda yazayım diyorsan, yanlış yoldasın bence

F

Yazacağınız yazılıma göre performans için python iyi de olabilir kötü de. Ondan bahsetmelisiniz. Neden Python u seçeyim sorusuna da; 1-) evet öğrenme sürecin hızlı olur,
2-) Geliştirme sürecin sancısız ve hızlı olur
3-) Revizeleri daha kolay yaparsın.

K

'perfomans konusunda kötü'

Evet, C++ kadar hızlı değil, ancak neden olsun ki? 1995'te değiliz ki, herkeste en az 2 ghz işlemci var. Eskiden yazdığın programın hızlı olması gerekiyordu, artık senin ürünü hızlı çıkarman gerekiyor, bu yüzden python kesinlikle 'kötü bir tercih' değil. Ancak evet, 100x100 bi matrisi python'da çarpmak mı daha mantıklı, C++'ta mı dersen tabiki C++ derim ancak, şöyle bi durum var, numpy C++ ile yazılmış bir python kütüphanesi, yani python'dan bu işi rahatlıkla yapabiliyorum. Dolayısıyla yine python yine python

U

Python Nesne tabanlı bir dildir. Eğer hıza ihtiyaç duyuyorsanız Fonksiyonel bir dil seçmeniz ve Parallel programlama ile ilerlemeniz daha doğru olacaktır.

R

Python performansı kötü olsaydı nasa envanterine girmezdi

G

Paralel programla hemde

GS Serhat Baskın 5 yıl

aslina bakarsan, ornegin biyoenformatikte, cokca python kullanilir.. Nereden biliyorsun diye soracak olursan, paralel hesaplama merkezinde calisiyorum.. Cogu python kutuphanesi, zaten c/c++ ile yazilmis olanlarin wrapperidir. Diger dillerle yazilmis uygulamalarin yaninda, python ile yazilmis olan ve superbilgisayar uzerinde kosan pek cok uygulama var. Paralel network arabirimi dedigin seyi tam anlayamadim.. Biz burada Infiniband kullaniyoruz.. Infiniband, fiziksel ag altyapisi, sistemler arasinda 40 Gbit/sn hizinda haberlesmeyi sagliyor.. O altyapiyi kullanan kutuphaneler var. Ornegin Openmpi. Openmpi c/c++ ile yazilmis bir mesajlasma kutuphanesi. Infiniband ya da normal ethernet uzerinden de calisabiliyor. Python uygulamasinin openmpi ile calismasi icin, python kaynak kodlarini openmpi kullanacak sekilde yeniden derliyoruz.. O zaman elimizde mpi adli bir modul oluyor. Bu modulu kullanarak, sistemler arasi haberlesmeyi sagliyor, algotritmamizi paralel yazabiliyoruz.. Uzun zaman once kendi yuksek lisans tezimde yazdigim simulasyonu python ve mpi ile yazmistim. http://manap.se/tez adresinden bakabilirsiniz.. Paralel programlama konusunda detay isterseniz biraz daha anlatabilirim tabii ki..

Ilker Cevher 5 yıl

Sonuç olarak pyhton kusursuz diyebiliriz o zaman

GS Serhat Baskın 5 yıl

saf python ile yazilmis pupyMPI var. Ping pong testlerinde openmpi iyi gorunurken allgather gibi collective operasyonlarda neredeyse ayni sonuclari almislar.. Makalenin yazarlari Rune Bromer, Frederik Hantho, Brian Vinte.

Ilker Cevher 5 yıl

Demek performans konusunda o kadar kötü değil diyorsunuz

M

Bende genellikle Web sitesi ve Linux üzerine uygulama geliştirmek istiyorum

M

yanlış bilgi Python performans olarak en hızlı dil olabilir şeklinde duyumlar duymuştum

F

abi öyle birşey olma ihtimali yok, ilk olarak python'da bütün stringler unicode, ayrıca çok fazla soyutlama katmanı var, python'un optimize C++ kodu kadar iyi performans vermesinin yolu yok, ancak Pypy'ın içinde gelen JIT kesinlikle uzun süren işleri hızlandırıyor, ilerleyen zamanda gelecek olan STM ise birden fazla thread'in birbirlerini bloklamasını önleyecek, keza async ve await geldi 3.5'te, o da coroutine'lar ile concurrent uygulama yazmanı sağlıyor, yani leş durumda değili fakat en hızlı durumda hiç değiliz, fiyat/performans birincisi olabiliriz ama

Umut Çakıray 5 yıl

Derlenen diller varken pythonun en hızlı olmamaz mesala 3d olayına gireceksen kesınlıkle python yanlış bir seçim yada cpu ile hallay çekeceksen aşırı yanlış bir seçim olay ne kadar büyürse o kadar yavaşlıyor python bkz: Inkspace Gımp

B

abi yazdığının çoğuna katılsam da 'olay ne kadar büyürse o kadar yavaşlıyor python' cümlesine katılmıyorum çünkü python ile devasa uygulamalar yazabilirsin, çok yüksek hızda çıktılar üretebilirsin, veya gerçekten çok detaylı hesaplar yapabilirsin, tek problem ne kadar işlemciyi yoracağın. Eğer 1000x1000 iki matrisi çarpacaksan numpy ile python kullanırsan kötü bi seçim olmaz.

Umut Çakıray 5 yıl

biyoenformatik uygulamalarini inceleyin, cogunun python oldugunu gorursunuz.. Milyonlarca 500kb text dosyalarin okunup, istatistik olarak yanyana gelecek olanlarini bulmaya calisirlar dna dizilimi yapan uygulamalar. Paralel programlamada marifet, her node icin uygun veri miktari ve islem gucunu, algoritmanizda iyi ayarlayabilmektir. Cogu yerde, yanlis sistem tasarimi nedeniyle, cpu degil disk I/O icin beklersiniz..

Ilker Cevher 5 yıl

500kb mi? Abi bize gelen 1 sample 100 mb falan, onu alıp belli analiz tool'larından geçiriyoruz, çoğu C bu toolların ve python bindingleri yok, dolayısıyla subprocess yapmamız gerekiyor. Uygulamayı bi kere debugladım, C uygulaması olmasına rağmen %80'lik vakti io alıyor. Daha sonra bu uygulamanın çıktısını alıp python'da başka kütüphanelere sokuyoruz, onlar da C ile yazılmış kütüphaneler. İşimizi hızlandıracak tek şey elimizdeki bütün C uygulama ve kütüphanelerini Python ile sıfırdan yazıp hadoop'ta mapreduce yaparak kullanmak, çoğu thread'li çalışmasına rağmen io'da vakit kaybediyor. Bi kere io ile vakit harcayıp, sonra bütün işini map'leyip işlemciyi dibine kadar sömürüp reduce'layacaksın. (üstte bahsedilen iş genelde dna'nın dizilenmesi ile ilgili, bazı analizleri hadoop'a portlamayı hayal etmek bile zor geliyor bana, biyoenformatik firmasında çalışsam bile biyoenformatik algoritmalar benden üç dört gömlek büyük geliyor)

Umut Çakıray 5 yıl

Benim bahsettigim 2010-2012 yilindan kalma.. Dna dizilim cihazi dnayi parcalayip duvara firlatiyor, firlatilan parcalarin resmini cekip dizilimleri cikariyor, sonra da istatistiksel olarak birlestirmeye calisiyor.. Size gelen veri dizilimden gecmis veridir buyuk ihtimalle.

Ilker Cevher 5 yıl

Umut Çakıray sizin donanim altyapinizin duzenlenmesi gerek.. Hersey bulutta mi, kendi sistemleriniz var mi?

Ilker Cevher 5 yıl

Arkadaşlar Python'nun Web'de başarılı olduğunu duydum Markofoniydi herhalde Python kullanıyorlarmış çoğunlukla bende genellikle Web ve Masaüstü uygulamaları için kullanacağım sorun çıkarmaz demi ?

M

Birde Linux tabanlı sistemler var

M

Linux tabanlı sistem derken

O

Linux'ta biraz zor çalışır ama denemek lazım: D

H

:DDDD

Oğuzhan Kayak 5 yıl

fatal error

Ctn Gücer 5 yıl

Linux çekirdeği kullanan sistemler Geliştirme kartları, Tizen, Android gibi

M

Geliştirme kartları içersinde beaglebone, rpi, bananapi, vs. Vs. Sorun değil, hatta rpi özellikle python öneriyor. Android'e uygulama yapma şansın var, ancak pek önerdiğim birşey değil, android en güzel java ile gidiyor, keza bütün işletim sistemi java. Tizen'le problem yaşarmısın, bilmiyorum ama pek problem yaşayacağını sanmıyorum. FirefoxOS ile kesin yaşarsın, UbuntuMobile ile kesin yaşamazsın.

Umut Çakıray 5 yıl

Ubuntu Mobile, Tizen de sorun yaşamazmıyım ?

Mustafa Yuvarlak 5 yıl

Mustafa Yuvarlak Ubuntu Mobile zaten bildiğin ubuntu, özel birşey değil. Tizen ile python'un çalıştığını biliyorum ama hiç detaylıca araştırmadım.

Umut Çakıray 5 yıl

Tizen'nin sadece C/C++ desteklediğini biliyordum Pythonuda destekliyorsa harika

Mustafa Yuvarlak 5 yıl

Normal Ubuntu'ya yazdığımız kodu hiç değiştirmeden Mobilde de mi çalışıyor ?

Mustafa Yuvarlak 5 yıl

Demek istediğini anlamadım bu sistemlerde uygulama mı yazıcaksın

O

Aynen

M

Androidde kesinlikle deneme. Linux çekirdeğine bakmaz bu işler.

O

Biliyorum Android'i Java haric hiç bir şey kesmez

M

neden?

Ferhat Hözen 5 yıl

Android Java ile yazıldığından

Mustafa Yuvarlak 5 yıl

C++ ile Java, JDK dışında NDK da sunuyorlar uzun süredir.

Umut Çakıray 5 yıl

C/C++ yazıldığını biliyorum ama C/C++ neredeyse her şeyde kullanıyor

Mustafa Yuvarlak 5 yıl

Android C++'da yazıldı demek istememiştim, Android'e Java ya da C++ yazabilirsin demek istemiştim. C++ desteği de ilk sürümlerde yoktu, sanırsam 4 ile gelmişti NDK.

Umut Çakıray 5 yıl

Mobil platformlara ilk etapta native olarak yazmayı deneyin. Eğer zaman ve maliyet konularında kısıtlı iseniz, Hibrit olarak geliştirme yapabilirsin. Ionic Framework, Onsen UI, Cordova.. Gayet başarılı kütüphaneler.

H

Kivy pek beni tatmin edecek gibi değil

Mustafa Yuvarlak 5 yıl

Netice Java dışı oluyor da Hibrit geliştirme ne oluyor ?

Mustafa Yuvarlak 5 yıl

Native

Mustafa Yuvarlak 5 yıl

Mustafa Yuvarlak Hibrit, web sitesi yazıyorsun, webview ile normal uygulama gibi açılıyor. facebook, linkedin, birçok uygulama hibrit.

Umut Çakıray 5 yıl

Kesmesinden değil yeterince geliştiricileri yok bir avuç geliştiricisi var ve gelişimide haliyle yavaş

O

Anladığım kadarıyla Python'nun performansı geliştirildiği platforma göre değişiyor. Neredeyse tüm geliştirme kartları destekliyor Ubuntu Mobile ve Tizen'de çalışabilir Android'de ise sıkıntı doğru anlamışmıyım ?

M

Evet androidde sıkıntı büyük

O

Neyse bizde Android'den şimdilik vazgeçelim ilerde belki sıkıntılar çözülür

M

Yakın dönemde, hayır, uzun dönemde, sanmıyorum. Android'de java dışında birşey kullanmak çok mantıklı gelmiyor. Hibrit istisna, hibrit de java kullanıyor, ama sadece webview widget'ını kullanıyor, kalan herşey webview içinde dönüyor. Özetle, Android == Java.

Umut Çakıray 5 yıl

Hybird'i biraz araştırdım da hiç Python görmedim hepsi HTML Javascript

M

Python'la hibrit yaparsın demedik ki, webview ve websitesi dedik, dolayısıyla sadece html css ve js ile yapıyorsun uygulamayı

Umut Çakıray 5 yıl

Anladım

Mustafa Yuvarlak 5 yıl

javayı c++ keser androide azda olsa. Onlarca framework sdk var android ndk, Marmalade sdk(3d game), cocos2d, corona sdk daha ne olsun hem uygulama hem oyun yapabılırsın bunları bu kadar saysamda artık tavsıye etmıyorum c++'nin syntax beni aşırı yormaya başladı

B