Elbette tüm problemler için durum bu şekilde değil. Örneğin iki list içerisindeki sayıların toplanmasını ele alan bir problemde;
bazı C++ çözümlerinin Java çözümlerinden daha iyi iken, bazılarının daha kötü olduğunu görebiliyoruz. Yani çok daha fazla bir standart sapmaya sahip C++ çözümleri.
Başka problemlere ait çözümleri incelediğinizde benzer durumlarla karşılaşırken, bazılarında C++ üstünlüğünü görmeniz de oldukça mümkün. Esas olarak kafamı karıştıran ise “Native bir dilin, nasıl Managed bir dilden daha yavaş olabileceği” sorusu idi.
Bunun üzerine biraz düşündükten ve araştırdıktan sonra, sorunun yazılımı geliştirenlerden kaynaklandığına ikna olmaya başladım. C, C++ gibi dillerde teorik olarak çok daha performanslı yazılım geliştirmeniz mümkünken, gerçek hayatta maalesef böyle olamıyor. Zira, nerdeyse hiçbir zaman HashMap kadar optimize bir veri yapısı kodlayamıyoruz. Ya da aslında tahmin ettiğimiz kadar iyi yönetemiyoruz memory’yi. Kısacası, eğer yaptığımızdan gerçekten emin değilsek proven teknolojilere güvenmek daha doğru bir çözüm olacak gibi görünüyor.
Bu nedenle karşımıza çıkan herhangi bir business case’i, “Bu sorun .Net veya Java ile çözülemez” demeden önce bahsedilen fenomeni göz önüne almamız oldukça mantıklı olabilir!
Umarım, ileride üniversitelerde bu konulara değinen ve bilimsel analizlerle öğrencilerine aktaran öğretim üyelerinin sayısı artar.
Kod örnekleri için “Gist Repository”