A summary of D's design principles

Jonathan M Davis jmdavisProg at gmx.com
Wed Sep 29 10:27:49 PDT 2010


On Wednesday, September 29, 2010 05:39:25 Sclytrack wrote:
> > nobody gets pissed off and defensive when he compares D unfavorably to
> > Python.
> > 
> > > No matter what I say, I'm always wrong. Even quotes from encyclopedias
> > > or research papers are more wrong when I share them.
> 
> Compile-time custom annotation might be hard to implement. Do we really
> need it? Going from compile-time to runtime might not be obvious too.
> 
> 
> class MarkThis : CustomAnnotation
> {
> 
> }
> 
> class A
> {
>    @MarkThis("test",10)
>    void test()
>    {
>           //MarkThis obj = (MarkThis) getCustomAnnotation( ... ); //at
> runtime //even invoke methods of the annotation.
>    }
> }
> 
> Method test <--linked to-->  annotation MarkThis and parameters ("test",
> 10)

Custom annotations can be very powerful and highly useful. Now, lacking runtime 
reflection, exactly how useful they'd be would differ from languages such as Java 
or C#, but they could still be of great value. Ideally, they are a feature which 
would be in D at some point - and since adding them would likely be purely 
additive rather than having to make breaking changes, they could be added at 
pretty much any point in D's development. However, I do think that D would do a 
lot better to have dmd and Phobos progress quite a bit more before even 
considering adding such a feature.

- Jonathan M Davis


More information about the Digitalmars-d mailing list