C sharp: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LRKalle (discussione | contributi)
LRKalle (discussione | contributi)
Riga 35:
Il progettista principale di C# è [[Anders Hejlsberg|Anders Hejsberg]], un informatico danese precedentemente coinvolto nello sviluppo dei linguaggi [[Turbo Pascal]] e Borland [[Embarcadero Delphi|Delphi]] (attualmente di proprietà di Embarcadero).
 
È 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 la struttura di C# è più vicina a quella del [[C++|linguaggio C++]] piuttosto che a [[Java (linguaggio di programmazione)|Java]].
 
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>.
 
La versione C# 1.0, basata su .NET Framework 1.0, fu rilasciata commercialmente da Microsoft nel gennaio 2002 con il pacchetto di sviluppo Visual Studio .NET 2002. In seguito sono state rilasciate sino ad oggi nuove versioni del linguaggio e del framework .NET con i pacchetti [[Microsoft Visual Studio]].
Riga 117:
=== Nuove funzioni introdotte con la versione 4 del linguaggio ===
* Pseudo tipo ''dynamic''
* [[Covarianza e controvarianza|Covarianza e Controvarianza]] nei tipi di parametri per interfacce generiche e delegati<ref>{{Cita web|url=https://msdn.microsoft.com/it-it/library/dd799517(v=vs.110)mt654055.aspx|titolo=CovarianzaCovariance eand controvarianzaContravariance nei generics(C#)|sito=MSDN|lingua=EN}}</ref>
* Specifica ''ref'' opzionale per l'uso di [[Component Object Model|COM]]
* Parametri opzionali e nomi di argomenti