- property: syntatic sugar a getter/setter metódusok helyett.
- delegate-k: jogos.
- továbbra is hitvita, hogy kell-e/lehet-e egy-egy API-nak saját nyelvi kiterjesztés létrehozni
- extension methods: syntatic sugar (és mondjuk én köteleznék mindenkit IDE használatra, azzal nem gond azonnal megtalálni, hogy a meghívótt metódust éppen melyik három névtérrel arréb levő osztályban definiáltad)
- operator overloading: talán most negyedszerre ebben a topicban: ritka esetben nekem is jól jönne.
- csomó parallel jóság: ?
- closure: már a 7-esben is kellett volna lennie, 8-ra már megint nagyon ígérik. (A csomó szemetet meg azért a C#-os IDE generálta kódokról is el lehet mondani)
- letisztultság: fejlődik ebben is a Java, csak backward compat miatt sokáig csak Deprecated a "régi szemét" osztály/metódus és kell egy pár kiadás, mire kidobják.
java:
+ nagyobb 3rd party kódbázis
+ egymással konkuráló (és így dinamikusan fejlődő) kapcsolódó szoftverek (alkalmazás-szerver, webszerver stb.), Google nélkül pl. az Apache+Mono párosításos mókán kívül nem tudnék IIS-en kívül másik .NET-képes webkiszolgálót mondani
+ közösségi, nyílt fejlesztés (lásd a Silverlight-ot, tudom hogy még támogatott stb., de mint cég az MS megteheti, hogy kihátrál belőle úgy, hogy egy hosszú support idő után egyszerűen eldobja, bár lehet, hogy openszósszá téve lenne olyan, akinek jobban megéri vinni az SL fejlesztését is mint migrálni az abban készült cuccait)
De akkor mégegyszer: igen, szép és jó nyelv a C#, vannak hasznos kiegészítései a Java-hoz képest nyelvi szinten, lehet a két nyelv/platform közt Pro/Kontra érveket hozni, akár sorrendet is lehet felállítani köztük (ami nem lesz objektív, mert a felsorolt dolgok fele szürkezóna), de attól, hogy az egyik más/több/jobb, mint a másik, még nem következik, hogy a másik objektívan egy szar. De hátha kódban:
tetra állítása:
boolean c_sharp_good = true;
boolean java_good = !c_sharp_good; /* tekintve, hogy az érve az, hogy AZÉRT szar a Java, mert a C# jobb */
Amit próbálok megértetni:
double c_sharp_goodness = base_oop_goodness + java_goodness + some_enhancements_goodness - things_MS_fucked_up_according_to_ME;
double java_goodness = base_oop_goodness + java_goodness; /* a nem deklarált változók mind double-ök és tetszőleges, de jól definiált és konzisztens nagyságrendűek, adott személy preferenciájának megfelelően */
A fekete-fehéren kívül is van világ.
BlackY