3 ms·
At the time, there was a widespread assumption that massively parallel computing was the future and thus that any serious language had to try and integrate conc
by mike_hearn 4y ago
At the time, there was a widespread assumption that massively parallel computing was the future and thus that any serious language had to try and integrate concurrency as a core feature.
It wasn't just Java. For many years THE argument for functional languages was you'd better learn them because these languages will soon be automatically parallelized, and that's the only way you'll be able to master machines with thousands of cores.
With hindsight we know it didn't work out like that. We got multi-core CPUs but not that many cores. Most code is still single threaded. We got SIMD but very little code uses it. We got GPUs with many cores, but they are programmed with imperative fairly boring C-like languages that don't use locking or message passing or anything else, they're data parallel pure functions.
But at the time, people didn't know that. You can see how in that environment of uncertainty "everything will be massively multi-threaded so let's give everything a lock" might have made sense
- paulddraper 4y ago> We got SIMD but very little code uses it. Because programming for SIMD is wildly different than MIMD. (And MIMD is what `synchronized` is for.) The theory was that there would be more machines like AMD Thread Ripper.