View Full Version : c#, cosa ne pensate?
Cosa ne pensate di questo linguaggio?
Come vi trovate?
Pro e contro?
Differenze con altri linguaggi?
In quali ambiti va bene e in quali è meglio lasciarlo stare e usare altro?
In poche parole...dite tutto quello che pensate/sapete su questo linguaggio :)
end.is.forever
21-03-2005, 21:10
Come linguaggio è un'evoluzione di java (a parte i generics che per ora non ci sono ma usciranno nella 2.0), abbastanza elegante e rapido da scrivere; di media leggibilità.
Al momento compila solo per .NET, e quindi ha svantaggi e vantaggi di interpretazione e compilazione jit (efficienza non ancora ai livelli del codice compilato, utilizzo un po intensivo della memoria, poche ottimizzazioni possibili, garbage collector, memoria non accessibile manualmente, gestione automatica della memoria, introspezione e reflection, metadati...).
Insomma, linguaggio + piattaforma sono l'equivalente Microsoft di Java.
Mezzetti0903
21-03-2005, 21:38
Linguaggio elegante e pulito.
Ottima leggibilità.
...dal punto di vista "programmatore" le generics sono una gran cosa ma per un "lettore" mio parere rovinano un bel po' la leggibilità!
Originariamente inviato da end.is.forever
Al momento compila solo per .NET, e quindi ha svantaggi e vantaggi di interpretazione e compilazione jit
C# puo' essere compilato direttamente a codice nativo senza passare per CLI.
Inoltre non e' l'equivalente Java di Microsoft perche' ha scopi totalmente differenti, la piattaforma .NET e' l'evoluzione naturale di COM.
Il linguaggio per me e' ottimo, leggibile e pulito. Appoggiandosi al framework puo' soffrire di problemi di efficienza, ma in genere non dovrebbe essere un grosso problema. E' particolarmente indicato per lo sviluppo di tool e interfacce utente.
end.is.forever
21-03-2005, 23:10
Originariamente inviato da fek
Inoltre non e' l'equivalente Java di Microsoft perche' ha scopi totalmente differenti, la piattaforma .NET e' l'evoluzione naturale di COM.
Se leggi ho scritto come linguaggio, e questo non penso si possa negare, dato che la base del linguaggio è chiaramente Java, con piccole differenze e l'aggiunta (per cui dico evoluzione) di costrutti sintattici (puramente sintattici) come le proprietà, gli attributi, gli eventi e i delegati.
Originariamente inviato da end.is.forever
Se leggi ho scritto come linguaggio, e questo non penso si possa negare, dato che la base del linguaggio è chiaramente Java, con piccole differenze e l'aggiunta (per cui dico evoluzione) di costrutti sintattici (puramente sintattici) come le proprietà, gli attributi, gli eventi e i delegati.
Non sono assolutamente d'accordo. Sarebbe come dire che Java e' l'evoluzione del C perche' la base del linguaggio e la sintassia e' chiaramente C, eppure sono due "oggetti" totalmente diversi.
E lo sono anche Java e C#, che hanno certamente cose in comune come il garbage collector (ma anche Python ha un GC), ma hanno differenze filosofiche e strutturali profonde. Basti pensare che in Java tutti i metodi sono virtuali di default, in C# non sono virtuali di default. E' un enorme differenza. Java e C# risolvono due problemi diversi, uno la ricerca della maggior compatibilita' possibile su piu' piattaforme, l'altro invece e' un linguaggio di sviluppo di componenti riutilizzabili da piu' linguaggi sulla stessa piattaforma.
MSciglio
22-03-2005, 14:06
Originariamente inviato da end.is.forever
Come linguaggio è un'evoluzione di java (a parte i generics che per ora non ci sono ma usciranno nella 2.0), abbastanza elegante e rapido da scrivere; di media leggibilità.
Al momento compila solo per .NET, e quindi ha svantaggi e vantaggi di interpretazione e compilazione jit (efficienza non ancora ai livelli del codice compilato, utilizzo un po intensivo della memoria, poche ottimizzazioni possibili, garbage collector, memoria non accessibile manualmente, gestione automatica della memoria, introspezione e reflection, metadati...).
Insomma, linguaggio + piattaforma sono l'equivalente Microsoft di Java.
Java e' interpretato, C# no. C# usa una sorta di compilazione JIT progressiva.
end.is.forever
22-03-2005, 21:16
O mi state prendendo tutti per il .... oppure non siamo per niente d'accordo su cosa sia un linguaggio.
La domanda principale era rivolta al linguaggio e io ho detto cosa penso di quel linguaggio (e le uniche cose che si possono valutare in proposito sono la leggibilità, la semplicità di scrittura e di apprendimento), non dell'ambiente runtime; questo anche perchè non mi sembra così giusto associare C# al .NET.
Dire che "C# non è interpretato" mi sembra confondere un po' le due cose; se domani al signor tal dei tali venisse lo sbuzzo di fare un compilatore di C# in eseguibile, allora la cosa non avrebbe più molto senso.
Un po come dire che C++ compila eseguibili, mentre un bel giorno Microsoft ha deciso di compilare in IL; il succo del discorso è: un linguaggio è un linguaggio, se poi vogliamo parlare di .NET allora ok, ma è un'altra cosa.
MSciglio
22-03-2005, 21:19
Originariamente inviato da end.is.forever
O mi state prendendo tutti per il .... oppure non siamo per niente d'accordo su cosa sia un linguaggio.
La domanda principale era rivolta al linguaggio e io ho detto cosa penso di quel linguaggio (e le uniche cose che si possono valutare in proposito sono la leggibilità, la semplicità di scrittura e di apprendimento), non dell'ambiente runtime; questo anche perchè non mi sembra così giusto associare C# al .NET.
Dire che "C# non è interpretato" mi sembra confondere un po' le due cose; se domani al signor tal dei tali venisse lo sbuzzo di fare un compilatore di C# in eseguibile, allora la cosa non avrebbe più molto senso.
Un po come dire che C++ compila eseguibili, mentre un bel giorno Microsoft ha deciso di compilare in IL; il succo del discorso è: un linguaggio è un linguaggio, se poi vogliamo parlare di .NET allora ok, ma è un'altra cosa.
Tu hai uscito il discorso dell'essere interpretato.
end.is.forever
22-03-2005, 21:24
Si si mi riferisco al discorso C# come linguaggio - Java come linguaggio
Mezzetti0903
22-03-2005, 21:51
Anche io penso che un linguaggio sia un linguaggio e basta.
Putroppo però devo ammettere che certe parole chiave hanno ragione di esistere solo nel contesto del framework.
Black imp
23-03-2005, 03:33
Originariamente inviato da MSciglio
Java e' interpretato, C# no. C# usa una sorta di compilazione JIT progressiva.
occhio perchè - non so C# - Java non si può dire che sia esattamente un liguaggio interpretato. è semi interpretato: viene compilato per la virtual machine e poi il codice prodotto viene da questa intepretato. non è la stessa cosa.
Black imp
23-03-2005, 03:40
Originariamente inviato da end.is.forever
O mi state prendendo tutti per il .... oppure non siamo per niente d'accordo su cosa sia un linguaggio.
La domanda principale era rivolta al linguaggio e io ho detto cosa penso di quel linguaggio (e le uniche cose che si possono valutare in proposito sono la leggibilità, la semplicità di scrittura e di apprendimento), non dell'ambiente runtime; questo anche perchè non mi sembra così giusto associare C# al .NET.
Dire che "C# non è interpretato" mi sembra confondere un po' le due cose; se domani al signor tal dei tali venisse lo sbuzzo di fare un compilatore di C# in eseguibile, allora la cosa non avrebbe più molto senso.
Un po come dire che C++ compila eseguibili, mentre un bel giorno Microsoft ha deciso di compilare in IL; il succo del discorso è: un linguaggio è un linguaggio, se poi vogliamo parlare di .NET allora ok, ma è un'altra cosa.
permettimi di obiettare a quest'ultime affermazioni: certi linguaggi nascono per essere fatti funzionare in un ambiente. Java per es. non permette la manipolazione diretta dei puntatori proprio perchè è un linguaggio che dopo compilazione funziona in un ambiente che lo interpreta, cioè su di una macchina virtuale. non si potrebbe - non agilmente - far fare la stessa cosa al C per es.
quindi non avrebbe molto senso paragonare linguaggi nati per scopi diversi dicendo che in ogni caso sono linguaggi.
anche la Patrol è una macchina, come la Maserati ma non ne vedo la paragonabilità.
A proposito della programmazione/utilizzo di c#/NET sotto linux cosa ne pensate?
Framework viene sostituito da mono per l'esecuzione, giusto?
E per la programmazione ? cambia molto sviluppare sotto uno o l'altro SO ?
Originariamente inviato da Giakino
A proposito della programmazione/utilizzo di c#/NET sotto linux cosa ne pensate?
Framework viene sostituito da mono per l'esecuzione, giusto?
E per la programmazione ? cambia molto sviluppare sotto uno o l'altro SO ?
Per applicazioni semplici le cose non cambiano... io avevo fatto qualche prova e i programmini semplici che avevo sotto Win funzionavano con Mono senza cambiare una virgola... e questa era la promessa iniziale del progetto, mi pare. Certo per applicazioni più complesse non saprei...
massimo78
26-03-2005, 13:59
A me fin ora per cio che l'ho usato piace abbastanza.
è come se avessero detto a M$ " Rifate Java che giri su piattaforma visualstudio" :D
e hanno fatto un ottimo lavoro...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.