3 ms·
It's about both. Thinking about scaling on multicore systems doesn't replace thinking about low-level in-core performance details. It's something that an expe
by stephencanon 15y ago
It's about both. Thinking about scaling on multicore systems doesn't replace thinking about low-level in-core performance details. It's something that an expert needs to be able to handle as well as everything that they already needed to know before multi-core systems became common.
- jbooth 15y agoSure, I recently wrote a program in C to process a lot of data and consciously made the decision not to go multicore because I figured extra cache misses and mutexing/spinlocking while data was passed across queues wouldn't justify the additional CPU cycles I was getting for that particular problem. I'm primarily a Java guy but am capable of switching to C, writing decent code there, and making decisions like that. Someone who refuses to use Java because it's too "corporate" might be a better C programmer than me but they're not a better programmer. Take a look at the code in java.util.concurrent sometime, specifically the inner Sync classes. If that's insufficiently "hardcore" for you, I don't know what to say.
- nupark2 15y agoLeveraging Java doesn't somehow make it impossible for someone to think about "low-level in-core performance details".
- stephencanon 15y agoNo one has suggested that it does (at least, no one in this thread). Look, I get that there are people who really like Java, and that you've had to defend it for years against (often bogus) claims that it can't be used for x and y. I am not making any claims of the sort. Here is what I claim, put absolutely precisely so we can stop this nonsense: The intersection of the following sets 1. engineers who I know 2. engineers who think deeply about performance 3. engineers who choose to write Java is empty. That's it. I haven't claimed that writing Java makes you uncool. I haven't claimed that it's impossible to do anything in Java. I haven't claimed that Java is unsuitable for any task. It's entirely possible that I simply don't know the right people, and that even though the intersection of the first two sets is large, it's not large enough. I certainly don't know everyone.