4 ms·
> You can have your name change as well, or your calendar can change What do you mean by that? Having a type for "country of origin" would mean that the type
by mhaberl 4y ago
> You can have your name change as well, or your calendar can change
What do you mean by that?
Having a type for "country of origin" would mean that the type gives you limits on what values it can hold (any country known to ever exist) so you can not say something like:
Country c = "Foo"
because Foo is not a country.
I can't imagine having a type for a persons name that holds checks anything but perhaps a strings length, certainly not a list of all possible names.
The calendar example I don't get. We already have "date" types in almost all languages so that "works", although it can be used as example of how hard is to implement some types.
-----
So I say:
>> This approach works good in some cases, but not always
And you say:
> Does that mean we stringly type everything?
Come on now. "Not always" does not mean "Never"
- masklinn 4y ago> I can't imagine having a type for a persons name that holds checks anything but perhaps a strings length, certainly not a list of all possible names. As always, that is very domain-specific: there are lots of countries with naming laws, some of which do have lists of legal names.
- blep_ 4y agoLegitimate question: what do they do about immigration into those countries from countries without such laws?
- masklinn 4y agoLikely nothing: usually they’re laws which apply to parents / birth certificates. I guess it’s possible that an immigrant trying to get naturalised would have to adopt a “legal” name for the country, but I’m not aware of any country where that’s a rule, aside from the Zairianisation movement of Mobutu.
- Ygg2 4y ago> What do you mean by that? I assumed the point was old name wasn't tracked and should be. > Having a type for "country of origin" would mean that the type gives you limits on what values it can hold No one said your type has to be completely set in stone and contain every valid value in advance. Have a trusted store of country name and valid until date. So defunct country can't be added.
- mostlylurks 4y agoRestricting the space of possible values is only one of the possible advantages of declaring a dedicated type for something. Even if it is not possible to restrict the space of possible values (e.g. with names, which can't realistically be restricted to any smaller subset than all possible strings), there are other advantages to having a dedicated type, such as preventing the user of the type from putting a value of that type into somewhere it doesn't belong, which is a very realistic scenario in stringly typed codebases, especially where there are similar but different sets of values, all stringly typed.