From my reddit post:
There are very few statically type-inferred programming languages that can be ported with multiple compilers like gcc and llvm. I just came across this presentation:
http://chapel.cray.com/presentations/ChapelForSeattleU.pdf
I found this on page 32:
compile-time features for meta-programming
And yes, like Nim's type system and 'const's, this blows Haskell and Rust out of the water in many ways, not to mention OO is optional. I was going to use Nim to port OpenVDB, but Chapel's complexity is not from its type system and syntactic sugar but from unifying all of the major parallel computing paradigms in high-performance computing today.
And the array slices and iterators look amazing.
A much more informative answer:
Chapel doesn’t currently use traditional garbage collection (e.g. generational mark/sweep). The Chapel implementation does use reference counting in some situations - in particular for arrays and domains. Even reference counting has a negative performance impact. We’re investigating how we might be able to remove the reference counting, relying instead on lexical scoping to determine the lifetime of these objects (historically, Chapel permitted variables to outlive their lexical scopes when asynchronous tasks were still referring to them -- we're backing away from that philosophy now for various reasons). In Chapel today, programmers must manually manage the memory for user-defined classes. With ‘new’ and ‘delete’ actually. I can see productivity benefits to not having to write ‘delete’, but I’m concerned that distributed garbage collection might slow everything down. And I know it is a significant implementation challenge. Personally, I think that Rust has demonstrated a cool way to manage memory without requiring either ‘delete’ or traditional garbage collection. I hope we can learn from that approach.
I just took a quick look at Chapel and it's very interesting, but not quite yet in a state where I'd pick it instead of Nim for a project. Hopefully, by the time Nim 2 is out, there will be more experience with Chapel (and Julia!) so that future Nim can steal good ideas.
One interesting bit of research I saw associated with Chapel that may be interesting for Nim is this
http://arxiv.org/abs/1201.0023
which is about mixing first class functions and stack allocation, allowing an efficient downward funarg 'semi functional' style.