Iste bu "onemli sistem" den kasit mission critical olmali. Milisaniyelerin bile onemli oldugu, kesinti yasanmasinin insan hayatina etki edebilecegi sistemler. Askeri ya da saglik sektorunde kullanilan ekipmanlar, gudumlu fuzeler vs.
Bi kere kafadan garbage collector kullanan sistem ile yazamazsin, GC devreye girince milisaniyelik kesintiler yasanir. Web sitesi icin 20 ms hic onemli degil ama gudumlu fuze icin onemli : ) Ayrica her zaman uygulamadaki yavaslik programlama dilinden kaynaklanmaz, hatta %99 inin kaynagi IO yavasligidir. ( disk, network vs )
High level dili guzel yapan sey insan diline yakin olmasi ve bu sebeple daha anlasilir olmasi. Ayrica abstraction cok kolay yapildigindan 2 satir ile yazdigin seyi low level ile 200 satirda yazamazsin. Assembly de hello world kac satir merak eden bakabilir.
Tum sistemler sahiplerine gore "onemli" , o zaman her seyi C ile Rust ile Go ile neden yazmiyoruz sorusunun cevabi da iste yukarida gizli. O kadar ugrasmaya degecek mi, zaman = para cunku. Python ile 3-4 gunde cok fazla yol alirsin. Okumasi kolay, maintain etmesi kolay. C kodu spagettiye donmeye cok daha yatkin eger duzgun maintain edilmezse.
High level diller farkli interpretorler ya da VM ler ile geldigi icin her sistemde calisiyorlar. Spesifik sistemin spesifik islemci modeline gore farkli farkli interpretorler yaziliyor ve boylece calisiyor kod. Windows uzerinde calisan JVM ile, Android uzerinde calisan JVM ya da Linux Fedora uzerinde calisan JVM farkli. 32 bit CPU ya sahip Windows uzerinde calisan JVM ile 64 bit CPU ya sahip Windows uzerinde calisan JVM farkli. Bir nevi her dil icin farkli tercuman kullaniliyor ki ayni Java kodu her sistemde calissin diye. Python icin de ayni sekilde. Eh, sen aradaki tercuman katmanini ortadan kaldirma niyetindeysen, yazdigin kodu hedefledigin sistemin makine koduna kendin cevireceksin. O sebeple hedef sisteme yonelik compiler ve assembler bulup kullanirsin. Yazdigin kod sadece ve sadece o sistemde calisir ama cok optimize calisir. Trade off bunlar hep.