Inserito da: msolcia | Dicembre 30, 2008

C# in depth

Tra i numerosi libri che sto leggendo in questo momento vi è anche “C# in depth” di Jon Skeet pubblicato da Manning (da cui ho comprato anche l’ottimo “The art of unit testing” in versione pre-printed).

Sono ancora alle prime pagine ma il libro mi sta “prendendo assai”. Fa sorridere dire una cosa del genere per un libro tecnico nel quale non si narra una storia ma bensì la struttura di un linguaggio di programmazione. Eppure i linguaggi di programmazione hanno, almeno per me, un fascino particolare: un po’ come i linguaggi “umani” essi nascono magari riprendendo altri linguaggi e pian piano si evolvono, nel caso dei linguaggi di programmazione naturalmente grazie alle estensioni fatte dai loro creatori, ma quasi sempre su suggerimento degli utilizzatori. Come la possibilità di usare nuovi costrutti sintattici (denominati syntatic sugar) per rendere il codice sempre più leggibile e sempre più dichiarativo a scapito dell’imperativo (specificare cosa e non come).

C# è arrivato alla terza major release (anzi alla conferenza Microsoft PDC si è parlato già della versione 4.0).

“C# in depth” è diverso dagli altri libri che insegnano ad usare C#, esso si focalizza “solo” sui miglioramenti tra una versione e l’altra.

Il primo capitolo con un semplice esempio fa vedere come il codice scritto nella versione 1.0 venga via via semplificato e reso migliore (nel senso di più snello e leggibile) passando dalla 2.0 alla 3.0. Il codice viene man mano trasformato con i seguenti passaggi che mi annoto a futura memoria:

C# 1.0: Read only properties –> C# 2.0: Private property “setters” –> C# 3.0: Automatically implemented properties

C#1.0: Weakly typed collections (ArrayList) –> C# 2.0: Strongly typed collections (generics) –> C# 3.0: Enhanced collection and object initialization.

C#1.0: Weakly typed comparator –> C# 2.0: Strongly Typed comparator –> C# 3.0: Lambda Expressions

C#1.0: No delegate sorting option –> C# 2.0: Delegate comparisons + anonymous methods –> C# 3.0: Extension methods + Option of leaving list unsorted

C#1.0: extra work to cope with null in value type variables –> C#2.0/3.0: Use of Nullable types

Se vi interessa l’argomento è sicuramente un ottimo libro, scritto in un inglese chiaro, con pochi esempi ma quelli giusti.

Beh il 2008 è agli sgoccioli, non mi rimane che augurare a tutti i miei lettori (2) un Buon 2009 ricco di belle novità.

Chissà se nel 2009 riuscirò a scrivere un po’ di più su questo blog.


Lascia un commento

La tua risposta:

Categorie