3 ms·
It's not just new languages, it's new algorithms, most problems aren't trivially parallel. The problems that are trivially parallel are well suited to be solve
by fleitz 15y ago
It's not just new languages, it's new algorithms, most problems aren't trivially parallel.
The problems that are trivially parallel are well suited to be solved by functional/reactive programming via languages like Haskell, Erlang, Scala, F# and Ocaml.
- dons 15y ago"Functional/reactive" has a very specific meaning, unrelated to parallelism.
- fleitz 15y agoI'm aware of the differences but writing your code in a functional / reactive style makes parallelism much easier. List.map can be safely parallelized in a functional language where as it cannot in an imperative language. That's what I'm getting at. In a functional language (lets say haskell) you could switch the implementation of map to a parallel one and the community would probably accept it because there are a few edge cases involving doing something with a monad where it would break but 99% of code would work. If you did the same thing in Java/C/C++/C#/Python/Ruby it would break massive amounts of code. In theory they have absolutely nothing to do with each other, but in practice they have a lot to do with each other.
- njs12345 15y agoThe edge cases would involve unsafePerformIO - you can't use map with functions in a monad, that's what you have mapM for :)