C sharp: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Corretto errore di battitura
Etichette: Modifica da mobile Modifica da applicazione mobile
LRKalle (discussione | contributi)
Nessun oggetto della modifica
Riga 30:
}}). In effetti, il nome del linguaggio andrebbe scritto con il simbolo del [[diesis]], ma in sostituzione si usa il [[cancelletto]] per praticità di scrittura (fonte: [[Microsoft Developer Network|MSDN]], [http://msdn.microsoft.com/it-it/vcsharp/aa336822.aspx Domande frequenti su Visual C#]). In italiano, il gioco di parole viene perso.</ref> è un [[linguaggio di programmazione]] [[Programmazione orientata agli oggetti|orientato agli oggetti]] sviluppato da [[Microsoft]] all'interno dell'iniziativa [[Microsoft .NET|.NET]], e successivamente approvato come standard dalla [[ECMA International|Ecma]] (ECMA-334) e [[Organizzazione internazionale per la normazione|ISO]] (ISO/IEC 23270-2006).
 
La sintassi e struttura del C# prendono spunto da vari linguaggi nati precedentemente, in particolare [[Delphi]], [[C++]], [[Java (linguaggio di programmazione)|Java]] e [[Visual Basic|Visual BASiC.]] Il risultato è un linguaggio con meno simbolismo rispetto a C++, meno elementi decorativi rispetto a Java, ma comunque orientato agli oggetti in modo nativo e adatto aallo sviluppo di una vasta gamma di software.
 
== Storia del linguaggio ==
Riga 37:
È opinione comune che l'ispirazione venne dal linguaggio [[Java (linguaggio di programmazione)|Java]], dato che perfino il suo ideatore [[James Gosling]], nonché [[Bill Joy]] di Sun Microsystem, lo definirono una sua imitazione, ma più limitata dal punto di vista della affidabilità, sicurezza e produttività.<ref>{{Cita web|url=https://www.cnet.com/news/why-microsofts-c-isnt/|titolo=Why Microsoft C# isn't|lingua=EN}}</ref>. Invece, secondo Anders Hejsberg e Microsoft stessa, la struttura di C# è più vicina a quella del [[C++|linguaggio C++]] piuttosto che a [[Java (linguaggio di programmazione)|Java]]<ref>{{Cita web|url=https://msdn.microsoft.com/en-us/library/ms836794.aspx|titolo=C# and Java: Comparing Programming Languages|lingua=EN}}</ref>.
 
C# è strettamente legato allo sviluppo di [[.NET Framework]]. Infatti gli ingegneri di Microsoft utilizzarono nelle prime fasi della sua stesura un framework chiamato SMC, ovvero Simple Managed C, un sistema utilizzante il [[C (linguaggio)|linguaggio C]] in modo gestito o "managed". Nel gennaio 1999, [[Microsoft]] mise Anders Hejsberg a capo di un gruppo di lavoro con il compito di produrre un nuovo linguaggio, chiamato provvisoriamente "Cool", acronimo di "C-like Object Oriented Language" (linguaggio orientato agli oggetti simile a C)<ref>{{Cita news|lingua=EN|autore=Naomi Hamilton|url=http://www.computerworld.com.au/article/261958/-z_programming_languages_c|titolo=The A-Z of Programming Languages: C#|pubblicazione=Computerworld|data=1º ottobre 2008|accesso=4 febbraio 2017}}</ref>. Il nome commerciale definitivo divenne C# alla presentazione ufficiale del progetto .NET da parte di Microsoft alla Professional Developers Conference tenutasi nel [[luglio]] [[2000]] a [[Orlando (Florida)|Orlando]], quando anche le librerie di classi e il runtime di [[ASP.NET]] vennero convertite in linguaggio C#.
 
Nel tempo C# e [[Java (linguaggio di programmazione)|Java]] hanno percorso strade differenti, aumentando complessivamente le differenze reciproche, sebbene ci siano stati anche evidenti casi di reciproco scambio di caratteristiche. Per esempio C#, a differenza di Java, utilizza sin dalla versione 2 la [[Reificazione (informatica)|reificazione]] per generare oggetti generici che possono essere usati come classi, riservando al momento del caricamento della classe in fase di esecuzione la compilazione effettiva del codice. Anche l'implementazione in ambedue i linguaggi dei [[tipi generici]], sebbene concettualmente identica, è stata implementata in maniera piuttosto differente. Invece, il concetto di boxing e unboxing propri di C# sono stati implementati successivamente anche in linguaggio Java<ref>{{Cita web|url=http://www.artima.com/weblogs/viewpost.jsp?thread=6543|titolo=After Java and C# - what is next?|autore=Klaus Kreft and Angelika Langer|sito=www.artima.com|lingua=EN|accesso=4 febbraio 2017}}</ref>.
Riga 291:
== Implementazioni ==
 
Il compilatore di riferimento è [[Microsoft]] [[Visual C#]], parte del pacchetto [[Microsoft]] [[Visual Studio]] e attualmente [[open source]]<ref>{{Cita web|url=https://github.com/dotnet/roslyn|titolo=DonTen Roslyn project on GutHub|lingua=EN}}</ref>.
 
Esistono sul mercato e nei circuiti dell'[[open source]] altre implementazioni.
Riga 301:
=== DotGNU ===
 
Il progetto [[DotGNU]], attualmente non più supportato<ref>{{Cita web|url=https://www.gnu.org/software/dotgnu/|titolo=DotGNU Project|lingua=EN}}</ref>, include un compilatore C#, una implementazione parziale della [[Common Language Infrastructure|CLI]], comprese le librerie richieste secondo le specifiche [[ECMA]], oltre a un sottoinsieme di alcune librerie di classi [[Microsoft .NET|.NET]] proprietarie di Microsoft, aggiornate alla versione .NET 2.0.
 
=== Rotor ===
Il progetto Rotor di Microsoft, distribuito con licenza gratuita solo per scopi didattici e di ricerca, fornisce una implementazione del runtime CLR e un compilatore C#, con un sottoinsieme dell'infrastruttura CLI conforme alle specifiche ECMA<ref>{{Cita web|url=https://msdn.microsoft.com/en-us/library/cc749640.aspx|titolo=Progetto Rotor in MSDN|lingua=EN}}</ref>.
 
== Standardizzazione ==