Large-scale data processing jobs normally arrange themselves into data acquistion&#x2F;cleaning, grunt numerical work and result formatting&#x2F;display. These tasks have very different requirements so a combination of a tool that can do all the data handling easily (ie Python) + a tool that can throw the CPU at a numerical problem (ie C) will work as a great combination.<p>In contrast, if you work in Java, you are trying to use the same tool for both jobs, and you may well fall between 2 stools. And I say that as a typical Java-head.<p>My only question about the 2-tool combination is whether there are better combinations. Python has all the libraries and community support so any alternative would need similar. Maybe Node?<p>As for the number crunching, I think Rust would be a better choice here. Good memory management is its USP and that can have significant performance benefits.