Dlib , face_recognition kurulumu ve çalışmaya hazır hale gelmek neden bu kadar zor

Arkadaşla herkese selam.
Aranıza yeni katıldım. Soracağım şey belki çok acemice ama bende yolun çok başındayım lütfen mazur görün.
Python diline yeni yeni başlıyorum ve ilgim ve merakım görüntü işleme, nesne tespiti, sınıflandırma, yüz tanıma, mimik algılama falan… Bunu yaparken de bir miktar daha aşina olduğum Pycharm kullanmak istiyorum.
Lakin pythonu kurdum, pycharmı kurdum face_recognition indirip kuramıyorum hatalar veriyor, dlip indirmen gerek diyor onu deniyorum kurmuyor hatalar veriyor CMake olması gerek diyor, onu kurmaya çalışıyorum wheel hatası veriyor… Bu lanet dilin adam gibi bir kurulumu yokmu? internetten aratıyorum adam akıllı anlatan düzgün bir yol gösteren bulamadım. Herkes pip install dlib yaz kur diyor. Ama olmuyor denemediğim yol kalmadı, bu sorunla bir tek ben mi karşılaşıyorum. Hiç mi kimsenin başına gelmemiş, hiç mi tespit edilip çözüm yolu üretilmemiş bu soruna anlamıyorum.
Yaklaşık yirmi gündür belki 100 kez kaldırıp kaldırıp yeniden kurdum. Anaconda ile kurdum pip in internette bulduğum bütün varyasyon komutlarını, conda nin internette bulduğum bütün varyasyon konutlarını denedim. Bu kadar enerji ve vakit harcayıp daha başlangıç aşamasına bile gelememek beni çıldırttı. Bütün hevesim kaçtı artık kodunun da pythonunun da deme noktasına geldim. Yüzlerce sayfadan binlerce çözüm denedim OLMUYOR kafayı yiyeceğim ya.
Arkadaşlar yok mu bunun bir adım adım yolu veya şöyle sorayım. Temiz ve sorunsuz bir başlangıç yapmak için adım adım önce şunu kur sonra şunu güncelleştir sonra bunu indir gibi bir rehberi veya kaynağı? Ben mi yanlış yerde arıyorum bulamıyorum. Bu pythonu insanlara eziyet olsun diyemi bu kadar derme çatma yapmışlar ben mi yanlış sularda yüzüyorum lütfen yardım.

Merhaba;

Sorunun acemice değil gayet mantıklı haberin olsun.

Bu kısma karışmam. Ben komut satırı üzerinden, notepad veya notepad++ kullanıyorum. Kullandığınız bazı editörler doğru konfigüre edilmezse bazan kütüphane sıkıntısı çıkarabiliyor. Yinede siz bilirsiniz.

Denemediğiniz yol kalmamıştır belki çok iddialı olmayalım.

Çıldırtır. Hatta bununla ilgili uzunca bir yazı yazıp ver yansın edebilirim.

Vardır olmaz mı?

Adım adım basitçe anlatmaya çalışalım.

Öncelikle face_recogantion kurmaya çalışmışsınız. O da dlib istemiş. Siz de dlip kurmaya çalışmışsınız tabi dlib kurarken de bir çok sorunla karşılaşmışsınız.

Şuradan başlayalım:

Install-dlib/dlib-19.22.99-cp310-cp310-win_amd64.whl at main · datamagic2020/Install-dlib (github.com)

Buradan uygun dosyayı indirelim.

Sihirbazlık yapmayalım, olayı adım adım anlatalım belki bir şeyler netleşir.

Şimdi, sorun şu;

python’ın kusuru değil, dlib ve benzeri kütüphaneler c ve c++ kodlarından oluşuyor ve bu kütüphanelerin python tarafından kullanılabilmesi için önce bir c derleyicisi ile derlenip sonrasında pyhton kütüphanelerinin arasına almak gerekiyor.

Bunu linux türevi kullananlar rahatlıkla yapabiliyor çünkü linux yerleşik gcc derleyicisi ile beraber dağıtılıyor yada kolayca linux’a eklenebiliyor.

Ama windows tarafında bir c derleyicisine ihtiyacınız olacak. Bunun için visual studio’nun derleyici araçlarını indirmeniz ve kurmanız gerekiyor. Tabi bu arada da bazan kod sağlayıcıları sizin uygun derleyici özelliklerinize göre kod yazıp hazırlamamış oluyor.

Bununla boğuşmak istemeyebilirsiniz.

Bu nedenle python için bu işi yapıp .whl dosyası olarak hazırlayan birilerini bulmanız gerekebiliyor.

Yani burada bu kütüphanenin uygun derlenmesiyle uğraşmak yerine python versionunuza uygun bir .whl dosyası bulursanız kurmanız daha kolay ve çabuk olacaktır.

Bu nedenle internette bir araştırma yapıp bulabildiğim derlenmiş en yüksek 3.10 sürümünün 64 bit olanına göre bir dlib için .whl dosyası buldum.

Umarım 32 bit kullanmıyorsunuzdur bu durumda 32 bit bir .whl dosyası aramak zorunda kalacaksınız.

Dosyamızı indirdik.

Şimdi dosyamıza uyumlu bir python versiyonu kurmamız gerekiyor.

Python stesine gittik.

Python Releases for Windows | Python.org

3.10 serisinden ben 3.10.9 serisini seçtim.

https://www.python.org/ftp/python/3.10.9/python-3.10.9-amd64.exe

İndirdim.

image

Custom Installation ı seçiyorum.

image

Buradan eklemek çıkarmak istediğimiz özelliklere göz atıyorum.

image

Ortam değişkenlerini ekle seçeneğini seçiyoruz ki komut satırımız python komutlarına ulaşabilsin.

Install butonu ile kurulumu tamamlıyoruz.

Şimdi bir komut satırı başlatıyoruz.

Ben standart bir cmd komutu ile başlattım. Özel bir admin yetkisi kullanmadım, kullanıcım admin zaten.

Versiyonumu kontrol ediyorum.

image

python --version

Komutu ile.

Evet versiyonum 3.10.9

Bir sorun görün müyor.

Şimdi önce dlib kütüphanesini yüklemeye çalışalım.

Başta indirdiğimiz .whl dosyasının olduğu klasöre gidelim.

Ben downloads klasörü altına indirdiğimde o klasöre gidiyorum.

pip install dlib-19.22.99-cp310-cp310-win_amd64.whl

Komutunu veriyorum.

image

Bu aşamada sizde hata verebilir.

Pip in güncel olmadığı güncellenmesi gerektiğine dair bir hata mesajı alırsınız.

Bu durumda:

python -m pip install --upgrade pip

Komutu ile pip sürümünüzü güncelleyebilirsiniz.

Bende zaten güncel olduğu için bir hata oluşmadı. Sizde güncelleme ihtiyacı varsa devam edebilirsiniz.

Güncelleme sonunda tekrar dlib i yukarıda belirttiğim gibi kurabilirsiniz.

Şimdi face-recognation ı yükleyelim.

pip install face-recognition

Komutunu verdik ve sonuç:

Bende bazı kütüphaneler zaten kurulu imiş ama diğerlerini yükledi.

Evet kurulum bu kadar.

Bundan sonra kodunuzda import ederek kullanabilirsiniz.

Ufak bir not. Python kurduktan sonra ortam değişkenleri tanımlayarak kurduğunuzdan açık komut istemciniz/terminaliniz bunları algılamaz. Kurulumdan sonra cmd ile yeniden bir komut istemcisi açarak çalışmalısınız.

sanırım pycharm pip kütüphanelerini görmüyordu. yanlış hatırlamıyorsam kendi içerisinde bir virtual environment vardı. Pycharm’a eklemek için sırasıyla:
pycharm’da bir proje oluşturuyoruz. üstteki menüden File > Settings e girip Project: solundaki sağ yönlü oka tıklıyoruz. buradan python interpreter a tıklıyoruz. karşımıza aşağıdaki gibi bir menü geliyor.


buradan kırmızı daire içerisine aldığım yere tıklayıp istediğin paketi ekliyorsun.
Pycharm’a pek hakim değilim genelde VSCode kullanıyorum. Bu yöntem de işe yaramayabilir.

Ayrıca bilgisayarında sürümleri birbirinden farklı birden fazla python olabilir ve yüklediğin paketler diğer sürüme yükleniyor olabilir.
bunu kontrol etmek için terminal’e Python yaz. orada hangi python sürümünün çalıştığı yazacaktır. daha sonra pycharm’a dön. pycharmda sağ alttaki python sürümüyle terminalde çalışan uyuşuyor mu bunu kontrol et. umarım bunlar düzeltir. yolun açık olsun.

Windows mu kullaniyorsun?

Insanlara eziyet olsun diye degil de, bir sirkete para kazandirmak icin tasarlanmis bir isletim sistemi kullaniyorsun. Yaptigin seyler sirketin amaclarina ters dustugu noktada sikinti yasaman cok normal.

Bu arada teknoloji dunyasi ile ilgili yanlis beklentilerini hemen kirmakta fayda var: 5-10 senelik teknolojileri kullanmanin kolay olmasini bekleyemezsin. Yazilim dunyasina yeni atilmis, Linux kullanmayan, CMake kullanmamis, dil ile kutuphaneyi zaman zaman birbirine karistiran birinin yeni bir gelistirme teknolojisini kullanmaya baslamasi kolay olamaz. Bu seyleri bilmemekte sorun yok; sorun, dedigim gibi, zor seylerin kolay olmasini beklemek.

Kisisel bilgilerimizi toplayip sahip sirketlerini zengin etmek icin tasarlanmis “bedava” ve kullanimi kolay teknolojiler de seni yaniltmasin. Onlar, baska bir oyun oynuyor.

Hayir. Son 10 senenin blog postlarina veya Hacker News submission’larina bakarsan baya tartisilan bir konu oldugunu gorebilirsin. Lakin konusulan problemler bir kutuphaneyi kuramamaktan cok daha ote. Yazilima yeni atilmis bir Windows kullanicisinin bir paketi kurmakta yasadigi sorunlar, hic bir paket yoneticisinin onceligi degil.

Hangi sorunla?
Yasadigin sorunu anlatip birinden yardim almayi denedin mi hic mesela?

bkz: Soru Sorarken Sıkça Düşülen Hatalar

  1. sefere yaklasirken bu yontemin ise yaramayacagina uyanman lazimdi. O noktada yapmaya calistigin sey hala olmuyorsa, yaptigini veya yaklasimini radikal bir sekilde degistirmen lazim.

6 sene once bu kutuphaneyi sifirdan yazmaya baslayan kisiyi dusunsene. Senin bu vahim noktandan bile 6 sene geride!

Ingilizce aratiyorsun, degil mi?

Kisisel temmenilerimden uzak, dunyanin yaklasimini paylasiyorum: Dee. Her gun aramiza katilan bir suru kotu programci var. Bir tanesi de eksik olsun. Windows’ta uc klikle kurulmadi diye pes edeceklerse, etsinler. Bize daha sabirlilari lazim.

Simdi de kisisel gorusumu yaziyorum: 2000 civarinda Slackware kullanirken yeni kernel kullanabilmek (“sistem guncellemesi yapmak”) icin elle configure ve compile ediyordum. Bir okul gununden fazla surdugu icin sonuclara ancak ertesi gunu bakabiliyordum. Paket yoneticisi yoktu. X programi Y kutuphanesi, Y kutuphanesi de Z1…Z5 kutuphaneleri isterse hepsini tek tek, elle kurmak gerekiyordu. (Gerci Windows hala boyle anladigim kadariyla.)

Simdi ben sana ne diyim? “Face recognition ile ugrasacagina Tiktok’a vidyo koy, onu kurmak kolay” mi diyim? Hayir, ayip. “Dert yanma” da demem—yanacaksin tabi. Fakat dert yandigin seyleri degistirebilecek kapasiteye gelene kadar kimse dert yanmalarini ciddiye almayabilir.

Hangi sayfalar? Hangi cozumler? Nasil olmuyor?

Bizden cevap bekliyorsan bunlari soylemen lazim. Beklemiyorsan okuma zaten. (Dikkat et, “yazma” demiyorum.)

Herhangi bir kullanici odakli Linux distrosu kur. (Ubuntu iyidir, buralarin Windows’u) Sonra Windows’ta calismayan komutlarin sihirli bir sekilde calismaya baslamalarini izle.

Ne yapmaya calistigini hatirla. Kimseye para kazandirmiyor veya baska sekilde faydali olmuyorsun. Milletin isinden, hayatindan feragat ederek yazdigi kutuphaneyi kullanmaya calisiyorsun. Sana yardim ederek harcayacaklari vakitte yeni versiyon cikarlar muhtemelen.

Ton cok mu sert oldu? Ozur dilerim. Veya yazinin her satirini ciddiye alip dikkat ve vakit harcamam ozurum olsun. Bunu okuyan herkese yol gostermeye calisiyorum. Ne kadar ve niye kaale alinmadigimizi (herkesten bahsediyorum; bu kutuphanenin yazari bile baska bir kutuphanenin kullanicisi, baska bir teknolojiyle saatlerce bogusmus bir zavalli) anlatmaya calistim.

Neyse, benim de ufaktan isime donmem lazim. Birinin saatler harcayip kafayi yiyecegi bir sey mi yazacagim, yoksa baskasinin yazdigi bir seyi kullanmak icin saatler mi harcayacagim, daha bilmiyorum. Rastgele!

(venv) 11:08:48 0 aib@apollon:/tmp% pip install face_recognition
Collecting face_recognition
  Downloading face_recognition-1.3.0-py2.py3-none-any.whl (15 kB)
Collecting face-recognition-models>=0.3.0
  Downloading face_recognition_models-0.3.0.tar.gz (100.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.1/100.1 MB 2.3 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting Click>=6.0
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting Pillow
  Downloading Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 2.3 MB/s eta 0:00:00
Collecting dlib>=19.7
  Downloading dlib-19.24.0.tar.gz (3.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 2.4 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting numpy
  Downloading numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 1.6 MB/s eta 0:00:00
Building wheels for collected packages: dlib, face-recognition-models
  Building wheel for dlib (setup.py) ... done
  Created wheel for dlib: filename=dlib-19.24.0-cp310-cp310-linux_x86_64.whl size=4441793 sha256=1e8180030320fa84fb68c0926d5919d3380799ab8e1c61514df3ced55b9ccd25
  Stored in directory: /home/aib/.cache/pip/wheels/7c/23/35/5b2874ddb5db1cfdfa37b4b30a7273ad3fa0c3d488e5b6cfc8
  Building wheel for face-recognition-models (setup.py) ... done
  Created wheel for face-recognition-models: filename=face_recognition_models-0.3.0-py2.py3-none-any.whl size=100566186 sha256=d1632809fc1c09a9c1adddbf57a1c019125abf88dd75a03bb0a01b69a3afcf12
  Stored in directory: /home/aib/.cache/pip/wheels/7a/eb/cf/e9eced74122b679557f597bb7c8e4c739cfcac526db1fd523d
Successfully built dlib face-recognition-models
Installing collected packages: face-recognition-models, dlib, Pillow, numpy, Click, face_recognition
Successfully installed Click-8.1.3 Pillow-9.4.0 dlib-19.24.0 face-recognition-models-0.3.0 face_recognition-1.3.0 numpy-1.24.2
pip install face_recognition  1385.88s user 46.89s system 498% cpu 4:47.14 total
(venv) 11:13:38 0 aib@apollon:/tmp% 

Öncelikle ilginiz ve vakit ayırıp adım adım detaylıca anlattığınız ve önerdiğiniz çözüm için çok teşekkür ediyorum. Söylediğiniz adımları yaptım ve sorunum çözüldü.
Şimdi Sayın semtex sizden bir ricam olacak;
Evet siz şimdi bana acil ihtiyacımı giderecek bir balık verdiniz sağolun. Ama ben bu balıkları nerede bulacağımı ve nasıl tutacağımı öğrenmek istiyorum.
pip nedir kullanımı nasıldır
dlib nedir
wheel ne işe yarar vs gibi bilgileri temel düzeyde anlamak, sorunla karşılaştığım zaman neden bu sorunla karşılaştığımı anlayabilmek ve çözüm yollarını kestirebilmek istiyorum. Bu konuda kendimi eğitebileceğim kaynak önerebilirmisiniz?

evet haklısın belki hiç bir paket yöneticisinin önceliği olmayabilir. Ama bu işlerde iyi olan bir yazılımcının bu sorunu çözmek için bir çözüm yolu geliştirmesine engel değil birileri bunu yapmalıydı diye düşünüyorum veya en azından ben belirli bir yeterlilik seviyesine gelirsem hayır olsun diye bu tip sorunlarla karşılaşanlara çözüm geliştirmek isterim.

bu açılan başlık bunun içindi yani yardım almak için.

dilinin biraz sivri ve incitici olduğunu söylemek isterim. Her defasında farklı farklı çözümler denemek için bunları yaptım. Yoksa belki belirli bir sayıda daha silip yüklersem bilgisayar vicdana gelir gibi bir beklentim yoktu.

güzelmiş

bu yüzden kütüphaneyi yazanlara sormadım burdaki benden daha deneyimli ve bilgili olduğunu düşündüğüm insanlara soruyorum.

ton çokmu sert oldu genel olarak bakınca bir sıkıntı yok kendince açıklama getirmişsin vakit ayırdığın ve cevap vermeye değer gördüğün için teşekkür ediyorum ama yeni başlayan arkadaşlara biraz daha yapıcı ve ılımlı olmak daha iyi olurdu gibi geliyor ama bu sadece benim fikrim. Ben ilk defa sorunla karşılaşmış ve feryat figan eden birisi değilim. Emekliyim bilgisayar ve teknolojileri ile uzaktan yakından ilgisi olmayan bir meslekten emekliyim. Boş durup kahve köşelerinde hergün devlet kurup devlet yıkmak yerine hobi olrak yazılım öğrenmeye çalışıyorum. Bilmemem çok anormal değil diye düşünüşoyum, ama öğrenmeye çalışıyorum. Her karşılaştığım sorunu birilerine sorayım onlar çözer nasıl olsa yaklaşımında da değilim. Öğrenmek için gayret sarfediyorum ve bir an önce yardım eden çözüm üreten tarafa geçmek istiyorum. Bunun için tek sıkıntım doğru kaynağa erişebilmek, doğru kaynağı bulmak. Şimdi diyeceksinki internette arat yüzlerce kaynak var evet var. Ama çoğu çöp bilgi, çoğu birbirinin tekrarı, çoğu öğretmek için değil tıklanmak için üretilmiş kaynaklar. Hal böyle olunca yanlış kaynaklar arasında yüzlerce saat harcıyor ve bir arpa boyu yol gidebiliyorsun. Ama doğru bir yönlendirme ve doğru kaynak önerisi ile daha hızlı yol almak mümkün. Benim burada bulunmamın temel nedeni bu. Doğru insanlardan doğru kaynakları doğru bilgileri öğrenmek ve hızlı yol almak. Bu yaştan sonra senden ne olur amca git işen bak diye düşünebilirsin belki, haklı da olabilirsin ben de bir Bill Gate veya Elon Musk olacağımı iddia etmiyorum. Belkide hiç bir şey olmayacak ama dünden daha iyi olmak için gayret ediyorum.

Vakit ayırdığınız için ve çözüm öneriniz için teşekkür ederim. Bu söylediklerinizi zaten denemiştim ve sorun çözülmemişti. Asıl anlamak istediğim bu sorunlarla neden karşılaşıyorum, karşılaştığım sorun nedir tam olarak, bir sorunla karşılaşınca sorunun ne olduğunu tespit edip çözüme dair fikir sahibi olacak kadar kendimi nasıl geliştiririm konusu. Yardım için gösterdiğiniz nezakete tekrar teşekkür ediyorum.

Şöyle yaptım. Sizin yaptığınız gibi pip install ile kurmaya çalıştım. Bir hata mesajı aldım. Mesajı okudum dlib kütüphanesini istediğini gördüm.

Siz de soru sorarken kurarken çıkan hata mesajlarını paylaşırsanız cevaplar daha da hızlı gelecektir.

dlib C++ Library

Baktım bu kütüphane c++ dilinde.

Böyle durumlarda sizin kullandığınız kütüphanelerin binarry (dll, exe vs.) bağımlılığı olduğunu düşündüm.

Böyle kütüphaneler c veya c++ dillerinde kodlanmıştır. Python bunlardaki bazı fonksiyonlara erişmek istiyorsa onları kendi anlayacağı dll (dinamik kitaplık) haline getirip kullanıyor bu nedenle (ki linux dünyası bununla çalışmaya alışık her şeyi derleyip derleyip kullanır)

Siz cmake falan dediğinizde parçalar oturdu. Siz bu kütüphaneyi derledikten sonra ancak kullanabilecektiniz, yani alışılagelmiş, python kodundan oluşan bir kütüphaneden bahsetmiyoruz.

Bu durumda bu kütüphaneyi derlemeniz gerekiyor. Ki size adım adım VisualStudio kurdurmak, sonra c derleyici araçlarını kurdurmak ve sonrasında cmake de doğru ayarlarları yaptırmak istemedim.

Çünkü bu durumda konu python olmaktan uzaklaşıp C ve Visual Studio anlatmaya dönüşecekti.

Ki bu arbedenin arasında hiç uğraşılacak iş değil.

Bunu sizin yerinize yapacak birileri her zaman vardır. Her kütüphaneyi siz derleyip kurmaya çalışırsanız kendinizi python öğrenmek yerine C derleyicisi öğrenmek durumunda bulabilirsiniz.

Tabi iş Visual studio yerine mingw de anlatabilirdim ki bununlada uğraşmak istemedim.

Dahası iş yüz tanımlama olunca, işin içine görüntü işleme vs bir çok husus girer. Bunun için görüntü işleme kütüphaneleri ile beraber derlemeniz gerekirdi ki bu da ayrı bir hikaye olurdu.

Üzerine yapay zeka kullandığınız için işlemlerin ve iş yükünün paylaşılması için bu kütüphaneler grafik işlemcinizi kullansın diye CUDA driverları ve CUDA arayüzü de isteyebilir ki, kurulurken tensorflow falan bile gördüm bunları da uzunca anlatmak istemedim.

Yani kütüphaneyi (dlib kütüphanesinden bahsediyorum.) Derlediğinizde bir de yanında bir yığın başka derlenecek c dilinde koddan oluşacak kütüphaneleri de derletmek zorunda kalacaktık ki bunların burada lafza dökülmesi bile gördüğünüz üzere zaman alıyor.

Bunun yerine python bu iş için .whl şeklinde, derlenmiş bir paket diyebileceğimiz seçeneği sunuyor. Tek sorun bunlar sadece uygun python versiyonları ile çalışıyor ben de burada bulduğuma uygun bir tanesi üzerinden kurulumu anlattım hepsi bu.

Gelelim sorularınıza:

Ama öncelikle belirteyim ben ne balıkçıyım, ne balık satıcısı ne de balıkçı eğiticisi.

Ben kendi halinde bir mühendisim. Hiçbir zaman öğretme misyonum olmadı, paylaşma misyonu belki.

30 yıla yakın, damdan düşme maceralarımdan sırtımda kalan acıları paylaşıyorum hepsi bu.

Şimdi pip nedir?

pip documentation v23.0 (pypa.io)

pip, python için paket yükleyicisidir.

Google dan bulduğun bir de Türkçe kaynak vereyim:

Python Paket Yükleyici (PIP) - Python Dersleri (sitesi.web.tr)

Bazan dil problemi olan insanlar olabiliyor.

dlip nedir daha önce belirttim, wheel için de ;

Python Paket Yükleyici (PIP) - Python Dersleri (sitesi.web.tr)

Şuradan bakabilirsiniz.

Şimdi 30 yılda oluşan bir birikimi size nasıl aktarabiliriz bilmiyorum.

Bundan 30 yıl geriye gidip, basic kullanmalısınız, pascal kullanmalısınız, cobol kullanmalısınız, fortran kullanmalısınız.

Bunları kullanınca, dil nedir, derleyici nedir yorumlayıcı nedir hafif hafif anlamaya başlarsınız.

Sonra bir yerlerden assembly diye bir duyup onun üzerinde de çalışırsınız.

Artık dillerin sizin için bir anlamı kalmaz.

Biraz zaman geçer microsoft piyasaya Visual Basic, Borland da Visual C++ Builder ve Delphi yi sürer.

Bunarı görünce her şeyi kodlamak gerekmediği bazışeyleri sürükle bırak mantığı ile görsel olarak programlayabileceğinizi de görürsünüz.

Arada borland’ın efsanevi c++ derleyicisine değinmedim bile.

Dergilerden Linux CD leri çıkar, Windows mu Linux mu tartışmaları havada uçar. Meraklanır bir linux dağıtımı kurarsınız.

Keratanın ekran kartı driverlarını kurana kadar göbeğiniz çatlar. Çünkü üreticiler o dönem driver desteği vermeye çok yanaşmamaktadır.

Biraz kullanır sonra sıkılırsınız, çünkü zaten henüz rakibi windows un arayüzüne alışkın kitleyi çekebilcek kabiliyette değildir. Halbuki grafik arayüz konusunda daha eskiye dayanan bir alt yapısı vardır X11 bu işin elebaşıdır.

KDE mi GNOME mu diye fırtınaların koptuğu bir dönem görürsünüz.

Aradan yıllar geçer, javalar şunlar bunlar havada uçuşur.

Bu arada mac’leri pas geçiyorum.

İnternetle beraber, html, vs web dilleri dolanmaya başlamıştır. Herkes hacker olacaktır o günlerde.

Dönemler dönemleri olaylar olayları kovalar.

Hepsini burada yazmaya kalksam kitap olur.

Sonra geriye dönüp bakarsınız.

Bazıları dili öğrenmiştir ama kaliteli işler çıkaramamakla ömrünü geçirmiştir.

Bunun nedeni basittir aslında.

Okuma yazma öğrenen herkes yazar olamaz, olmaz…

Yani dil bilmek edebiyat yapabileceğiniz anlamına gelmez. (Bunu sizin için söylemedim, dile çalışıp dilin özelliklerini öğrenip iki satır kod yazdıktan sonra ilerleyemenler için söyledim.)

Öncelikle yazar olup olamayacağınıza kendiniz karar verin.

Ardından sırtım her damdan düştüğümden neden acıdı diye baktığımda gördüğüm aşağıdaki tavsiyelere göz atabilirsiniz.

Hangi dili öğrenecekseniz öğrenin, mutlaka dilin araçlarını iyi öğrenin.

Yani hangi dili öğrenecekseniz gidin bakın, keywords/ anahtar kelimeleri, koşul yapıları, değişken tipleri, atama operastörleri karşılaştırma operatörleri gibi konuların hemen ard arda dizildiğini görürsünüz.

Giriş çıkış işlemleri, fonksiyonlar vs diye devam eder gider. Yani dilin alfabesi apaçık ortadadır.

Ama kimse (zamanında bende dahil) dilin araçlarına dikkat etmeyiz.

Başta saydığım dillerin hepsinin kendine göre bir çok komutsatırı aracı vardır.

Bu araçlar, derlemede, yorumlamada, ön hazırlamada, kütüphane oluşturmada, kütüphane özetleri ve şablonları oluşturabilecek şekilde olduğu gibi, metin arama dosya silme gibi bir çok farkı araçları da içerebilir. Turbo C ile gelen grep tool u hala aklımda kullanmasını bilene çok faydalı bir araçtır.

Yani bir dil geliştirme seti edindiğinizde o set içindeki komut satırı araçlarına dikkatle bakıp öğrenmeye çalışın.

Yani bir dil için bir yazılım kurduğunuzda içinde neler var ilgili klasöre girip bakın. Binary dosyalar, kütüphaneler hatta examples klasörü bile vardır.

Python examples klasöründe bir görsel sıralama kodu bile var çok eğlenceli.

Yani çocukken o televizyonu sökmeyecektim, onu söktüğüm gün, bunun içinde ne var merakı beni bu hale getirdi.

Siz de o python ı sökmeyecekseniz elinize o bilgisayarı almayın.

Alırsanız bilişim tüketicisi olursunuz. PC ve Bilişim dergilerindeki gibi Ekran kartı, işlemci tanıtan makaleler gibi olursunuz.

Sporla ilgileniyormusunuz sorusuna cevabınız evet futbol sa, sonrasında şu takımı tutuyorum diyorsanız olacak olanın programlama versiyonunu yaşarsınız.

Yani bilgisayada temel girdi çıktı ve dosya işlemleri yapan kodlar yazamadan yüz tanımaya geçerseniz sürekli birine bağımlı kod yazmak zorunda kalırsınız, bir süre sonra da sıkılırsınız.

Bir iki bir şey yapar tüketim ve eğlence malzemesi olarak kullanır sonra da atarsınız kenara.

O tornavidayı elinize alacaksanız, acılı zorlu yılları göze almanız gerekir.

Tabi ki kolay yolu da var alın popüler görsel bir dil, modülleri yan yana puzzle gibi birleştirin sonra istediğiniz sonucu alın konu kapansın.

Kınamıyorum, böyle metodlar da var ve isteyen o yoldan ilerleyebilir.

Ama iş tornavidayı ele almaksa söküp tek tek inceleyeceksiniz.

Programcılığın kullanma kılavuzu gibi bir kitabı yok. Yani şuradan başlayın dümdüz ilerleyin demeyeceğim bu işler öyle değil.

Önce cihazınızı tanıyın, sonra işletim sisteminizi tanıyın sonra dosya sistemi ve komut satırı programlarınızı tanıyın.

Bunların nasıl çalıştığını ve programlandığını öğrenin sonrasında bunların nasıl yapıldığını öğrenmeye çalışın.

Yıllar içinde kendiliğinde bir çok reflekse sahip olursunuz. Bunlar dan biri de. Derleyicinizin/Editörünüzün/Geliştirme ortamlarınızın hata mesajlarını okumak.

O hata mesajlarını size eziyet olsun diye koymuyorlar. Kodumu yazdım hata verdi. Adamlar hususi program yazmış size hata verdirip eziyet edeyim diye komplo mu kurmuş?

Tabi ki hayır, bir şeyler sizden kaynaklı veya sizden bağımsız yanlış gitmiş ve bu nedenle hatanın ne olduğunu size bildirmeye çalışıyor editörünüz.

Öncelikle hata mesajlarını okuyun, imkanlar müsait google engineering diye bir kavram çıktı. Biz google ve eski rakibi altavista da öyle 20 milyon sonuç bulamıyorduk.

Siz şimdi bulabilirsiniz.

Hataları okumak, hataları yönetmek, debugger kullanmak bu işin parçası.

Öyle internetten bir parça kod buldum hop size şapkadan tavşan çıkardım diye bir dünya yok.

Havacılıkta bir söz vardır, havacılık kuralları kanla yazılmıştır.

Programlama öğrenmek istiyorsanız kanla ve gözyaşıyla mücadele etmeye hazır olun.

:slight_smile: Yok abartı oldu o kadar da değil.

Şimdi benim şansım yada şanssızlığım, hayatım reverse engineering ve system engineering konularıyla boğuşmak ile geçti. Maalesef amerikalılar ürünlerini veriyor ama teknoloji bilgilerinin hepsini paylaşmıyorlar, aslında paylaşıyorlar da bizim zeka onlarınkine yetmiyor.

Yine oradan edindiğim bir deneyim. Bir sistemin çalışması için tüm bileşenlerinin doğru çalışmaysıyla mümkün ilken bir sistemin çalışmamasını herhangi bir bileşenin çalışmaması sağlayabilir.

Bu nedenle adamlar durumu kabullenmiş. Bir sistem herhangi bir yerinden bozulursa sistem bozulur biz de bağımsız/yedekli sistemler tutalım.

Sizin durum da buna benzer ilk kısmına. Olmamış olması için bir çok ihtimal var. Derleyicinizden, editörünüzden, işletim sisteminizden itibaren herhangi bir alt bileşendeki bir hata sistemi çalışmaz hale getirebilir. Bu nedenle olmamış olabilir.

Aslında sebebini daha önce söyledim.

Özetleyeyim tekrar.

Aslında @aib hoca güzel anlatmış. Hunharca anlatmış. Kızıyor açık kaynak kullanmayanlara ve hatta windows düşmanı diyebilirim.

Ama güzel anlatmış.

Şimdi biz windows dünyası tarafından bakalım. Python yorumlanan bir dil. Yani aslında satır satır bir yorumlayıcı python kodunuzu okur, sonra bunu işleyecek bir program bunu işletim sisteminin işleteceği bir aracı program gibi işletim sistemine gönderir.

Biz bu tür dillere script diyoruz.

Python’a eş değer değildir, ama BASIC de script bir dildir ve BASIC interpreter tarafından yorumlanır, yani python’ın yaptığını windows yıllar önce yapmıştı. Tutmadı, tutmayınca tutmuyor.

Yorumlanan dillere en iyi örnek java oldu, baktılar bu yol tutu kaptırdılar gittiler.

Yani C, C++, Pascal, Delphi gibi diller exe ye çevrilirken (windows için) python exe yapmak yerine olduğu gibi kullanılır.

Tabi bu dili bir yere kadar kullanabilirsiniz ama herkes kodunu python ile yazmaz. Bazı kütüphaneler, bazı api setleri genelde dll şeklinde olur ve hangi dil bunları kullanacaksa kodunun yanına bağlar ve çağırır.

Yani o dilin kendi dilinde yazılmış bir kütüphane yerine C veya C++ kütüphanesinin işlevlerini kullanmak istiyorsak, önce onu python a bağlanabilecek şekilde dönüştürmek zorundayız.

Bu durumda python öğrenmeniz yetmez, C ve C++ da bilmeniz gerekebilir. Tabi benim yaptığım gibi hazır bir paketi de alıp C öğrenmeden o paketi kendi dilimize ekleyebiliriz.

Tornavida burada devreye giriyor. Dlib kaynak kodunu incelemeniz ve nasıl derleneceğini ayrıca öğrenmelisiniz.

Python linux tarafından yayılan bir dildir. Linux tarafı dil yönünden zengindir. Sayıcısız derleyici ve dil desteği sunabilir, microsoft tarafı için de araçları vardır ve araştırıp onları windows a ithal etmeniz gerekir. Bunlar eksik kalırsa linux mantığındaki kodları kullanamayabilirsiniz.

Basit girdi çıktı işlemleri, temel fonksiyonlar python ın kendi temel kütüphaneleri ile başlarsanız sorun yaşamazsınız ama kitabın ortasında yüz tanımlama ile başlarsanız tabi ki bağımlı kütüphane problemleri yaşarsınız

C ve C++ da kullansanız bu kütüphanelerin C versiyonlarını derleyip kitaplığınıza eklemeniz gerekecek.

Yazacak çok şey var ama uzar da uzar.

Sonuç olarak zamanla uğraşarak başınıza gelerek deneyerek öğrenebilirsiniz. Bolca okuyarak bolca sorarak da geliştirirsiniz. Kolay gelsin.

Teşekkür ediyorum yine ciddi bir vakit ayırıp güzel bir yazı kaleme almışsınız. Güzel bir yazı olmuş. Ben HOBİ olarak ilgilendiğim ve bu işi meslek edinmeyi düşünmediğim için o kadar vakit ayıramıyorum . Ama sizin söylediğiniz gibi o televizyonu ve daha bir çok şeyi çocukluğumdan beri açarım. Benim için herhanği bir şeyin ne yaptığı değil nasıl yaptığını anlamak hep önemli oldu. Mantığı nedir nasıl çalışır benim için hep önemliydi. O yüzden sadece yazılım değil hayatın her alanında karşılaştığım her şeyi kurcaladım. Dedim ya HOBİ o yüzden şiir yazacağımı iddia etmiyorum. Ben öğrenmeye aşığım. MS-DOS 6,22 , windows, linuxun bir çok dağıtımı, pardus ve ubuntu dahil, Delphi Enterprise, .net, basic, visual basic, C, C++, Java, Python da kurcaladığım şeyler arasında. Ama hangisinde iyi bir iş ortaya çıkardın dersen hiç biri ve amacım bunları öğrenirken şiir yazmak değildi. Öğrenmek gönlümü oyalamaktı. Bunun yanında fizik , geometri, lineer cebir, foton, ışık, kuantum mekaniği, elektrik, elektronik, robotik … gibi bir çok alanda da merakımı giderecek kadar kurcalamışlığım vardır. Şimdi de bilgisayarlı görü, nesne tanıma, yüz tanıma, sınıflandırma ilgimi çektiği için bu alanda kendimi oyalamak istiyorum. Kitabın ortasından başlamak gibi görünse de aslında yazılım işine çok da yabancı değilim ama uzmanda değilim.

1 Beğeni

Yukarıda anlattıklarınıza istinaden. Madem görüntü işleme ve yüz tanımlama ile uğraşmak istiyorsunuz.

Ve Madem C,C++ kullanmışlığınız var.

Bu işi C++ üzerinde yapın daha az başınız ağrıyacaktır. Takıldığınız bir yer olursa çekinmeden sorabilirsiniz. Aklımızın erdiğince elimizden geldiğince el atar üzerinde çalışırız.

Kolay gelsin.

Bu acmak istedigim konulardan bir tanesi. Gereken yeterlilik seviyesine gelen insan basladigi noktadan cok uzaklasmis olabilir, zengin olan rap’ci misali. Veya, benim gibi, artik insanlarin isini zorlastiran, belki insanligi senelerce geriye goturen Windows gibi teknolojilere yatirim yapmak istemiyor olabilir.

Yaptilar zaten. Ama kaynaklarini Linux’taki deneyimli programcilarin kullanim deneyimini iyilestirmek icin harcayan paket yoneticilerinin yaninda unutuldular.

Windows icin paket yoneticileri var mesela. Niye kendilerinden cok az bahsediliyor? Cunku sisteminde paket yoneticisi olmasini isteyecek kadar bilgi ve deneyime sahip insanlar Linux kullaniyor, NixOS kullaniyor, olmadi MacOS kullaniyor.

Peki, yolladigim linki de okuduysan, neden yardim alabilecek ideal sorudan uzak oldugunu gorebiliyor musun?

Bu arada yardim verebilmek icin bilmemiz gereken seyleri soran sorularim yanitsiz kalmis.

Bu alinti yapip cevapladigin sorunun hemen uzerinde bir soru var mesela:

Daha asagida:

Bunlari cevaplamadigin surece yazdiklarin sadece bir yakaristan ibaret oluyor.

Hata mesajinin sana ne hissettirdigi hakkinda birden fazla cumle var, fakat hata mesajinin ne oldugu yok.

Veya su kiritik nokta:

Sadece Turkce kaynaklara dayanarak yazilim dunyasina atilmaya calisiyorsan, yapilabilecek en buyuk hata. Hic bir seyin kolay veya anlasilir olmasini da beklememen lazim, malesef.

Peki bunu incitmeden nasil soyleyebilecegim konusunda bir tavsiyen var mi?

O zaman yanlis yazmissin, cunku 100 tane farkli cozum yok. Boyle bir sey 100 kere yapiliyorsa 40-50 tanesi “bilgisayar vicdana gelir” veya “eeahh boyle bilgisayarin!@#$%” gibi bir yaklasimla yapilmak zorunda. Yani normal bir psikolojiyle bir seyin 100 kere tekrarlanmasini aklim almadi, cok daha erken bir noktada yaklasimin degistirilmesi gerekiyordu.

Daha cok dert yanip psikolojik destek ariyorsun. Ve bu tamamen okey! Hepimizin buna ihtiyaci var. Bir de durumun farkina varip beklentileri uygun tutmak lazim.* Psikolojik destek arayan yaziya teknik destek verilme ihtimali daha dusuk. Teknik destek almak icin gereken gereksinimlerin (bkz: Soru Sorarken Sıkça Düşülen Hatalar) yerine getirilme oranlari da daha az.

Nasil yapici mesela? “Merak etme, ogrendikce isler kolaylasacak” gibi mi? Kolaylasmayacaksa, yaklasim radikal bir sekilde degismedigi surece kisi ilerleyemeyecekse, nasil yapici bir sekilde anlatilabilir?

Cok buyuk takdir ediyorum. Teknik olarak destekleyebildigim kadar destekleyecegim.

Dogru kaynaklara yonlendirebilmeyi cok isterim, fakat oncelikle nasil yanlis kaynaklara gittigini bilmem lazim.

Zaten ilk sordugum sorulardan biri de bu yondeydi: Arama dili Ingilizce, degil mi?

Degilse aletin/kutuphanenin resmi sayfalari veya StackOverflow veya MSDN gibi deryalar cikmayabiliyor. Bunun disindaki kaynaklarin neredeyse tamami kafadan cop zaten.

Eger tanisiyor olsaydik boyle bir seyi dusunmemi olanak olarak bile gormenize alinirdim.

("Amca"yi duyunca kafada olusan model fiilleri birinci cogul sahsa (“gormenize”) cevirdi. Oysa buyuk ihtimalle aramizdaki yas farki buradaki diger arkadaslarin cogundan daha dusuk.)


*: Bir de, bunu gostermeye calisan insana “sen bana deli mi diyorsun lölölö” dememek lazim. Daha once cok karsilastigim icin ekliyorum, bir beklentim oldugundan degil.

Bunlar isiginda soyle bir tavsiye verebilirim sanirim:

AI/ML isleri icin Linux. Yarin-oburgun eldeki bilgisayar yetmediginde, cloud’dan bilgisayar kiralamak daha ucuz oldugunda oradaki makinalar da Linux olacak. Python kurmak, kutuphane kurmak, bir seyler derlemek orada kolay, hatta cogu zaman gerek bile yok. Windows’ta “su komutu CWD’de veya su env degiskeniyle calistir” demek bile dert. Dosyalar icinde yazi nasil araniyor hala bilmiyorum.

Ana makineye kurmaya gerek de yok. VM altinda calisabilir.

Tavsiyeleriniz için teşekkür ediyorum, epey yol gösterici oldu. Aslında Linux kullandım bir miktar. Kullanmayı da isterim ama bilgisayarla aşina olmaya Windowsla başlayıp karşılaşılan sorunları çözmek için de (öğrenme aşamasında) bir çok kaynak ve danışabilecek bir çok kişi olunca oralar daha güvenli sular gibi gelmeye başladı en azından bildiğim ve karşılaşabileceğim bir çok sorunun nedenini ve muhtemel çözümünü bildiğimi düşündüğüm için kolaycılığa kaçıyorum. Linuxdan vaz geçmemin en temel nedeni iyi bir kaynak bulamadığım ve konsol komutlarına hakim olamadığım için. İngilizcem eh işte düzeyinde olunca, bilim ve teknoloji ile alakalı kaynakların %99 dan mahrum kaldığımın farkındayım. Etrafımda sorabileceğim, fikir alabileceğim birileri de yok malesef. Etrafımdaki insanlardan Wordü açıp yazı yazıp çıktı alabilenler kendilerini bilgisayarın ilahı modunda görüyor düşün arkık durumun vehametini.

Siz @aib hocanın öfkelendiğine bakmayın.

Dümdüz windows’tan devam edin.

Adam açık kaynakçı olduğu için windows a hunharca giydirmiş. Haklı yönleri de var haksız yönleri de var.

Şöyle sorayım.

Bir araba/otomobil alacaksınız.

BMW m3 lere toz yutturan, modifiye bir şahin mi istersiniz? Ki bu şahinin parçası heryede ucuza bulunabiliyor, bir akaryakıt istasyonuna girseniz sileceğini bulabileceğiniz ustası piyasada yığılı ve ucuz yoksa her ne kadar bu modifiye tofaş şahin tarafından tekmelenebilen bir standart BMW veya Mercedes mi?

Linux’un durumu bu. Evet parçası ucuz, hatta bedava, evet bazı yerlerde modifiye olduğu için yolda mercedes bmw bile tokatlayabiliyor ama bir mercedes yada bmw değil.

İnsanlar neden modifiye edip tofaşa binmek yerine bir bmw yada mercedes tercih ediyor?

@aib hoca hunharca windowsu katletti ama iş öyle değil.

İnsanlar arkasında bir şirket olan geriye dönük uyumluluğu olan iyi dokümante edilmiş bir işletim sitemi de ister.

Bu demek değildir ki linux iyi dokümante edilmemiş.

Evet ama sorun şu;

Shell kullanacaksınız, bash,sh sayısız shell alternatifi var.

Pencere yöneticisi kullanacaksınız, KDE, Gnome, Xface vs. vs sayısız pencere yöneticisi var.

Yani hangi birini seçip hangi birini standartlaştırıp hangisini kullanacaksınız?

Biri bir paket yöneticisi sunuyor öbürü bir başka paket yöneticisi sunuyor.

Red Hat kullanayım dedim ben Enterprise olacağım dedi çekildi yerine yerine fedorayı bıraktı.

Debian ayrı bir hava…

Suse ayrı bir hava…

Yani linux dağıtımlarının bir standardı yok, biri hanyaya öbürü konyayay adamı bıktırıyor.

Evet terminalden çalışırsan linux komutları standart eyvallah…

Yahu bir editör kullanayım diyorum, vim bir tarafta emacs öbür tarafta kavga çıkarıyor.

Notepad’in gözünü seveyim diyorsun.

Hepi topu iki satır yazı yazacağım, wim ayrı kısayollarla çalışıyor emacs ayrı…

Bir taraftan bakınca, evet özgür yazılım, açık kaynak insanlar da keyfine göre çeşit çeşit seçenek sunuyor diyebilirler ama iş öyle değil. Her şey darma dağınık.

Tabi insan bu fırtınalı denizde sakin bir liman arıyor.

Haliyle windows en azından yıllarda geçse üzerine özellikler eklerken geriye uyumluluğuna da dikkat ediyor.

Şimdi asıl probleme gelelim.

Python windows ürünü değil.

Ve windows düşünülerek tasarlanmamış. Bir linux ürünü dili alıp windows a aktarırken tabi ki sorunlar çıkar.

Bunu da windows a atmak haksızlık olur.

Windows kendi diline uygun programlama setlerini oluşturmuş.

C# ile yazılmış bir kodu hele ki windows apileri kullanan bir kodu linux kullansın da göreyim. Öyle wine tarzı emülatörlerle değil, indirip burada pythona yaptığımız gibi çevirip kullansın göreyim.

Aynı sorunları linux tarafında yaşarlar.

Oracle dahil büyük sunucu hizmeti veren ağalar tabi ki linux dağıtımları kullanıyor tabi bazıları da unix türevi kullanıyor. Bu nedenle tabi ki, ağda çalışan iş ve işlem paylaşan programlar için linux faydalı olabilir.

Lakin piyasada windows serverlar yok demek de çok doğru olmaz.

Yani konu yapay zeka ise ve windows kullanacaksanız,

Linux a ve python a mahkum değilsiniz.

Windows araçları kullanırsınız olur biter. C++ var C# var.

Daha önce anlatmıştım Basic.

Windows Boş durmadı Visual basic i de geliştirdi.

Şu an .net üzerinde gayet güzel Visual Basic ve C# çalışabiliyor.

Hatta C++, Visual Basic ve C# kodlarınız bir biri ile gayet güzel anlaşarak çalışabiliyor.

Vaziyeti farkeden Microsoft, topluluk oluşturup açık kaynak kodlamaya olanak sağlayan araçlar ve platformlar da oluşturdu.

Şirtket ticari tabi ki bir politikası olacak ve tabi ki para kazanmayı hedefleyecek. Bunca yıl hunharca windowsu eleştirenler oldu.

Ama microsoft bu işi yapmasa idi, zamanında kimse pc almaz, winamp’ta şarkı dinlemez. Linuxçular da hala terminalde yaşıyor olacaktı.

Yani Türkiye’de hiç bir babayiği kolay kolay babayiğit mac alacak ve evde oyun oynayacak durumda değildi. Ancak matbaacılar kullanıyordu mac leri o da dijital matbaa makineleri bununla uyumluydu.

Makul fiyata bir pc sahibi olup evde kullanabiliyor olmamızın başarsının sahibi Microsoft’tur. Öyle linuxçular oturup kafa yorup zamanında bir donanım şirketiyle anlaşıp da bir pc piyasası oluşturmayı başaramadı zamanında.

Yani önce kitleyi bir pc ye ihtiyacı olduğuna inandırmak ve evlere sokmak gerekiyordu. Linuxçuların kafasıyla gidilseydi şimdi bilgisayar denilen alet sadece laboratuvar mazlemesi olarak kullanılırdı.

İş ne zaman microsoft sayesinde yayıldı, linuxçu kardeşler biz de varız parayla olmaz bu işler diye ortaya dökülmeye başladı.

Yani Torvalds amca 1991 de linux çekirdeğini tanıtırken ki ilham aldığının Unix olduğunu biliyoruz. 1985 te Microsoft piyasa yapmaya çalışıyordu.

Debian 1993 de ortaya çıkabilmişti.

Hiç birinin de aklında her eve bir pc gibi fikri yoktu o zamanlar.

Tamam linux iyi güzel hoş gömmeye çalışmayacağım ama, python kütüphaneleri yüzünden de microsoft’a bu kadar yüklenilmez.

Günlerce how to ve man pages okumuş biri olarak söylüyorum.

Hiç biri MSDN kadar düzenli ve geriye uyumlu değil.

Yani microsoft evet kapalı kod çalışıyor evet paralı ama kurumsal bir tavrı ve yürüyüşü var.

Dünyanın neresine giderseniz gidin bir windows sürümünde ne yapacağınız sezgisel olarak bulabilirsiniz.

Ama elinize aldığınız bir linux dağıtımı o kadar esnek ki kimin hangi dağıtımıyla karşılaşacağınız belli değil.

Yani her birinin paket yöneticileriyle boğuşmuş biri olarak söyleyim öyle çok da masum değiller.

Özetle alın bir visual studio kurun.

Yapay zeka, görüntü ileme ile ilgil kütüphanelerini kurun tertemiz sorunsuz çalışır.

İster C++ yazın kodu, dönün geri kalanını C# yazın oradan devam edin setup’ını Visual Basic ile hazırlayın tıkır tıkır sorunsuz derlenir.

Python son günlerde moda oldu, çünkü yapay zeka falan diye reklamı bol oldu.

Sanki yapay zeka sadece bu dilde yapılıyormuş gibi.

Şimdi burada python ın beğenmediğim yönlerini yazsam yol olur.

Yani bir dil düşünün kapsam ayarlamak için boşluk ve hizalamarlar uğraşıyorsunuz akıl işi mi?

Aha adamın biri kodunu satacak nasıl şifrelerin nasıl derlerim diye kırk takla atıyor.

Al bir C++ derleyicisi paşalar gibi exe dosyasını alır koyar kenara.

Yine burada biri bir kütüphane kurmuş, programı çalıştırmış, şimdi çalışmıyor. Neden aldığı kütüphaneyi yazan bir setup.py yapmış evlere şenlik. Sadece tek bir sürümde çalışıyor kütüphane.

python, programlama engelliler için hataları tolere edebilen değişken tanımlamak zorunda bile bırakmayan yeni başlayanlar için basit bir programlama dili. Evet yetenekleri var ama o kadar da eksileri var.

Yani nacizane python konusuna takılmayın, kütüphanelerine takılmayın. Kurum bir microsoft community edition. Ücretsiz, temel toolkitleri hazır. Dokümantasyonu tam. Destek alabilir bir sürü kullanıcı ile de sorularnızı rahatça çözersiniz. Microsoft’un kendi ses tanıma, yüz tanıma, biyometrik kütüphaneleri olduğu gibi bir kısmını da api haline getirip işletim sistemine tümleşik hale de getirmeye başladı.

Yani onu mu yükleyim bunu mu yükleyim derdi burakmadan. Çoğu dll işletim sisteminde duruyor. Derlediğiniz kodu istediğiniz aynı işletim sistemi kullanıcısına gönderin tıkır tıkır çalışır.

Yani microsoftu gömecek durumda değil python.

Zaten durum daha da kötüye gidiyor.

Androidden beri icon tıklayan bir kullanıcı kitlesi oluştu ki bunlar da işletim sisteminin arka planında neler dönüyor nasıl kod yazılır derdi gütmeden iki satır java koduyla uygylama yapıyor.

Böyle giderse full yazıım tüketicisi bir ülke olacağız sanırım.

Kolay gelsin.

Sorun zaten cutting-edge (“son teknoloji”) teknolojilerin guvenli sulardan kullanilamamasi.

Birkac sene once ESP32’ye Rust yazmayi denedigimde takildigim noktada yardim alabilecegim bir (1) blog post’u vardi. Simdi 7 kisinin yazdigi bir kutuphanesi var. Muhtemelen bu kisiler hangi sistemleri kullaniyorlarsa onlari kullanmam veya yaptiklarini kendi sistemime tasimam gerekir. Cift klik, Sonraki Sonraki diye yukleme yapan bir installer’i oldugunu zannetmiyorum.

Ingilizce ve kaynak sikintisini anliyorum. Ben de DOS, Windows ve BASIC’i oyle ogrenmistim. Muhtemelen bugun alacagi vaktin 30 katini aldi.

Fakat neyse ki makale yazacak kadar Ingilizce bilmeye, veya driver debug edecek kadar Linux bilmeye gerek yok.

Buradaki hic bir seye ofkelendigimi hatirlamiyorum—ta ki bu cevabin devamini okuyana kadar. Neyse ki “Windows vs Linux” troll’lerine alisigim.

Bende öfkelendiğin izlenimine neden olan bazı satırlarını ekleyeyim:

Yani yukarıdan aşağı şöyle toplayınca, windows kişisel bilgilerinizi topluyor ve ticari olarak kullanıyor neden windows kullanıyorsunuz der gibi bir durum çıkıyor. Yumuşak konforlu sıcak alanınızda tek tıkla her işi halletmeye alışkınısınız gibi bir sitem de bonusu olmuş.

Hiç ön almaya çalışma çalışma, tabi ki yazınca hoşuna gitmeyen şeyler olabilr.

Tam aksine ben işletim sistemi seçmem, o iyi bu kötü karşılaştırmalarını da hiç doğru bulmam.

Denemediğimi mi de paylaşmamaya dikkat eder, denemediğim de de altına not düşerim.

Benim açımdan konu arz talep meselesi.

Windows isterse windows, linux isterse linux, android isterse android, gömülü isterse gömülü sistem.

Bana farketmez.

Yukarıdaki yazıda empati kurmaya çalıştım.

Bunun için troll olacaksak olalım sorun değil. Microsoft görse gözleri yaşarırdı, semtex bizi savunmaya çalışmış hayret diye.

Tabi böyle bir durum yok.

Konunun özü şu, neden python kütüphaneleri windowsta zor kuruluyor, cevap, çünkü python windows’a ait bir dil değil.

Python’a kütüphane yazanlar da windows a hassasiyet göstererek yazmamış.

Durum bu.

Bu durumda, windows işletim sistemi kullanan birine tavsiyem windows araçlarıdır.

Ha oturup linux’un da windows’un da sayısız kendine özgü sorunlarını konuşursak sayfalarca yazarım o da ayrı konu.

Python ile ilgili windows temel sorunlarından birinin, linux’un yerleşik bir c++ derleyicisi varken windows’un bunu doğrudan sunmadığı, visual studio ile yapabileceğini söyledim.

İki nedeni olabilir, öncelikle windows kapalı kod neden insanlar program yazsın ki gibi bakmış olabilir. Yada tekel davalarından bıkmış olabilir.

Yerleşik bir derleyici sunsa bu sefer de, yazılım üreticlileri siz yerleşik sununca biz ürün satamıyoruz diye tepki vermiş olabilir.

Adamın internet explorer için bile başının ağrıdığını düşünürsek çok da ikinci seçeneği yadırgamam.

Yani python veya windows’a ait olmayan harici bir görüntü işleme kütüphanesinin python a evrilmesi aşamasında sorun çıkması kadar doğal bir durum yok. Ve bu bazı kullanıcıları memnun etmeyebilir. Bence de cross platform yazılımlar çok da başarılı değil her zaman sorun çıkarır.

Linux için yazımış bir yazılımı linuxta, windows için yazılmış bir yazılımı windowsta kullanmak ki buna dilleri de dahil daha makul.

Çünkü standart kodlama için bir sorun çıkarmayan çapraz platform yazılımlar, işin içine işletim sistemine özgü api çağrıları içermeye başlayınca bu tür sorunlar çıkarabiliyor.

Şahsen ben bir kod yazacak olsam.

if ver= windows

else if ver= linux gibi

Kodlayarak gitmekten hiç haz etmezdim.

Gelelim için gömülü boyutuna,

Bir ucu ladder diagrama diğer ucu assembly ye uzanan bir noktada işletim sistemi adamın aklına bile gelmiyor, micro controller’ın kısıtlı kapasitesine nasıl sığarım derdi arasında hiç de hangi işletim sistemi konusuna bakamıyorsun bile.

Bir kontrolcü programlarken, geliştirme kiti hangi işletim sisteminde ise onda kullanır geçerim. Vay bunun geliştirme ortamı neden windows, vay bunu sadece linux için yazmışlar diye ne zaman ne emek harcamaya gerek görmem.

Yani gereksiz bir detay gibi geliyor bana.

Bunu windows trollüğü olarak nitelemeyelim.

Bu sezarın hakkı sezara diyelim.

Mesela android’e kimsenin laf söylediğini görmedim.

Sözüm ona açık kaynak ama kapalı kısımları var. Sözüm ona kullanıcı dostu ama üzerinde bir
geliştirme ortamı veya bir yerleşik derleyici sunmuyor.

Oysaki ki veri toplama konusunda google da az sabıkalı değil, ama biraz linux tabanlı diye gözünüze şirin görünüyor sanırım.

Hele Mac OS’un’un masum olduğunu kimse söyleyemez.

Yani hiç birimiz masum değiliz.