Why don't other programming languages have ranges?
Jonathan M Davis
jmdavisprog at gmail.com
Sat Jul 24 07:56:48 PDT 2010
On Saturday 24 July 2010 06:36:34 Justin Johansson wrote:
> It sounds like the D PL has invented the range idiom unlike any other PL.
>
> Since the dawn of PL's, which must be about 50 years now since Lisp
> for example, it is hard to imagine a new PL inventing a completely
> new idiom as "ranges" seem to purport. Given the many academic
> arguments for ranges as opposed to iterators, why is it that the
> D PL seems to be the major if not only sponsor of the range idiom?
>
> Is D really taking the lead here and is it likely that other PL's
> will eventually take D's lead?
>
> Cheers
> Justin Johansson
Part of it probably comes from how limitedly most languages use iterators. Most
languages only use them for iteration and perhaps to aid in insertion or erasure
from a container. They don't generally pass them around for algorithms and such.
C++ and D are the only ones that I'm aware of which have done so. There are, of
course, problems with using iterators in that fashion. Java's and C#'s solution
was to put it on the list of C++ features that they didn't use and didn't make
them powerful enough to really be used in algorithms. With D, it was decided to
keep that power, and ranges were the solution to the problems with C++
iterators.
Regardless, there are a number of ideas floating out there which never make their
way into a programming language - particularly serious and well-used programming
languages. That doesn't necessarily mean that they're bad ideas, but the
creators of the major programming languages either weren't aware of them, didn't
like them for some reason, or couldn't fit them into their language for one
reason or another. It doesn't help that programming languages aren't really
invented all that often - or at least it's not all that often that new ones come
along which actually become heavily used. Also, most languages which are heavily
used are 10+ years old if not 20+, so many newer ideas came along too late to be
incorporated into most of the major programming languages or their stdandard
libraries and philosophies.
As far as I can tell, ranges have not been a big thing in any way shape or form.
Andrei didn't invent them, but he appears to be the first to put them into major
use - at least in a manner that would get other programmers to use them rather
than them just being used for a particular project or company. So, they don't
appear to be a particularly well-known idea at this point - certainly not a
heavily used one.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list