Une chose qui m'est venue à l'esprit l'autre jour, ce sont des types spécifiques encore nécessaires ou un héritage qui nous retient. Ce que je veux dire, c'est: avons-nous vraiment besoin de court, int, long, bigint, etc., etc.
Je comprends le raisonnement, les variables / objets sont conservés en mémoire, la mémoire doit être allouée et donc nous devons savoir quelle taille peut avoir une variable. Mais vraiment, un langage de programmation moderne ne devrait-il pas être capable de gérer des "types adaptatifs", c'est-à-dire que si quelque chose n'est alloué que dans la plage courte, il utilise moins d'octets et si quelque chose est soudainement alloué à un très grand nombre, la mémoire est allouée conformément à ce cas particulier.
Float, real et double's sont un peu plus délicats car le type dépend de la précision dont vous avez besoin. Les chaînes devraient cependant être en mesure de prendre upp moins de mémoire dans de nombreux cas (en .Net) où la plupart du temps ascii est utilisé, mais les chaînes buth occupent toujours le double de la mémoire en raison du codage Unicode.
Un argument pour des types spécifiques pourrait être qu'il fait partie de la spécification, c'est-à-dire par exemple qu'une variable ne devrait pas pouvoir être plus grande qu'une certaine valeur, nous la définissons donc en shortint. Mais pourquoi ne pas avoir à la place des contraintes de type? Il serait beaucoup plus flexible et puissant de pouvoir définir des plages et des valeurs autorisées sur des variables (et des propriétés).
Je me rends compte de l'immense problème de refonte de l'architecture de type car elle est si étroitement intégrée au matériel sous-jacent et des choses comme la sérialisation pourraient devenir délicates. Mais du point de vue de la programmation, ça devrait être super non?
type hour is range 0 .. 23;