Dillerin hızlılığı

Bazı insanlar atıp tutuyo şu dil daha hızlı bu dil çok yavaş o dil yorumlamalı dil …
Ama bu konu hakkında yapılan bir araştırma veya deney mevcut mu?

Karşılaştığım yazılarda genelde filanca dilin diğer dile göre daha hızlı veya daha yavaş olduğu yazıyor. Ama okuduğum yazıların çoğunda deney sonuçları yok. Deney sonuçları içeren yazılar da var. Belki doğru söylüyorlar, belki yanlış. Biz kendimiz bu deneyleri yapmadan kesin bir şey söyleyemeyiz veya bir deney izlememiz gerekiyor diye düşünüyorum.

Mesela bakın, size numpy modül belgesinin çevirebildiğim kadarıyla bir kısmını aktarmak istiyorum:

Kaynak: https://docs.scipy.org/doc/numpy-1.11.0/numpy-user-1.11.0.pdf 3. ve 4. sayfalar.

C diliyle en az Python’la ilgilendiğim kadar ilgilenmiş olsaydım, yukarıdaki alıntıda iddia edilen hız farkının gerçekten öyle olup olmadığını daha rahat araştırabilirdim.

Mesela aşağıdaki sitede çeşitli başlıklarda bir performans karşılaştırması yapıldığı yazılmış. Sayfayı detaylı olarak daha incelemedim dolayısıyla sonuçları pek değerlendiremiyorum. Düşüncem şu yönde, bu sitede yapılmış deneyleri yapabiliyor muyum? Hayır. O zaman sonuçlar hakkında yüzde yüz emin olabilir miyim? Hayır.

http://benchmarksgame.alioth.debian.org/

Nasıl? Kodlar paylaşılmış o sitede deneyebilirsiniz

Aşağıdaki örnekten mi bahsediyorsunuz yoksa?

benchmarksgame.alioth.debian.org/download/benchmarksgame-script.zip

Suan bilgisayarlar cok gelisdi cok guclu islemciler mevcur o yuzden programlrin hangi dilde yazildigini neredeyse hiss etmiyorsun.Fakat bazi dillerin direk,bazilarin sanal calismasi performansa etgi yaratiyor.Mesela java,python gibi diller kendi sanal makinalari olmassa calismaz yani soyle python indirmessen .py dosyasi bilgisayarinda calismaz buda bir katman(isletim sistemi uzerinde sanal makina onunda uzerinde program ) olusdurdugu icin yavawlama soz konusu oysa C ile yazdigin program direk makina kodu uretiyor(isletim sistemi uzerinde direk C programi) ve hicbir yardimci programa gerek duymuyor ve boyle olunca daha cok performans aliyorsun…Mesele bundan ibaretdir

@Efrahim: C kodu da bir derleyici ile çalışmıyor mu? Derleyiciyi kurmadan C kodu çalıştırabilir miyiz?

Bu arada şu linkteki yazıyı alıntılayayım:

Türkçe bir kaynaktan bir alıntı paylaşayım:

Yukarda verdiyiniz bilgiler dogru fakat kafa karistirici…Isin mantigi soyle her dil calismasi icin 01 makina kodlarna donusmesi gerekiyor,fakat donusumlerde biraz farklliklar var …Mesele Javada makina koduna Java sanal makinasi yapiyor bunu yapmakda maksat programin sistemlerden bagimsiz calismasi sen direk calisan .exe yapmamiyorsun sen java kodu yaziyorsu ve derliyorsun bu derlenen kod bir kod uretiyor fakat bu kod makina kodu diyil java sanal makinasinin anlayacagi bir kod onu ancak java ile calisdira bilirsin,ve bu sekilde sanal makina onu kendisi 01 makina kodlarina ceviriyor bu sekilde nerede yazarsan yaz java butun isletim sistemlerinde calisiyor.Fakat C-de durum farkli C ile yazidigin kod derleyici derleyerek direk makina kodu uretiyor,derlendikden sonra ortaya cikan calistirila bilir dosyanin hicbir baska araca gereyi kalmiyor direk calisiyor.Bunun arti ve eksi taraflari var eksi taraflari derlenen kodun butun isletim sistemlerinde calismiyor olmasi linuxda derleyip windowsda calisdiramiyorsun,arti tarafi makinaya daha yakin olman C Assambly dilinin zorluklarna karsi gelistirilmis bir dil,neredeyse isletim sistemleri tamami assambly C gibi dillerle yaziliyor python ile isletim sistemi yazamassin isletim sistemide sonucda bir program python-nun calismasi icin sanal makinasi gerekli oldugundan sifirdan bir bilgisayarda python calisdiramassin nedeni python-nun sanal makinasnin olmamasi oysa C kodunu baska bir bilgisayarda yazarak derleye bilir onu sifir bir bilgisayara(isletim sistemi olmayan) yazarak calisdira bilirsin boylelikle kendince kucuk isletim sistemi yaza bilirsin…

Siz de doğru söylüyorsunuz.

C, Python’a göre makine diline daha yakın olarak sınıflandırılıyor.

Öğrenmek için soruyorum,

Kaynak: https://en.wikibooks.org/wiki/C_Programming/What_you_need_before_you_can_learn

Bu sitede yazdığına göre diyor ki: C’de programlamaya başlamadan önce bir tane derleyici seçmek gerekir. Yaygın kullanılan derleyiciler; Visual Studio, tinycc, clang, gcc’dir.

Bu derleyiciler olmadan C kodları okunabilir mi?

Sizin söylediğinizi anladım: C ile işletim sistemi yazabiliriz… Dolayısıyla işletim sistemi olmayan bir makinede C ile yazılmış bir işletim sistemi çalıştırabiliriz. Buna itirazım yok.

Derleyici olmadan program calisir calismasinda derleyici gerekli diyil derleyici sadece C programini 01 makina kodunu donusturuyor ve orada derleyicin isi bitiyor artik derleyicini kaldirsanda program sift tiklayarak calisdira bilirsin oysa javada oyle diyil javada programi derliyorsun derledikden sonra onun calismasi icin Java sanal makinasi gerekli.