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 ?

Mustafa Yuvarlak
M
1 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.

Ilker Cevher
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

Halil Lafçı
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

Ferhat Tatlısuluoğlu
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.

Kubilay Biçici
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

Umut Çakıray
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.

Ragıp Yurdagül
R

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

GS Serhat Uludag
G

Paralel programla hemde

GS Serhat Uludag 3 ay

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 3 ay

Sonuç olarak pyhton kusursuz diyebiliriz o zaman

GS Serhat Uludag 3 ay

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 3 ay

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

Mustafa Yuvarlak
M

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

Mustafa Yuvarlak
M

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

Fırat Kılınçer
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 3 ay

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

Botan Aykurt
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 3 ay

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 3 ay

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 3 ay

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 3 ay

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

Ilker Cevher 3 ay

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 ?

Mustafa Yuvarlak
M

Birde Linux tabanlı sistemler var

Mustafa Yuvarlak
M

Linux tabanlı sistem derken

Oğuzhan Kayak
O

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

Halil Lafçı
H

:DDDD

Oğuzhan Kayak 3 ay

fatal error

Ctn Burak 3 ay

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

Mustafa Yuvarlak
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 3 ay

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

Mustafa Yuvarlak 3 ay

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 3 ay

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

Mustafa Yuvarlak 3 ay

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

Mustafa Yuvarlak 3 ay

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

Oğuzhan Kayak
O

Aynen

Mustafa Yuvarlak
M

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

Oğuzhan Kayak
O

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

Mustafa Yuvarlak
M

neden?

Ferhat Tatlısuluoğlu 3 ay

Android Java ile yazıldığından

Mustafa Yuvarlak 3 ay

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

Umut Çakıray 3 ay

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

Mustafa Yuvarlak 3 ay

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 3 ay

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.

Halil Lafçı
H

Kivy pek beni tatmin edecek gibi değil

Mustafa Yuvarlak 3 ay

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

Mustafa Yuvarlak 3 ay

Native

Mustafa Yuvarlak 3 ay

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

Umut Çakıray 3 ay

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

Oğuzhan Kayak
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 ?

Mustafa Yuvarlak
M

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

Oğuzhan Kayak
O

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

Mustafa Yuvarlak
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 3 ay

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

Mustafa Yuvarlak
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 3 ay

Anladım

Mustafa Yuvarlak 3 ay

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ı

Botan Aykurt
B