Programlama dili önerisi

Bildiğim kadarıyla numpy'deki ağır matematiksel işlemler arkada C interop ile hallediliyor yani hesaplamalar python tarafında değil C tarafında yapılıyor:



Python tarafındaki CUDA'ya falan erişen kütüphaneler de CUDA'yı kullanıyor. Burada da Python'un kendi hesaplama gücünden söz edemeyiz.

Aslında tartışma çok dallanıp budaklandı. Öncelikle bugün yapay zeka, makine öğrenmesi, ağır matematiksel hesaplamalar ile uğraşacak bir senaryo varsa Python tercih edilmeli. Arkaplanda C kullanmış CUDA kullanmış bence de çok bir önemi yok. Python bu sektördeki konumunu kendi hesaplama gücünden değil etrafında şekillenen topluluktan aldı fakat bunun da pratikte bir önemi yok.

Bakın sonuç olarak ne dersek diyelim, şu an Python makine öğrenmesi tarafında başı çekiyor. Bu dili bir mesajda silmek, anlamsızlıktan başka bir şey değil.

Ben şu an makine öğrenmesi ve görüntü işleme üzerine birkaç denedir çalışıyorum. Bu konuda gerek sektörden gerkese okuldan kıymetli hocalarımla çalıştım ve hiçbirinden böyle bir karşılaştırma ya da değerlendirme görmedim. Ben burada derdim şu dil iyi bu dil kötü değil. Bir dili sen kendi becerilerinle, o dilin imkanları çerçevesinde iyi yerlere getirebilirsin.

Benim burada takıldığım nokta, Python'un geleceği yok denmesi. Ben de buna karşılık olarak, gidin Javascript kullanın o zaman dedim, madem yoksa.

Hani bu kadar yazmışsınız ama bu iş ile ilgilenen insanlar emin olun böyle çocukça şeylerle uğraşmıyor. Ben hem Python hem de Javascript biliyorum. Yarın olur da kütüphane ve donanım desteği olarak Javascript öne geçerse, makine öğrenmesi tarafında, biz de ona geçeceğiz.

Tartışma dallanıp budaklandı, ben de bunu istemezdim ama şunu belirteyim, ben iyi dil kötü dil diye bakan bir insan değilim. Mevcut durumda, işi çözecek dil, benim için en iyi dildir.

Python ile yapacağınız bazı hesaplamaları Matlab ile de yapabiliyorsunuz, ki makine öğrenmesine başlayan çoğu kişi, ilk hesaplamalarını Matlab'de yapar. Peki bunu ne derece entegre edebileceksiniz, farklı bir sisteme?

Ben şu an Nvidia'ın Jetson kartlarıyla çalışıyorum. Python ile hem makine öğrenmesi ve algoritmalarımı çalıştırıp, hem de GPIO pinlerini kontrol edebiliyorum. Bu durumda benim için en iyisi Python olmuş oluyor.

Ezberden konuşup duyduğu şeylerle bir şeyler bildiğini sanan insanlar ile tartışarak boşa zaman kaybetme hocam bir şey anlatamazsın.

Bu tanımladığınız kişi siz olursunuz yalnız... 🤣
 
Bu tanımladığınız kişi siz olursunuz yalnız... 🤣

Aynı mesaj da yapay zeka ve makine öğrenmesinden bahsedip 2 cümle sonra "Her şey salt performans değil" diyen birini ciddiye alarak cevap vermekle vakit kaybetmek bile istemediğim için yazmadım ancak madem bu kadar tartışmaya açıksın yazayım.

Öncelikli olarak AI/ML den bahsediyorsak en önemli unsurlar 1: Basitlik, yazım kolaylığı ya da kolay geliştirilebilirlik 2: Hız. Başka hiç bir öncelik yoktur. Hız ya da performans öncelikli değil demek tamamen saçmalamaktır. Neredeyse bütün olay hızda bitiyor.

Önceki mesajımda da belirttiğim gibi tekrar ediyorum; "Python'un şu an tek avantajı oluşmuş büyük bir topluluğunun olması ve popülerliği" Yıllar önce Python için bahsettiğiniz API'lerin yapılmış olması yıllar sonra günümüzde onu mantıklı bir tercih yapmaz sadece güçlü alternatif yapar. Bundan bir 5 sene sonra aynı kütüphaneler Go içinde adapte edildiğinde ve misliyle fazla performans avantajı ve dil avantajı sağladığında Python kullanmanın ne mantığı kalacak? Burada yeni başlayan birine sırf popüler diye python öneriliyorsa onun yerine milattan kalma C önerelim hem daha popüler, kütüphaneleri ya da frameworkleri fazla hemde daha fazla kullanım alanı var. Böyle bir mantık var mı?

Bahsettiğin kütüphanelere gelecek olursak NumPy: numpy/numpy Tensorflow(Bahsettiğin Keras kütüphanesinin kullandığı low level kütüphane): tensorflow/tensorflow Bak bakalım arkaplan da hangi dili kullanıyorlar? İnşallah API mantığı sadece python da vardır ve diğer diller de bu kütüphaneleri adapte etmeyi "elle girmek" sanmıyorsundur.

Bahsettiğin GPU'dan yararlanma kısmında kullanılan CUDA kısmına gelirsek de yine orda da C kullanılıyor, bilgin olsun.
Ek olarak burda JS ile Python değil, Go ile Python karşılaştırıyoruz. Hız konusunda Go, 10 gömlek daha üstün.
.NET denildiğinde bu kadar laf ediliyorsa ya kafa yapısı 2000lerin başında ki Visual basic de kalmış ya da gerçekten konu hakkında herhangi bir bilgisi yoktur. .NET5 ile çapraz platform desteği azımsanmayacak kadar iyi bir seviye aldı ve devam da ediyor, bunun herhangi bir tartışılacak bir tarafı yok. İki dilde birbiriyle 1:1 aynı seviyede olsa bile iş Microsoft'u mu tercih ederim Oracle'ı mı seviyesine geldiğinde tercihim Microsoft olur sebebini zaten roser137 gayet net açıklamış.

Kaldı ki kişisel olarak .NET ekosisteminde ki herhangi bir dili kullanmak tercih edeceğim en son şeylerin başında gelmesine rağmen ben burada .NET daha avantajlı diyorsam bu dilin fanı olduğum, 7/24 kullandığım için değil gerçekten o durumda olduğu için söylüyorum.
Programlama sürekli kendini geliştiren bir alan dinazorlar, kendini geliştirmeyenler sektörden yok olup gider. Çok değil bundan 5 yıl önce Android geliştirmek için en öncelikli olarak Java kullanılırdı, bugün React Native gibi bir dil varken Java tercih eden 10 firma içinden bir elin parmağı kadar bulamazsın. Insanlar deli mi sürekli farklı diller geliştiriyor yada bu dillere geçiş yapıyor, yoksa farklı sebepleri mi var sürekli yeni diller evriliyor, bir düşünün.

Kısaca ben burada şu dil iyi bu dil kötü demiyorum, Python ya da Java dilinin bir geleceği yok diyorum ve hala da arkasındayım. konu yapay zekaya, javascript'e nereden geldi en ufak bi fikrim yok çok içi boş bir tartışma oluyor.

Neyse fazla bile yazdığımı düşünüyorum, gelişmeye açık olanlar zaten yavaş da olsa zamanla Go, Rust gibi dillere .NET gibi ücretsiz ve kendini geliştiren ekosistemlere yönelecektir. Python gibi Java(ya da daha basit haliyle JVM) gibi hantal dillerin hiç bir geleceği OLAMAZ.
 
Benim burada takıldığım nokta, Python'un geleceği yok denmesi. Ben de buna karşılık olarak, gidin JavaScript kullanın o zaman dedim, madem yoksa.

COBOL'un bile silinmediği sektörde Python'a kolay kolay bir şey olacağını ben de hiç sanmıyorum. Muhtemelen makine öğrenmesi, yapay zeka, hesaplama ağırlıklı alanlarda etkisini çok çok uzun süre kullanacak. Bu alanların Java'sı oldu neredeyse Python. Daha iyi alternatifleri çıksa, bu alanda kullandığı kütüphaneler farklı diller için de uyarlarsa da Python varlığını sürdürecektir. Sektöre yerleşti bir kere.

Python bunlar dışında da çok güçlü bir dil olarak lanse ediliyor. Yeni başlayanlara önerilen dillerin başında geliyor neredeyse. Bir çok kursta okulda Python öğretiliyor. Bunlar makine öğrenmesi kursu falan da değiller. Bugün Python'un kullanım alanları nelerdir diye bakınca sizin çalışma alanınız dışında aslında çok da somut bir şey yok. Web için tercih edilmesi için bir sebep yok bu alanda JavaScript nodejs ile çok daha sorunsuz. Python'daki GIL Lock bayağı aşılması gereken hendek oluyor işin içine network girince. Masaüstü uygulama de için hiç mantıklı bir tercih değil. Nodejs electron ile yine ön planda. C# falan zaten epey önde. Buna rağmen Python neden sanki joker bir dilmiş gibi öneriliyor onu anlamıyorum. İlk mesajınızda Python'u beğenmiyorsanız gidin JS ile yazın deyince ona alındım biraz :D . JS'nin genel kullanım alanı Python'dan çok daha geniş.

Oracle'dan, ücretlerden bahsedenler OpenJDK'i, Amazon Corretto, AdoptOpenJDK vs neymiş araştırsın. Bol keseden Java'ya sallamak kolay.

Java'yı eleştirenlerin tam olarak eleştirdiği nokta bu zaten. Dili geliştirenlerin kendileri dili toparlayacağına dağıtmak için elinden geleni yapıyor. Neden Oracle resmi JDK'ı ücretsiz olarak dağıtmıyor? Sun bunu yaptı yıllarca. Java uygulaması geliştirirken sürekli lisans tedirginliği yaşamak zorunda mı insanlar. Oracle saçma bir politika uyguluyor o zaman gidin açık JDKları kullanın demek internet sansürlenince gidin VPN kullanın demekten farksız. Sorunun özüne odaklanmıyor bu yaklaşım.

Microsoft da sütten çıkmış ak kaşık değil ama son zamanlarda yaptıkları doğru hamleleri yok sayamayız. Dotnet'i açık kaynak ve platform bağımsız bir hale getirmesi çok büyük bir hamle ve sektör için de çok iyi. Microsoft bunları yaparken Oracle neden yapmıyor? Durum buyken neden hala Java tercih edelim?

Java'nın tek sorunu tabii ki bu lisans politikası da değil. Yılların yükü var üzerinde. Bir sürü farklı uygulama sunucusu, bir sürü farklı çatı ki bunlar komple uygulama geliştirme biçimini etkileyen şeyler. Tüm bunlarla bugün sıfırdan programlama öğrenen birinin uğraşmasının hiçbir katma değeri yok. Piyasada iş bulmak için bunları öğrenmek zorunda olana bir şey diyemez fakat bu işlere yeni giren birine önermek hiç mantıklı değil. Türkiye'de zaten Java kadar hatta belki daha fazla C# yerleşmiş durumda. Dışarıda tabii ki tarihi sebeplerle Java hala daha yaygın kullanılıyor. Dotnet Core ile birlikte bir anlamda Microsoft'un komple her şeyi temize çekmesi de büyük bir avantaj. Kimse WCF, IIS falan öğrenmeden dotnet Core ile C#'ı Dotnet'i tertemiz öğrenebilir. Bugün Java'da ilerlemeye çalışanlara ne önereceksiniz Spring mi, Tomcat mi? Java EE mi :D ?

Özetle Java ve C# konusunda yeni başlayan biri için Java tercih edilmesi konusunda bir sebep göremiyorum.

Bu arada konu sahibi sessiz. Hile yapalım diyorduk nerelere geldik diyordur herhalde. :D
 
Online oyunlarda hile yazılımı geliştirmek ve bunları dağıtmak bazı ülkelerde suç. Ayrıca suç olmasından öte dünyanın hiçbir yerinde hoş karşılanmaz. Eğer amacın geliştirdiğin bir programdan para kazanmaksa bu mutlaka hile yazılımı olmak zorunda değil. Hile yapılmasını engelleyen bir program da yazabilirsin ve bunu online oyun geliştiren kişilere satabilirsin. Üstelik de kesinlikle yasal olur. Bu nedenle önce motivasyonunu değiştirmeni öneririm.
 

Yeni konular

Geri
Yukarı