What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

C# nacque nel progetto .NET di Microsoft, in un’epoca in cui Java aveva reso familiare l’idea di un linguaggio moderno gestito e portabile. Microsoft lo presentò come un’alternativa praticabile a Java su Windows; la storia, però, non è quella di una semplice copia. C# fu progettato per l’iniziativa .NET e poi si sviluppò attraverso standardizzazione e nuove funzionalità fino a diventare un linguaggio con una propria traiettoria.

Perché Microsoft sviluppò C#

Alla fine degli anni Novanta e all’inizio dei Duemila, Microsoft stava costruendo .NET, un’iniziativa che comprendeva un ambiente di esecuzione, librerie e strumenti per lo sviluppo di applicazioni. Serviva un linguaggio moderno che si integrasse con quell’ecosistema. Java era un riferimento importante perché aveva reso noto il modello di un linguaggio gestito e utilizzabile su più piattaforme, ma C# nacque nel contesto strategico e tecnico di .NET, non come progetto separato il cui unico scopo fosse replicare Java.

La cronologia ufficiale Microsoft descrive C# 1.0 come «a viable alternative to Java on the Windows platform», cioè un’alternativa praticabile a Java sulla piattaforma Windows. La precisazione geografica e tecnica conta: è il posizionamento attribuito da Microsoft al primo rilascio, non la prova che i due linguaggi fossero identici o che C# fosse allora un’alternativa equivalente in ogni ecosistema.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Come è nato C#: annuncio, implementazione e rilascio

Le date spesso riassunte come “l’anno in cui uscì C#” indicano eventi diversi: annuncio pubblico, prima implementazione ampiamente distribuita e disponibilità della versione 1.0 con Visual Studio. La specifica C# e la cronologia Microsoft li distinguono.

Data Evento Che cosa significa
26 giugno 2000 Microsoft annuncia C# come nuovo linguaggio per .NET. È l’annuncio, non il rilascio della versione 1.0. Fonte: Microsoft, annuncio del 2000.
Luglio 2000 La specifica Microsoft colloca la prima implementazione ampiamente distribuita. Non va confusa con l’uscita del prodotto Visual Studio .NET 2002. Fonte: Microsoft, specifica C#.
Settembre 2000 La specifica riferisce la formazione di gruppi ECMA distinti per C# e per la CLI. La standardizzazione del linguaggio e quella dell’infrastruttura di esecuzione seguirono percorsi separati. Fonte: Microsoft, specifica C#.
Gennaio 2002 C# 1.0 arriva con Visual Studio .NET 2002. È il rilascio del prodotto che Microsoft descrive come alternativa praticabile a Java su Windows. Fonte: Microsoft, cronologia di C#.

Chi ha inventato C#?

C# non è il lavoro di un solo autore. La specifica Microsoft indica come principali inventori Anders Hejlsberg, Scott Wiltamuth e Peter Golde. Hejlsberg è spesso il nome più noto associato al linguaggio, ma attribuire l’invenzione a una sola persona semplifica eccessivamente il contributo del gruppo.

C# è una copia di Java?

La risposta più precisa è no: i due linguaggi condividevano un contesto di sviluppo e alcune idee generali, ma C# fu progettato per l’iniziativa .NET e non va descritto come una copia. Nel momento storico del lancio, Microsoft lo presentò come alternativa a Java su Windows; questa formulazione dice qualcosa sul posizionamento competitivo, non dimostra un’identità di design.

Anche la portabilità va letta nel suo contesto. Il fatto che Java fosse associato a un modello portabile non significa che C# 1.0 avesse già la stessa storia di distribuzione tra piattaforme. La documentazione Microsoft colloca il primo C# nel progetto .NET e la descrizione di “alternativa” specifica Windows. Le versioni moderne non vanno proiettate retroattivamente sul 2000: le funzionalità, gli strumenti e gli ambienti disponibili sono cambiati nel corso degli anni.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Il rapporto tra C#, .NET e CLI

C# è il linguaggio di programmazione; .NET è una piattaforma che mette a disposizione runtime, librerie e strumenti. Non sono sinonimi: si può parlare delle regole sintattiche e semantiche di C# senza confonderle con i servizi forniti dalla piattaforma su cui il programma viene eseguito.

La specifica distingue inoltre C# dalla Common Language Infrastructure (CLI), l’infrastruttura che definisce elementi per eseguire programmi e interagire tra linguaggi. C# e CLI furono sottoposti a percorsi di standardizzazione separati. La specifica afferma anche che un’implementazione conforme non deve necessariamente utilizzare l’implementazione Microsoft della CLI, purché rispetti i requisiti dello standard. Perciò il legame storico con .NET è centrale, ma non rende il linguaggio e una singola implementazione del runtime la stessa cosa.

Le tappe che hanno cambiato il linguaggio

Le versioni successive mostrano come C# abbia ampliato il proprio modello di programmazione, andando oltre la funzione iniziale di linguaggio per .NET. La cronologia Microsoft evidenzia alcuni passaggi particolarmente significativi.

  • C# 2.0, 2005: introduce i generics, che consentono di scrivere tipi e metodi parametrizzati.
  • C# 3.0, 2007: porta LINQ, espressioni lambda, alberi di espressione, tipi anonimi e proprietà implementate automaticamente. Queste aggiunte rendono più espressivo il lavoro con dati e funzioni.
  • C# 5.0, 2012: introduce async e await per strutturare il codice asincrono.
  • C# 6.0, 2015: aggiunge funzionalità che riducono il codice ripetitivo; nello stesso periodo Microsoft rilascia Roslyn come compilatore-as-a-service. Microsoft segnala anche che il compilatore C# è scritto in C#.
  • C# 14, novembre 2025: la cronologia Microsoft riporta, tra le novità, extension members e l’assegnazione null-conditional. È la versione più recente indicata nella cronologia consultata, non una previsione su rilasci successivi.

Questi passaggi aiutano a capire perché la storia di C# non si esaurisce nel confronto con Java al lancio: il linguaggio ha continuato a evolversi con nuove capacità e strumenti.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Perché la rivalità con Java non basta a spiegare C#

“La risposta di Microsoft a Java” è un modo efficace per introdurre la vicenda, ma incompleto se diventa tutta la spiegazione. C# apparve come parte della strategia .NET; fu sviluppato da un gruppo; linguaggio e infrastruttura di esecuzione seguirono percorsi distinti di standardizzazione; e le versioni successive introdussero capacità che ampliarono sensibilmente il linguaggio. Il confronto con Java descrive il contesto competitivo iniziale, mentre .NET e l’evoluzione delle versioni spiegano meglio che cosa C# sia diventato.

Fonti primarie: introduzione alla specifica C#, cronologia delle versioni di C# e annuncio Microsoft del giugno 2000.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.