Temel olarak haklısın. Ruby'nin C dilinde yazılmış olduğu söylenirse, dil yorumlayıcısı ve çekirdek kütüphanesinin bazı kısımları C dilinde yazılmıştır.
Bu yüzden Ruby tercümanı bir metin dosyasını girdi olarak alan, onu işleyen ve daha sonra başka bir metin dosyasındaki (Ruby'de yazılmışsa) ya da C kodunu derleyen, gereken temel fonksiyonelliğin fonksiyonlarını çağıran bir C programıdır. Bellek, dosya sistemi ve daha fazlası gibi sistem kaynaklarına doğrudan erişmek için. Ve çok yüksek performans gerektiren bazı fonksiyonlar.
Yani bir dilin başka dillerde yazılmış veya yazılması gereken farklı bölümleri var. Hiçbir şey, C'yi tercümanı, C ++ 'da ise kütüphaneleri yazmaktan alıkoyamaz. Birden fazla adıma bile sahip olabilir ve daha sonra bazı C kodlarıyla işlenen bazı ara verileri üretmek için metin işlemede çok iyi bir dil kullanabilirsiniz.
Karar faktörleri, diğer karmaşık uygulamalardakilerle aynı olabilir. Performans birdir. Doğrudan sistem kaynaklarına doğrudan erişebilen bir kod yazabilme. Bu yüzden çoğu durumda derlenmiş bir dil olmalıdır (teoride Python'da bir Ruby tercüman yazabilseniz de). Dilinizin Linux, Win, OS X ve diğerleri üzerinde çalışmasını istiyorsanız, farklı sistemlerde kullanılabilirlik önemlidir.