Following this "bad idea" we should agree that smalltalk metaclass system is horrible and class should be just a language artifact 28 июня 2016 г. 11:45 пользователь "Jan Vrany" <jan.vr...@fit.cvut.cz> написал:
> > > On Mon, Jun 27, 2016 at 1:09 PM, Nicolas Passerini <npasser...@gmail.com> > wrote: > > > > On Mon, Jun 27, 2016 at 1:44 PM, Denis Kudriashov <dionisi...@gmail.com> > wrote: > >> >> 2016-06-27 13:28 GMT+02:00 Nicolas Passerini <npasser...@gmail.com>: >> >>> That is not quite true, annotations are (kind of) objects but you can >>> not put behavior in them, just define attributes and optionally default >>> values for those attributes. >> >> >> Ah, you are right. I remember many restrictions was applied to them which >> always forced me to hate Java :) >> > > Yep. > > > Well, there's a reason why they're restricted. Note, that the restriction > is on language level, not at runtime level. A annotation class > with arbitrary code would pass JVM verification (or at least I can't see a > rule that would reject such a class). > > When I implemented annotation support I was initially thinking the same - > let's create an instance of CoolAnnotationClass when the code is accepted > and then one can add arbitrary code to his CoolAnnotationClass. I quickly > realized this is a (very) bad idea. Or, to be precise, it is a bad idea > given the > environment. So I'd be very careful.. > > Jan > > P.S.: As for "which always forced me to hate Java": I found myself a very > enlightening to think carefully about why somebody else > do things differently before I start to hate her/him. Besides, there's > whole lot of things that Java guys got right... > > >