DIP 45 - approval discussion

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Nov 12 14:45:14 PST 2013


On 11/12/13 2:36 PM, Timon Gehr wrote:
> On 11/12/2013 06:46 AM, Andrei Alexandrescu wrote:
>> On 11/11/13 2:36 PM, Timon Gehr wrote:
>>> On 11/11/2013 11:02 PM, deadalnix wrote:
>>>> On Sunday, 10 November 2013 at 12:39:35 UTC, Timon Gehr wrote:
>>>>> What about Object.factory?
>>>>
>>>> I always though of it as a misfeature.
>>>
>>> Me too.
>>
>> ... well time to substantiate.
>>
>> Andrei
>
> - Every class in any imported module will need to show up in the
> generated code even if it is never used unless global static analysis is
> carried out on arguments to Object.factory.

Correct. On the other hand, a lot of unused classes in used modules 
seems to indicate a problem with the system's design.

> - If I know the fully qualified name of a class, there are better ways
> to instantiate this class than passing a string containing that name to
> Object.factory in order to call the default constructor.

What are the better ways? Note that most of the time you don't "know" 
the name of a class - you get it down the wire during some 
deserialization. So there must be some way to build an object from a 
token representation of the object.

> - The functionality provided by Object.factory is trivially replaced by
> a solution more specifically tailored to the problem at hand using
> compile-time reflection.

It's not quite trivial - somewhere there has to be a map and 
registration and lookup and whatnot. I don't see it why it's unbecoming 
for such functionality to be part of the standard library. I would 
agree, however, that it's a judgment call whether it should be wired in 
or provided on demand.


Andrei



More information about the Digitalmars-d mailing list