Una cosa mi è venuta in mente l'altro giorno, sono ancora necessari tipi specifici o un'eredità che ci trattiene. Quello che voglio dire è: abbiamo davvero bisogno di brevi, int, lunghi, bigint ecc ecc.
Capisco il ragionamento, le variabili / oggetti sono tenuti in memoria, la memoria deve essere allocata e quindi abbiamo bisogno di sapere quanto può essere grande una variabile. Ma in realtà, non dovrebbe un linguaggio di programmazione moderno essere in grado di gestire "tipi adattivi", cioè, se qualcosa viene sempre assegnato solo nell'intervallo corto usa meno byte e se a qualcosa viene assegnato improvvisamente un numero molto grande viene assegnata la memoria accordinly per quell'istanza particolare.
Float, real e double sono un po 'più complicati in quanto il tipo dipende dalla precisione di cui hai bisogno. Le stringhe dovrebbero tuttavia essere in grado di prendere una memoria inferiore in molti casi (in .Net) dove per lo più si usa ASCII, ma le stringhe di sempre prendono il doppio della memoria a causa della codifica Unicode.
Un argomento per tipi specifici potrebbe essere che fa parte della specifica, per esempio una variabile non dovrebbe essere in grado di essere più grande di un certo valore, quindi lo impostiamo in shortint. Ma perché non avere vincoli di tipo, invece? Sarebbe molto più flessibile e potente essere in grado di impostare intervalli e valori consentiti su variabili (e proprietà).
Mi rendo conto dell'immenso problema nel rinnovare l'architettura dei tipi poiché è così strettamente integrato con l'hardware sottostante e cose come la serializzazione potrebbero diventare davvero complicate. Ma dal punto di vista della programmazione dovrebbe essere bello no?