| scikit+numpy bambambam |
Hocam sakin olun, arkadaş kendi tecrübesine göre edindiği izlenimi/fikirleri paylaşıyor. 1+1 in 2 ettiği bir alanda bile doğru dürüst tartışmayı beceremiyor, hemen hakarete sarılıyorsak toplum ve bireysel olarak büyük sorunlarla karşı karşıyayız demek. Arkadaş Python'u denerken acelesi varmış, o aceleyle araştırırken bazı şeyleri kaçırmış olabilir, bu kimsenin kafasının calışıp çalışamadığını göstermez. Erdem gösterip özür dileyin bence. Yoksa teknik konulara gelirsek, sizin de bilmediğiniz birsuru şey vardır, dünya üstünde herkesin olduğu gibi. |
Hocam "Python kötüdür dıyorlar" ı sizin için söylemedim, eski mesajlardan birkaçında Python bilen adam aranmiyor vs. demiş Python'u hiç bilmeyen arkadaş, sözüm onaydı. Python konusuna gelince, benim tecrübem sizinkinin tam tersi. Yapay zeka dersi alırken ödevlerin Python'da yapılması gerekiyordu, bir yandan ders, bir yandan ağir iş yükü varken, düzgün bir tutorial ile bir akşamda işimi görecek kadar öğrenmiştim dili. Eğer İngilizce biliyorsanız, dilin dökumantasyonu çok çok iyi(https://docs.python.org). Aradığınız herşeyi bulabiliyorsunuz orda. Ben şimdiye kadar başka dilde olup bu dilde olmayan birşey görmedim. (Tabii farkli alanlarda çalıştığımızdan sizin tecrübeniz benimkinden farkli olabilir ama teorik olarak da, Python iyi tasarlanmış bir dil, bence 2-3 günlük fırsat verin) |
Data Mining, Neural Learning gibi islerde python bicilmis kaftan. Pseudo kodda nasil duruyorsa yazinca da oyle duruyor. Sade ve anlasilir. Ivir zivir islerle de ugrasmiyorsun cunku zaten core library leri ile bu tarz islerin altindan kalkabiliyorsun. Cok basarili bir scripting dili bana gore. Ayrica akademik seviyede Data Scientist lerin en cok tercih ettigi dillerden bir tanesi. Bu yuzden dedigine katiliyorum. |
@seyfi84 herkese öyle yazıyor, gerçekleri çok iyi bildiğini zannediyor ancak alakası yok. Müşterim elindeki bir yazılımın güncellenmesi için neden beni tercih ettiğini dahi bilmeden lafa dalmış. Müşterimin beni tercih sebebini söylüyorum: Müşterim elindeki Web Scraping yazılımını bir yazılımcıya zamanında 1000TL'ye yaptırmış. Geçen zaman zarfında yazılıma bir ek özellik eklemek gerekince eski yazılımcı bunun için 1000TL daha istemiş. Ben ek özellik dahil aynı yazılımı sıfırdan yapacağım şekilde 750TL teklif ettim yani eski yazılımcıda toplamda 2000TL malolacak yazılım 750TL'ye gelecekti. Şimdi şu herşeyi süper iyi bilen seyfi efendiye sormak lazım: Aynı yazılımı 2000TL ye mi 750TL ye mi alır kendisi? Eski yazılımcı .NET 4.5 kullanmış, benim de .NET kullanmışlığım var ve bayağı da biliyorum ancak daha önce kendim Python'la basit bir web scraping uygulaması yaparken Python'un pratikliğini gördüğüm için ve .NET ile hiç ws uygulaması yapmadığım için ve maksimum Windows bilgisayarım Vista olduğu için (normalde Mac kullanıyorum) bu uygulamayı Python'la yapmaya karar verdim. Bu uygulama İngiltere'deki bir siteden veri cekecekti ve verileri JSON'layıp kaydetmek gerekecekti o yüzden datetime/tarih-zaman'ları GMT+03 'e cevirmek ve Python nesneleri üzerinde calışmak isteyince zorluk yaşadım. datetime daki zorluğu şekille ifade edeyim. İngiltere'deki datetime'ları alıp Türkiye datetime'ına ancak şöyle cevirebildim: < Resime gitmek için tıklayın > Karışıklık ortada. Tabi ki kulağımı uzak taraftan tutuyor olabilirim ve daha kısa yolu yok mudur, vardır ancak o uğraştığım anca o kısa yolu bulamadım ki Python için denilen birşeyi yapmanın sadece bir ve en iyi yolu vardır söylemine de ters birşey oldu bu o yüzden bir kafamdan Python'a bir eksi yazdım. Dictionary'da verilerin sırasının karışması konusuna gelince Python'da sequence types veya başka veri tipi o sorunu halledebiyor olabilir, ancak uygulamamda gereken basit veri yapısı için alelacele veri tipi ararken varsayılan tip olarak dictionary ı buldum ve baktım uyuyor onu kullandım, fakat içindeki verilerin sıralamasını Python'un kafasına göre yaptığını ve sıralamaya müdahele edemediğimi fark edince sorunu ancak uygulamamı Python'un dictionary'deki sırasına göre düzenleyerek çözdüm ancak o zor anımda bu sorun gözümde büyüdüğü için Python'a bir eksi daha yazdım. Bundan sonra aynı türde (web scraping) uygulama işi alırsam Python kullanır mıyım, zor. Ruby'ye bakarım. Hatta Java ve hatta PHP'ye bakarım. Bir de |
Python'la ilg olumsuz deneyim yaşadığımı anlatmama bakarak bir tutorial'ı yarısına kadar okumadığımı iddia ederek komedide yeni bir kulvar açtın seyfi84. Ya sen sorunlar ve deneyimler ile insanları ayrı tutma özürlü müsün? Dünyanın en iyi tecrübeli programcısı bile bazı dillerde platformlarda veya bazı projelerde sorun yaşayabilir bilmiyor musun? Ben polyglot'um (al sana bir buzzword daha!) Yani bir projede hangi dil daha cok modül içeriyorsa, hangi dil projedeki sorunları daha pratik çözebileceği izlenimi veriyorsa o dili seçen bir polyglot'um. "Web Scraping" alanında, aç Google'ı bak araştır. Python Web Scraping alanında bir şekilde en çok kullanılan ve en etkili modül ve kütüphaneleri içeren dil. Python'u zamanında (2003) kullandım ancak pek ısınmadım ve bir daha kullanmadım. 2008'de Google App Engine yaygınlaştığı sırada bir kitabını alıp öğrensem mi şu Python'u diye düşündüm ancak yine olmadı ve sonra Ruby ve PHP'ye bir daldım ve yıllarca öyle devam ettim. Geçen yaz ufak bir Web Scraping işi için favori dilim Ruby 'yi kullandım ancak Ruby'nin HTML/XML parselleme /parsing NOKOGIRI 'de ciddi sorun yaşadım. Sorun da neydi, parsellenen web sayfalarında bazı etiketler sonlandırılmamıştı, yani mesela <dt> ile başlayan satırın sonunda </dt> yok! Firefox ta düzgün görüntüleniyor ancak NOKOGIRI'de patlıyordu! Ne yapsaydım NOKOGIRI'ye yama mı atsaydım yoksa gelişticilerine değişiklik isteği mesajı gönderip çözülmesini mi bekleseydim. Hemen arayışlara başladım ve Python 'un BeautifulSoup kütüphanesine denk geldim hemen denedim, ve aha süper çalıştı. Cunku bozuk HTML satırlarının doğrusunu tahmin edip düzeltiyordu! Kütüphane ne için vardıriİşte bunun gibi durumla için vardır zaten nitekim Python BeautifulSoup ile projeyi bitirdim ve Python hanesine artı yazdım. Ve geçen ay cok daha kapsamlı bir WS projesi alınca yine Python la hallederim diye düşndüm ancak yukarda bahsettiğim sorunları yaşayınca bir anda rüzgar tersine döndü ve başta artı yazdığım dile iki eksi yazdım. Çok zor anımda istediğim gibi çalışmadığı için eksisini biraz fazla hissettim. Ve PyCharm isimli IDE'yi de ilk kez bu projede kullandım ve onda da çeşitli sorunlar yaşadım ancak dikkar ederseniz onları iletmedim. Aklıma gelenleri şimdi ileteyim: Bir kere IDE açılırken 30sn boyunca CPU tavan yapıo, herhalde bir yığın dosya işlio ve Jetbrains sitesi ile veri alışverişi yapıo, bir yığın gereksiz güncellik ve ne olduğu belirsiz kontroller yapıo fakat onların hiçbirisine ihtiyacım yok, talebim de yok. ZoneAlarm'dan o bağlantıları engelleyeyim dedim bu sefer Java JRE hata verdi cunku PyCharm Java nın soket / IO yordamlarını yanlış ve uygunsuz kullanıyordu, başka bir deyişle PyCharm temelde düzgün tasarlanmamıştı. Ancak asıl sorun editör sayfası sağında kod büyüteci gibi çeşitli fuzuli bir özellik vardı ve CPU dan herşeyden yediği gibi gereksiz yer işgal ediyordu 1920*1200 monitörüm yetmio, 4k monitör mü alayım, o özellikleri kapatayım dedim kapatamadım, PowerSave modu demişler o modu devreye alıp kapatabildim ancak bu sefer IntelliSense özelliği de gitti! Yani PyCharm yapımcıları "kullanıcı bunu böyle kullanmalı" diyerek kendi kendilerine çok şey yapmışlar ama bana hiç uymadı, zor projede onlar bana fren etksiiz gösterdi ve onları da PyCharm tarafında eksiler olarak yazdım. Bir dahaki sefere Python'da IDE olarak ne kullanırım tabi ki Emacs! Tüm bu süreçte deneyimler son sözü söyler. Sen öyle ona buna laf atacağına deneyimlerini iletsene yok herkes bilir öyle laf atmayı. Kolayı değil zoru seç biraz. |
|
Pythonda zaman işlemleri için aşağıdaki modüle bakabilirsiniz. http://arrow.readthedocs.io/en/latest/ |
| Arkadaşlar bayağı birbirine girmişler de herkes üstün körü bişeyler söylemiş, bütün yorumları okumadım fakat gördüğüm kadarıyla herkes anketlere göre konuşmuş. Python hiç kullanmadım yaklaşık olarak 5 senedir asp.net kullanıyorum ama diğer dilleri kullanmamış olmam elbette bilgi sahibi olmadığım anlamına gelmiyor. Şimdi kullandığım dili savunarak başlayayım önce bazı arkadaşlar neden büyük projelerde büyük şirketlerde c# kullanılmıyor, şundan dolayı 3-4 yazılımcısı olan şirkette sen kaçak yazılım kullanabilirsin belki ama binlerce yazılımcısı olan şirketlerde bunu yapamazsın lisans ücretlerinden dolayı c# tarafından tercih edilmez, durum basittir tamamen bundan ibaret Türkiye de böyle büyük ölçekli yazılım şirketi olmadığı için, kursların yaygın olup kaynakların bol bulunmasından ve harika bir ide si ne olduğu için c# daha çok tercih ediliyor. Telefondan yazdığım için daha detaya inemiyorum neyse devam edelim. Python a gelince gerçekten güçlü bir dil ve benimde öğrenmek istediğim dillerden bitanesi,şimdi bu dil önümüzdeki yıllarda daha çok kullanım oranı artacak doğrudur ama şundan dolayı, gelecek yapay zeka da ve Python bunun için çok elverişli bir dil, şuan o anketlere bakarsanız R diye bir dil de görürsünüz yükselmekte olan R da yapay zeka alanında çok kullanılan bir dil ve Türkiye de yapay zeka alanında birşey yapılmadığı için bu diller daha çok yurt dışında popüler ve hızla da artıyor. Yapay zeka alanında yazılan kitaplara bakarsanız ya Python yada R görürsünüz c# göremezsiniz yada çok nadir görürsünüz ki sanmıyorum. Durum bundan ibaret geleceğe yatırım yapacağım dersen yapay zekaya bak derim tabi bunun için ileri seviyede matematik gerekli bunun yanında da bitane dil öğren, bir tane de yetmez farklı tiplere 2-3 dil bilmek gerekli en azından yazılan kodu okumak gerekli yoksa ufak şirketlerde birkaç şey bilip yıllarını geçiren insanlar var, ingilizce bu işin bel kemiği ingilizcen yoksa ilk önce onu hallet yoksa böyle derya deniz bir alana yüzme bilmeden girmek gibi bişey olur |
Hey ben "Python kötüdür" demedim ki, sadece basit bir tarih / datetime sorununda yaşadığım berbat sorundan bahsettim aynı sorunu Ruby de yaşamadığımı anlattım. Ha bunu da, müşterim günde 2 kez "hala bitmedi mi" diye Whatsapp mesajı gönderirken yaşadığım için sorunu aşamadım, 3 satırlık koda 15 satır yama yaptım yine de istediğim gibi çözülmedi. Kullandığım makina Mac mini üstünde Windows kurulu, açılırken Bios saati yanlış gösterio, Python oradan mı cekio ne yanlış çekti, yani sırf bir GMT ayarı yapacağım diye 2 gün enerjimi harcadım yine de yapamadım. Ha yine de Python kötü mü diyorum,hayır demiyorum demedim sadece sonraki projemde ne yapıp edip Ruby kullanırım dedim.
Dictionary olayındaki sorun için de C++ de de tabi ki unordered_map gibi sırasız veri vardır, ben Python orada programcının işini kolaylaştırmıştır (Python herşeyi kolaylaştıran dil deniliyor ya onun beklentisiyle) dedim baktım alakası yok. O yüzden de gitti mi 1-2 günüm. Uygulama tamamen veri çekme / işleme üzerine rutin yordamlar kullanmayan ad-hoc uygulama, Python'dan beklediğim kolaylığı bulamadım, aksine zorluk buldum, yazılan çizilen güzel şeyler değil deneyimler son sözü söyler, hepsi bu.
Bu mesaja 1 cevap geldi. Cevapları Gizle