The Next Big Language
Jonathan M Davis
jmdavisProg at gmx.com
Tue Oct 19 13:20:04 PDT 2010
On Tuesday 19 October 2010 12:53:41 Andrei Alexandrescu wrote:
> On 10/19/10 14:04 CDT, Max Samukha wrote:
> > On 10/19/2010 09:06 PM, Walter Bright wrote:
> >> bearophile wrote:
> >>> The point I was trying to express is that from what I have seen people
> >>> are
> >>> able to learn to program Python (this means quite more than just the
> >>> syntax)
> >>> in *much* less time it takes to learn C++/D. And this has precise
> >>> causes.
> >>
> >> Time will tell how long it will take people to become idiomatically
> >> proficient in D. But also consider that Andrei's book "Modern C++
> >> Design" completely changed the idiomatic way people wrote C++ programs.
> >> A 1990's state of the art C++ program is very different from a 2010 one.
> >>
> >> We've only just begun figuring out the right way to write D programs.
> >
> > That is funny. Now and then you and Andrei talk so confidently about Go,
> > C#, Haskell and other D competitors, without having written more than a
> > couple of lines in those languages. At the same time, you are claiming
> > that it takes years to even start to learn a programming language. Sure,
> > it is not problems with D that make it difficult to use. We simply don't
> > know how to program in D yet, after several years of doing just that.
>
> I agree this seems to be a contradiction. Haskell is a fairly mature
> language building on a staunch pure functional base so many of its
> idioms have been established. C# uses rather conservative features so
> it's not difficult to learn from the perspective of the languages that
> influence it. Go is a small language that has one defining feature (the
> implicit signature conformance) that does add a certain flavor but is
> understood and has been experimented with in other languages.
>
> D has added a lot in the direction of generics, and by their nature
> generics interact heavily with the rest of the language. I agree it is
> taking time to get to best use of such, but it's not wasted time because
> it marks real progress. For example, code using the relatively new
> template constraints is better than code that didn't use them.
>
> > With all due respect for Andrei, I doubt that it is his book that
> > completely changed the way people wrote C++ programs. It was
> > influential, right, but it was really not a single factor. And some of
> > ideas presented in that book are avoided by reasonable programmers.
> >
> > Please stop so shamelessly advertising each other. Thanks!
>
> Sorry. Do I advertise Walter that frequently?
Both of you do periodically say something about what the other has done in the
past, but I don't get the impression that you're ever explicitly trying to make
the other person look good or "advertise" them. Others may see it differently
though.
And while in many ways, Modern C++ was a game-changer, I've never worked with
anyone who really uses the stuff it talks about. In my experience with C++ code
in production code, templates get used when they're necessary but that they're
generally avoided. Of course, given how bad some of the code I've seen is, I
definitely don't _want_ a lot of the people who wrote it messing around with
heavily-templated code, but regardless, as major as the ideas in Modern C++ are,
I think that there are a lot of C++ programmers out who never use them. They're
just too complicated for a lot of people. Hopefully D manages to make such
metaprogramming sane enough that your average D programmer won't freak out about
template metaprogramming in the way many C++ programmers do.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list