D is coming to a town near you

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Feb 20 10:57:49 PST 2013


On Wed, Feb 20, 2013 at 07:42:41PM +0100, bearophile wrote:
[...]
> But in my opinion what's more needed now is instead to try to
> complete as much as possible the design and implementation of the
> missing/broken/incomplete parts of the core language (like finishing
> const/immutable design, finishing the implementation of pure,
> redesigning properties, fixing @trusted, doing what's possible with
> shared, doing what's possible to finish the inference of tags like
> pure in templated functions, finishing the design of packages,
> finishing the implementation of the module system, finishing the
> design of operator overloading, and so on. The complete list of
> broken/unfinished parts scares me).
[...]

Yeah, D already has enough features, but their interactions with each
other still haven't been ironed out completely. The C/C++ inherited part
of the language seems stable enough, barring a bug or two here and
there. I've been writing small programs in D that I used to write in
C/C++, and it's quite a pleasant experience.

But once I get into the realm of new features introduced in D, like
generic metaprogramming, functional-style code, non-trivial range APIs,
const-correctness, purity, etc., I just keep running into bugs,
unexpected interactions, conflicting designs, etc.. It can be quite
frustrating at times. No doubt, a lot of stuff *does* work, but bugs /
design issues are also quite frequent, which detracts a lot from one's
experience of D.

Sometimes I wonder if we're over-stretching ourselves with the amount of
clever features in D, as Kernighan once said:

	Debugging is twice as hard as writing the code in the first
	place. Therefore, if you write the code as cleverly as possible,
	you are, by definition, not smart enough to debug it. -- Brian
	W. Kernighan

Maybe D already has enough innovations, and now is the time to revisit
what is already there and polish it up into the refined product that it
should be.


T

-- 
Valentine's Day: an occasion for florists to reach into the wallets of
nominal lovers in dire need of being reminded to profess their
hypothetical love for their long-forgotten.


More information about the Digitalmars-d mailing list