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.

Reply via email to