Re: Refection vs Code Generation

Wolf Paulus <[email protected]>
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
Fred,
The point you make is well known and widely understood.
XUL attributes are just text and have to be de-serialized into objects.
Swixml is trying to do this with the converter classes.
For your color example please check here:
http://www.swixml.org/apidocs/org/swixml/converters/ColorConverter.html

Wolf

On Mar 30, 2004, at 9:39 AM, Kate Rhodes wrote:

> I agree about extending attributes needing to be more obvious. I think 
> this is mostly a documentation issue although I haven't actually tried 
> it.
>
> The biggest problem with things like new  Color(xxx, xxx, xxx) as an 
> attribute value is that there are just too many possibilities that 
> people would want  and too little time to code them all. I think the 
> best approach is to do the main ones (see below) and just really 
> document how to extend it. Plus get this all the things like this into 
> a plug-in archictecture (old discussion see archives) so that we can 
> all contribute our little bits to the whole.
>
> While Color.WHITE may not work I *think* that WHITE does. I think all 
> the Color.xxx have been implemented.  But, it's been a while since I 
> tried that I just remember it working and not having to specify hex 
> vals.
>
> -Kate
>
>
> [email protected] wrote:
>
>> I've changed the Subject line in this reply to reflect the new topic. 
>>  This was formerly about JPanel graphics.
>> There are certainly cases where the dynamic (runtime) construction of 
>> a GUI using refection, as Swixml currently does, is necessary.  Kate 
>> gave an example, and I'm sure there are plenty of others.
>> One question is whether there are also advantages to generating code, 
>> other than a little execution time saved at runtime, which doesn't 
>> seem to be much of a problem for most users.
>> A serious deficiency of the current reflection approach is that the 
>> values of the attributes are seriously limited.  For example, to 
>> specify the background color of my JPanel, I would like to be able to 
>> used attributes like
>>   background="Color.WHITE"
>>   background="new Color(45, 200, 255)"
>>   background="new Color(0xFFAAAA)"
>> None of these work with Swixml, and it's hard to see how to make some 
>> of them work, or even worse, calls to get system colors.  [By the 
>> way, what Swixml does allow is background="FFAAAA".]  I see this as 
>> one of the serious weaknesses of Swixml as more and more work must be 
>> put into attribute conversions.
>> Simple text substitution could be used to map most attributes of the 
>> form
>>   xxx="yyy"
>> into Java code like
>>   comp.setXxx(yyy);
>> This provides features that Swixml can't.  So the code generation 
>> approach is not simply a subset of the reflection approach - it has 
>> its own strengths.
>> At my early learning stage I haven't used many of Swixml's features, 
>> so perhaps my simple static GUIs haven't given me enuf appreciation 
>> of its reflective capabilities to overcome the constant pain of 
>> attribute value hassles.  At this point I'm leaning toward the 
>> advantages of code generation, but will continue to try out new 
>> features of Swixml in the expectation of finding more goodies.
>> -- Fred
>>
>> Frank Meissner writes:
>>
>>> Hello Fred,
>>> [email protected] wrote:
>>>
>>>> Hi Frank,
>>>>
>>>>> Regarding your offtopic-subject: There is always the tradeoff 
>>>>> between flexibility and performance. The changes you suggest 
>>>>> improve neither. Please do'nt be offended, though...
>>>>
>>>>
>>>> It would certainly seem that removing the XML 
>>>> interpretation/reflection layer should improve performance -- not 
>>>> that I have any complaints about Swixml performance, which I think 
>>>> is quite satisfactory.  Because you don't agree on something that 
>>>> seems obvous, we're probably working with different assumptions.  
>>>> Maybe I'll find some time in the future to create an example of 
>>>> what I mean.
>>>
>>>
>>> Oops, I did not make myself clear here. Removing the 
>>> reflection/interpreation part *would* improve performance, agreed.
>>> I meant the changes you originally suggested. BTW: I thought about 
>>> removing some reflection code myself (replacing it with generated 
>>> code), leaving reflection as "last resort" ;)
>>>
>>>> And I'm certainly not offended by disagreements with constructive 
>>>> intent -- hope you feel similarly.
>>>
>>>
>>> Glad to hear :)
>>> Frank
>>>
>>>> -- Fred
>>>> _______________________________________________
>>>> Forum mailing list
>>>> [email protected]
>>>> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>>>
>>>
>>>
>>> _______________________________________________
>>> Forum mailing list
>>> [email protected]
>>> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>>
>>
>>
>>
>> _______________________________________________
>> Forum mailing list
>> [email protected]
>> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>>
>>
>
>
> _______________________________________________
> Forum mailing list
> [email protected]
> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.