DMD 0.174
November 15th, 2006 | by Aldacron |I’ve seen people gripe on the NG before that, when it comes to D features, Walter listens to C++ gurus who don’t use D (such as Andrei Alexandrescu) while ignoring those who currently use it. Anyone who has been around D for a while knows that such criticisms are unwarranted, as Walter has shown again with the newly released DMD 0.174. People have been complaining about the ambiguousness of the auto keyword, i.e. it’s use for both RAII and type inference, for some time now. In the new release, Walter has addressed those complaints by implementing a suggestion from the NG: the scope keyword can now be used for RAII.
Walter does listen, but he’s not going to implement every little suggested feature or change things that work just because a number of users aren’t happy with them. It may take time to convince him of some things, but when he sees sense in a suggestion he will implement it. To me, Walter’s measured flexibility is one of the strengths of D. Any good software product can be ruined if the developer(s) implements every user request that comes along and can be equally ruined by ignoring users entirely. But there is a middle ground where compromises can be made that result in an overall better product. D’s evolution has been guided with a firm hand by Walter, but would not be what it is without user input.
Several other enhancements, some user-requested, were added in this release along with a handful of deprecations and a peck of bug fixes. Thanks, Walter!
Technorati Tags: D Programming Language, DMD, Digital Mars, Walter Bright
By Uzair on Nov 15, 2006
You’re right about feature creep resulting from the owner/lead developer not picking carefully which ideas and requests should be implemented, but that isn’t the complain larsivi and others have made. No, the complaints are:
a) what you mention at the very top of your post — that Walter seems to be actively requesting input/feedback from people who aren’t even using the language
b) that there isn’t a structured and deliberate process for discussing things before they are included or ruled out. Or worse, half-heartedly implemented.
By Aldacron on Nov 15, 2006
Right, I can understand both points. But my take is this:
a) It doesn’t matter who Walter gets his ideas from. Ultimately, he is the one who decides what goes in and what doesn’t. The D community has had a great deal of influence in the development of D. The fact that Walter is also discussing feature ideas with other intelligent people who don’t happen to use D is not a bad thing. He isn’t consulting them exclusively, after all. It’s a far sight better than sitting in a room by himself brainstorming what to put in next. The goal is to create a solid, appealing programming language. Anything that gets him toward that goal should be welcome.
b) There doesn’t need to be a structured system right now. D is Walter’s language and it’s for him to develop as he sees fit. The discussions we do have, informal and sometimes chaotic as they are, sometimes do lead to new directions for D. The reality is that he doesn’t have to listen to a word we say. Many people might not stick around if that were the case, but he really doesn’t owe anyone anything. He’s creating a language for us to use and we can take it or leave it. I quite like the informal process. D progresses much more quickly than languages with committees debating features at length. And I really think that putting features up for community discussion/approval before implementing them would slow things down and be counter-productive. There may come a time when D needs that, but for now it’s small enough to be a one-man show and that’s just fine.
I mean really, what is wrong with the current system? Walter implements the features he thinks D should have, the users debate the finer points of each feature, complain when they don’t like it, cheer when they do, and sometimes they convince him to change things. That’s software evolution. It’s much more practical, in my mind, to debate features that you can put to the test right now because they are implemented, rather than to have theoretical debates on features Walter is considering. D is still in a 0.x series after all.
By John Reimer on Nov 15, 2006
Mike, I strongly disagree with your opening statement, and I’ve been around D a fair bit of time. Walter /often/ is guided by C++ gurus in his decisions for D features. Sometimes these features correlate with the requests of the community. Other times they do not. The fact that Walter has been listening, more recently, to suggestions from the community is a actually a step out of character for him, but a most welcome and applauded one. He certainly can’t adopt all suggestions, but that goes without saying, really for any design.
I’m actually surprised that you made that initial statement. MOST people that have been around D long enough have long since recognized Walter’s soft spot for C++ mechanics: it’s what he’s most familiar with from a compiler design perspective. Further, He has oft admitted his predilections here. It’s no secret! I’m sure you realize how /badly/ he wants to attract the C++ community, and how badly he wants to usurp C++ territory by implementing in D the features that keep one step ahead of the C++ standard proposals.
Ha ha… you managed to get me to write more than once now — just the right topics to wake me up.
All the best,
JJR
By Aldacron on Nov 15, 2006
Glad you’re posting, John
But I’m surprised that you’re overlooking Walter’s history of community involvement. One of the things that initially made me stick around and play with D was the openness of the newsgroup. Walter has always been open to suggestion and has, more than once over the nearly four years I’ve been following things, made enhancements or modifications based on feedback. When I’m evangelizing D to other people that’s one of the selling points I bring up — the community can influence the development. Granted, it wasn’t something that happened everyday or overnight. It’s certainly happening more frequently of late, but it’s not something new.
Now, I don’t know how many features were inspired by people like Alexandrescu and other C++ gurus, but I do agree with you that Walter has shown he wants D to appeal to the C++ community. Regardless, I’m just saying that I don’t think it matters an ounce where the features come from. Anything that makes D an even better alternative to existing languages (particularly C++) isn’t a bad thing, no matter the source.
The D community is a fickle group, for the most part, and I’m constantly surprised by the things that get nitpicked. The whole foreach_reverse thing is a good example. In my mind, it’s an excellent feature. But even if I don’t agree with a number of people who don’t like a feature, it’s the nitpicking that is at the heart of D’s evolution. Sometimes it leads to a better solution. And with the diverse backgrounds seen in the current core community, there is bound to be debate on nearly any feature that gets added.
So healthy debate is one thing, and is good for D. But when people complain about where Walter is getting his ideas, that’s not healthy. The focus shifts away from the debate about features and moves into a more emotional realm where people get bruised egos and wounded pride, ultimately doing nothing to advance D. So rather than focusing on where a feature came from, it just seems more appropriate to me to focus on the feature itself. Walter has shown that he is willing to change course when enough people voice their disdain for a feature and agree on a solution that he finds sensible.