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