D popularity
Rob T
alanb at ucora.com
Mon Jan 21 15:14:13 PST 2013
On Monday, 21 January 2013 at 21:27:54 UTC, Nick Sabalausky wrote:
> Much the same here, only times I've *ever* felt any need for a
> Variant
> is when interfacing with something that's already variant or
> nearly-variant. Or as a bloated workaround when I'm using a
> language
> with really shitty (or no) template support.
I bet you use variants a lot more than you think.
Often the variants are not noticed, such as when using std.json,
which implements a form of variant type. There are many uses of
"hidden" variants, some are more generalized than others, but
they are still variants.
I think what you are pointing out as being bad, are the
situations where variant types are used for no actual purpose,
where you gain nothing, and loose performance and possibly type
safety depending on the richness of the implementation.
In addition, there are scripted languages that have no means to
check even statically declared types to ensure they are being
used correctly, and the only way to discover errors is during
runtime. I think that's not really a language design issue, it's
more of an implementation issue.
The worse languages of all, are the ones that will automatically
create instances of variables without the programmer having to
explicitly declare them. In those languages, a simple typo can
lead to disaster. The reasoning behind such a design can only be
to purposefully make programming dangerous and error prone just
for laughs. I always do my best to avoid using those kinds of
languages.
So in a general sense, I will argue that what you are complaining
about is not the idea of the variant - it is a very useful
concept - the problems you are pointing out are with poor design
and implementation choices.
--rt
More information about the Digitalmars-d
mailing list