On 7/4/13 12:20 AM, Russel Winder wrote:
On Wed, 2013-07-03 at 22:04 -0700, Andrei Alexandrescu wrote:
Evidence we've done the right thing by emphasizing ranges instead of
opApply.
http://www.reddit.com/r/programming/comments/1hl2qr/rust_07_released/
https://mail.mozilla.org/pipermail/rust-dev/2013-June/004599.html
I am not sure you can make that deduction. The question of internal vs.
external iterators is not black and white.
One might have said I thought so if I wrote e.g. "completely eliminated
opApply in favor of ranges". D is a multi-paradigm language. That being
said, there is value in Occam reduction of the core/preferred
abstractions to be used throughout. D put its bet on ranges (i.e.
external iteration), not opApply (internal iteration).
Native still seems to be in the 1990s OO vs. functional war: internal OR
external. cf. C++, Go, D, Rust, Haskell, OCaml, F#, etc.
I think this characterization is a tad unfair to D. We clearly and
deliberately espouse interoperation of paradigms: the const/immutable
qualifiers bridge mutability with immutability, safe/system/trusted
allow interoperation of system and safe code, opApply complements
ranges. At each step we foster seamless integration of major paradigms,
not forcing a choice between them.
But I get too serious and philosophical. It is perhaps because I have
just finished a two day workshop guiding people to consider these
questions in a very practical way so as to improve their software
development.
Those can be real fun.
Andrei