Ci sono diverse domande e incomprensioni nella tua domanda. Affrontiamoli uno per uno:
Why do we call Java open source
Non ne ho idea. Java è un linguaggio di programmazione. Un linguaggio di programmazione è un insieme di regole matematiche astratte e restrizioni. Non ha senso applicare le idee di "open source" a una lingua, perché non esiste una "fonte".
È avrebbe avrebbe senso chiamare una lingua "open source" se la specifica della lingua potesse essere liberamente biforcuta e modificata. Ma questo è semplicemente non sensato. L'intero point di uno standard di infrastruttura (e, sì, una lingua è sia infrastruttura che uno standard) è che puoi fare affidamento su di esso non cambiando.
Open source software should be developed by different contributors in decentralized fashion.
Questo non fa parte di ciò che significa essere "open source". L'open source è puramente sui termini di licenza del software. Nient'altro. OpenJDK è concesso in licenza sotto licenza GPL, e ci sono anche altre implementazioni Java, alcune delle quali forchette o derivati di OpenJDK, alcuni sviluppi indipendenti delle camere bianche rilasciati con una licenza open source. Chiaramente, esistono implementazioni di Java che sono open-source (sebbene le restrizioni di licenza sul marchio " Java") possano rendere impossibile per alcune di queste implementazioni Java chiamarsi "Java").
Chiamo ciò che stai descrivendo un "progetto aperto", il che significa che non solo il software è rilasciato sotto una licenza open source, ma anche il progetto è sviluppato in modo aperto, cioè i bug report possono essere archiviati da chiunque e sono resi disponibili al pubblico, le discussioni sul design sono tenute allo scoperto e con un modo per il pubblico di partecipare, i contributi sono benvenuti e così via. Questo, tuttavia, non fa parte della definizione di open source.
Qualcosa su cui riflettere: esiste uno standard ISO che copre alcune parti fondamentali di .NET e C♯. Esistono diverse implementazioni open-source di .NET (Mono, CoreCLR) e C♯ (Mono, Roslyn). Le discussioni sul design sono tenute allo scoperto, nei problemi di GitHub. I bug sono tracciati apertamente e pubblicamente su GitHub. In realtà, questo è praticamente esattamente come Java, ancora di più, perché la specifica del linguaggio Java è di proprietà di Oracle, mentre c'è almeno un sottoinsieme di C♯ specificato come standard ISO. Tuttavia, C♯ è tipicamente caratterizzato come closed-source mentre Java è tipicamente caratterizzato come open-source. IMO, questo ha molto più a che fare con l'immagine di Sun e Microsoft nei primi anni '90 rispetto a fatti reali.