Sì, anche i romani hanno avuto problemi con lo zero.
Questo è
solo
un [non intuitivo] conseguenza della matematica (essendo una forte componente di programmazione, soprattutto nelle prime fasi di programmazione) definente zero come prima (termine problematico quella) reale,
positivo
* numero naturale, e dal momento che un array è indicizzato con numeri reali, naturali il "primo" elemento è all'indice 0.
I mesi sono valori realmente denominati in un array, dove i giorni e gli anni sono valori numerati - sarebbe forse più utile pensare di giorni/anni come in array che sembrano {"1", "2", "3", ...} loro stessi.
Per quanto riguarda il motivo per cui questo è così comune (oltre ad essere matematicamente corretto) e tutte le lingue che hai elencato discendono da un'origine comune per una cosa ...
Edit:
Guardando ancora più in esso, questo collegamento wikipedia descrive diversi motivi validi e interessanti per l'indicizzazione zero (che non parla direttamente al motivo per cui i mesi sono indicizzati a zero ma penso che sia già coperto) e questo collegamento SO ha risposto alla domanda precedente.
Sembra che l'opinione prevalente sia "incidente storico" o "perché i mesi non sono numeri quindi non possono essere confrontati con l'archiviazione giorno/anno" a seconda di chi chiedi.
* Scusa, scusa, fisica! = La matematica torna a mordermi. Via a stirare le mie mani ora.
Le matrici, iniziano da 0 e le persone si riferiscono ai giorni in base ai numeri? – glasnt
@TomatoSandwich: molto spesso le persone si riferiscono a _months_ per numero e le numerano a partire da _1_. I programmatori API –
non sono a proposito; a volte gli errori entrano nelle implementazioni; solo affrontarlo. Non che questo sia esattamente un caso (non si dice nemmeno in che lingua), ma non aspettarsi che tutto sia perfetto. Ammiro di voler sapere la ragione però. –