D and the world
David B. Held
dheld at codelogicconsulting.com
Mon Apr 23 02:28:56 PDT 2007
janderson wrote:
> Its about time for another round of how D can conquer the world.
>
> The way I see it D has 2 options, provide an easy way for C++ users to
> switch over or become D.net. The problem is, it is extremely
> impracticable to switch over to D because:
>
> 1) Everything is already in C++. It would take months to switch over.
> Time that no one has.
> 2) Many API's are in C++. Porting is too dam time consuming. There are
> so many API's that companies use, it is impossible to have them all ported.
> 3) Learning. People are resistant to learning new things. I think this
> hurdle is easiest to jump if the other 2 are in place.
> [...]
I think D has a bigger threat from Scala than C#. Whereas C# is just
another Java, Scala is actually Java + FP, and a lot of people are
starting to take notice. I don't see the future as being "more Java",
even though that's where the industry is heading right now. I think
that people are starting to realize that software reuse is an actual
possibility, despite the failed promises of the OOP revolution; but that
reuse really needs full genericity to be implemented usefully (and no, I
don't mean Java-style genericity).
C# aims to be an industrial language, which is fine for managers that
want something so simple their trench coders couldn't possibly screw it
up. Scala aims to be an academic language, which is fine for theorists
trying to show that it is possible to make an FP language as useful as
Java. D, I think, aims somewhere in the middle, giving users the nuts
and bolts and simplicity of a good industrial language (especially ones
which many of them are already familiar with), while also providing some
pretty nasty high-level academic tricks that library authors can take
advantage of.
However, D is just now getting these high-level features, so I think it
will take some time for them to manifest and demonstrate their utility.
It seems that a lot of these features are starting to become
mainstream, so I think D is well-positioned to take advantage of this
trend. For people to appreciate the power of a new language, there
needs to be programmers who understand what it can do well enough to
illustrate that power. I think the academic concepts that were mostly
relegated to FP langs now have enough users that at least the high-end
library writers are demanding these features in languages, making it
possible for advanced languages to enjoy a more mainstream audience.
I think what even FP langs have not explored to a compelling level of
detail is metaprogramming. I get the impression that most FP
programmers feel that higher-order functions are good enough, and even
Lisp "just has macros". But I think D will show that while macros are
powerful, they are not a replacement for templates and do not cover the
full space of metaprogramming. Yes, it is possible to do non-macro
metaprogramming in Lisp, but being a dynamically checked language, this
isn't nearly as interesting as it is in D.
On some level, I agree that "It's the Library, Stupid!" (to paraphrase a
former President). However, I disagree that it's *just* the library...I
think it is how the library is constructed. I think the next revolution
in software engineering will be highly configurable and extensible
libraries, which will tend to obsolete the large collections of
redundant libraries we have today. Because designing a highly
configurable library is fundamentally different from designing a
concrete library, I don't think there is much to be gained by simply
making every C++ or C or X library available in D. I think the true
power of D will be manifested when plain ol' libraries with canonical
implementations get redesigned as generic libraries which are both fast
and powerful.
I think projects like Tango and TioPort are good, because these
foundational services are necessary for bootstrapping. And I don't
think copying the STL to make the DTL was the right way to go. D offers
metaprogramming facilities far and above what C++ allows. The true
power of D will become apparent when DTL is resurrected with the full
power of D's metaprogramming system brought to bear.
Anyway, that's just my 2c.
Dave
More information about the Digitalmars-d
mailing list