iterators again
Sean Kelly
sean at f4.ca
Wed May 30 11:19:53 PDT 2007
David B. Held wrote:
>
> The main problem is that a lot of people make *abstract* arguments about
> the pros and cons of various features or lack thereof (with, perhaps a
> code snippet to illustrate the point). That is what rarely gets any
> mileage. On the other hand, when people build actual libraries and say:
> "Look, I spent a bunch of time building this awesome library, and I can
> tell you from first-hand experience that feature Y would really make my
> life easier", Walter looks at the library and goes "Eh" or "Man, that's
> a cool library, I really want to polish it up by providing features that
> will make it even better". And I can tell you from direct observation
> that not only does this happen, but Andrei is not the majority
> beneficiary of such feature determinations.
Personally, when writing libraries if I discover that feature X would
really simplify things then I'll post an abstract argument on the topic.
I think this is generally a better way to do things because it
separates the discussion from any particular use case and allows the
feature to be evaluated on its own terms. That said, those posts have
often gone completely unanswered so perhaps I'm going about it the wrong
way.
> What Andrei brings to the table, which might surprise you, is a solid
> practicality about features. While D users typically ask for features
> that require significant amounts of work, Andrei first argues for
> features that would improve language consistency, which is building a
> better foundation for the future than just trying to get everything you
> want right away. Another important point to make is that the so-called
> "Inner Circle" is often as concerned as the D community as a whole about
> many important features like reflection, macros, etc. (and remember that
> Walter is a part of the "Inner Circle").
I think you'll find that many of the requests here in the past have
actually been for consistency rather than fancy new features. That's
why, in my mind, Andrei's involvement was seen as such a good thing by
many of us. By and large, he echoed the sentiments the community as a
whole, with macro features as a possible notable exception.
> This is what the community sees: "I want feature X, because it's cool!"
> This is what Walter sees: "That feature will take 40 hours of
> bickering, arguing and fist-fighting to get just a few people to agree
> on how it should be implemented and what it should mean in every
> possible context in which it could appear." The fact of the matter is,
> most of the time is *not* spent picking and choosing features like the
> Illuminati deciding the fate of the world. It is more like construction
> workers building a railroad. Everyone points to the map and says where
> they want the railroad to go and says how glorious it would be if it got
> there, but only a few people are picking up hammers and blasting
> mountains and building bridges and doing the not-very-glamaorous work of
> just putting another mile on the track.
I've suggested that a mailing list for focused discussions might be
useful, but it's still a poor alternative to talking to someone
physically. Still, I think many of us recognize that a newsgroup is far
too large a forum for productive discussion.
> So when people bicker about not being in the "Inner Circle", I find it
> fairly amusing, because if they only knew what a bunch of drudge work it
> is, they would be much more grateful when a new feature magically pops
> out of the next version of dmd. Anyone who wants to be a part of the
> "Inner Circle" effectively can be by A) writing a compelling library to
> motivate the need for certain features, or B) writing a compelling
> feature proposal with enough detail to actually implement it. If you're
> wondering how much detail that is, browse the C++ proposals, and
> consider that probably 80% of them are not detailed enough to be fully
> useful to a compiler writer.
I think this issue comes up because there has sometimes been very little
communication about what is being developed. I know that I have simply
avoided developing certain libraries in the past because a proper
implementation would have required feature X (usually some template
thing that we now have), and I had no interest in writing temporary
workarounds that may become permanent or may be obsolete a week after
they were written. I don't think that means we (or I) always want to
help hash out the minutiae of how a feature is implemented however (I'm
busy enough as it is, frankly).
That said, Walter has gotten a lot better about announcing or discussing
new features here beforehand. For the most part, we now have some
warning about what is being developed and roughly how it will look. And
in most cases, that's enough to focus library development.
Sean
More information about the Digitalmars-d
mailing list