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