Chapel vs D
via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 26 03:52:24 PST 2014
The Chapel quick ref card gives a nice overview of Chapel syntax
and features:
http://chapel.cray.com/spec/quickReference.pdf
Cray has of course geared Chapel towards non-realtime
high-throughput computing, so it is not an alternative to
C/C++/Rust/D for interactive applications. But the syntax is
quite clean and the feature set makes sense.
The Chapel parameter specification has immutable value types as
the default except for arrays, syncs, singles and atomics which
get ref-semantics. Chapel also allows named parameters, and has
an inout-type that copies in and out for safer multi-threading
(avoiding spurious writes from other threads during the
computation).
The typing/casting syntax uses postfix "expression:type" notation
which produces clean looking casts. Mutable declarations are
prefixed with "var". Read only references and immutable values
are prefixed with "const".
Chapel also has yield-based iterators (generators) like Python,
numerical-ranges (and domain maps for array indexing).
I think D needs to consider improving the syntax and the feature
set by looking closely at competing languages. If one can improve
D by taking on conventions from other performance oriented
languages then D will look less weird and moving to D more
attractive.
Chapel's syntax is cleaner looking that D, and Chapel also have
some features that D would benefit from adopting.
I think Rust is loosing some followers on syntax alone, and D
too. Planning for a D3 syntax upgrade with some premature
experiments would be a good idea.
More information about the Digitalmars-d
mailing list