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