It's traditional to evaluate any new language using this (in)famous checklist (it's a joke, but good humor reflects reality). It's almost Plasma's 5th birthday so let's call this an early birthday present and mark the occasion by filling in the checklist. I've answered with:
- X - Check!
- W - Work-in-progress/planned/intended. These would be an "X" if we were pushing people to use Plasma as it is today.
- Y - Plasma has this feature.
- N - Plasma does not have this feature, and it is not planned.
- ? - Unsure if we should have this feature.
There are also footnotes at the bottom.
- 1. I don't remember which is which, covariant or contravariant. We probably need each of them in each circumstance. Hopefully I get it right.
- 2. Uniqueness analysis will be necessary for some features but will always be an approximation. On edge cases this will either lead to unsatisfactory performance or arguments between the programmer and the compiler.
- 3. Depends what you mean by "faster than". Multicore Plasma may well be faster than single-core assembler. It is likely to be faster when you also consider the ease of writing parallel code in Plasma. Note that SISAL was a pure language that rivaled FOTRAN for performance.