Programlamlar Neden Runtime'a İhtiyaç Duyarlar

Ben Kenobi

Dekan
Katılım
6 Kasım 2011
Mesajlar
7,336
Reaksiyon puanı
3,155
Puanları
113
Arkadaşlar merak ettiğim bir mesele var.
Programlama dili ile yazılan bir program neden runtime'a ihtiyaç duyar.
O program derlenirken zaten makine diline çevrilmiyor mu?
Hadi Java istisnai bir durum, onun makine diline çevrilmediğini biliyoruz ve runtime'a neden ihtiyaç duyduğunu anlayabiliyoruz.
Ama mesela .net neden runtime paketlerine ihtiyaç duyuyor.
Ya da visual c++ ile derlenen programlar bunun runtime paketleriyle geliyor.
İşin ilginci visual c++ runtime'ları silsem de programlar çalışmaya devam ediyor.(.net için öyle değil tabi)
Gerçek bir programlama dili runtime'a ihtiyaç duyar mı?
Yoksa bunlar tam olarak programlama dili sayılmaz mı?
Bu konu kafama takıldı bilenler aydınlatırsa sevinirim.
 
Katılım
31 Aralık 2007
Mesajlar
17,485
Reaksiyon puanı
188
Puanları
63
Programlama dillerini runtime ihtiyaclarına göre ayırma bence :) .NET'in javadan bir farkı yok aslında calışma olarak. Java kodu derlediğinde java byte code'a dönüşür, .NET kodu da MSIL koduna dönüşür. İkisi da virtual machine layer'i üzerinde çalışır ama .NET javaya göre kat kat performanslı. Ama javanin da güzel yani her yerde çalışabiliyor.

Bir programlama dili derlediğinde makine koduna dönüşse bile bazen programlama sırasında ekstra kütüphanelere ihtiyac duyulabiliyor. Bunları exe'den ayırmak tekrar kullanilabilirlik ve yönetim acısından daha iyidir. Fakat istersen bunları direk exe'ye de gomebilirsin ama derleme süresi uzar...
 

Ben Kenobi

Dekan
Katılım
6 Kasım 2011
Mesajlar
7,336
Reaksiyon puanı
3,155
Puanları
113
Programlama dillerini runtime ihtiyaclarına göre ayırma bence :) .NET'in javadan bir farkı yok aslında calışma olarak. Java kodu derlediğinde java byte code'a dönüşür, .NET kodu da MSIL koduna dönüşür. İkisi da virtual machine layer'i üzerinde çalışır ama .NET javaya göre kat kat performanslı. Ama javanin da güzel yani her yerde çalışabiliyor.

Bir programlama dili derlediğinde makine koduna dönüşse bile bazen programlama sırasında ekstra kütüphanelere ihtiyac duyulabiliyor. Bunları exe'den ayırmak tekrar kullanilabilirlik ve yönetim acısından daha iyidir. Fakat istersen bunları direk exe'ye de gomebilirsin ama derleme süresi uzar...

ben de benzer düşünmüştüm.
.net'in java gibi virtual machine layer üzerinde çalıştığını bilmiyordum.
Bunları exe'den ayırmak tekrar kullanılabilir ve yönetim açısından daha iyidir.
Ama teoride.
Çünkü daha iyi olması için geriye dönük uyumluluğun olması gerekir.
Java örneğindeki gibi.
.net platformunda ise bu söz konusu olmadığı için sürekli farklı versiyon runtime yüklememiz gerekiyor.
Yani bundan birkaç yıl sonra onlarca farklı versiyon runtime yüklememiz gerekebilir.
Belki tek çözüm directx örneğinde olduğu gibi farklı versiyon runtime'ların tek bir paket altında verilmesi.
O zaman da belki de hiç kullanmayacağımız programların runtime'larının gereksiz yere sisteme yüklenmesi demek.
visual c++ için de benzer.
Bunlar benim görüşüm tabi. :D
Ama siz söylemeydiniz emin olamazdım.
Hürmetlerimi sunarım sayın üstad :)
 
Katılım
31 Aralık 2007
Mesajlar
17,485
Reaksiyon puanı
188
Puanları
63
.NET'de de geri dönük uyumluluk var. Eğer versiyonlar arası köklü değisiklikler olmadıysa ve assmbly paketleri aynıysa sorun olmuyor. Ama sağlam bir degisiklik varsa ve bunu kullandıysan yazdığın uygulama yeni runtime'a ihtiyac duyabiliyor. Fakat yazdığın uygulama client profile frameworku ile yazıldıysa cogu zaman yuklemeye ihtiyacın olmuyor...
 
Üst