Ho passato qualche giorno alla ricerca di una soluzione CMS open-source basata su .NET La prima piacevole sorpresa è stata il constatare come la notevole quantità di progetti CMS scritti con PHP inizi ad avere qualche decente concorrente .NET Dico piacevole non certo perchè detesti PHP … tutt’altro ! Ritengo abbia meriti eccezionali nell’aver dato impulso all’open-source web oriented. Il mio problema è che non sono mai riuscito a trovare un buon feeling con un IDE che mi aiutasse nello sviluppo: sicuramente ce ne sono ma l’iter che mi ha formato passa da tutte le possibili versioni di Visual Studio e … l’abitudine è dura a morire. Inoltre, occupandomi prevalentemente di server windows, non ho mai trovato particolarmente efficiente l’accopiata PHP/IIS nonstante la presenza di vari ottimizzatori.

Ecco quindi la scelta di restare con Visual Studio.

La seconda, forse meno piacevole ma pur sempre sorpresa, è stata dovuta al fatto che quasi tutti i progetti trovati sono scritti in C#. Fatta eccezione per il popolarissimo DotNetNuke (http://www.dotnetnuke.com) scritto in VB (non proprio tutto in verità) le altre opzioni possibili – limitatamente a quelle che ho ritenuto valesse la pena approfondire – sono tutte scritte in C# : Umbraco, Cuyahoga, RainbowPortal. (a margine ho pure trovato diverse applicazioni su codeplex.com per la gestione di contenuti tra cui un’eccelente wiki ed un bellissimo blog)

A parte le peculiarità funzionali di ciascun progetto la cosa che mi ha più incuriosito è stato il perchè di una scelta così prevalente di C# rispetto a VB (sempre .net si intende). Sono partito dunque, lancia in resta, per cercare di capire se alla base di questa scelta ci fossero ponderate ragioni tecniche. Non ne ho trovate.

In compenso ho trovato tonnellate di flames tra sviluppatori che hanno evidenziato una sorta di “lotta di classe”: a mio parere sterile e priva di contenuti. In sintesi apparirebbe che programmare in C# sia più elegante, più pulito, in qualche modo più nobile del lavorare con VB.NET. E la guerra assume anche toni accesi quando si definiscono i programmatori VB dei bassi e volgari spara-gestionali come se ci fosse qualche demerito nel guadagnarsi la pagnotta scrivendo applicazioni gestionali.

Di ragioni tecniche … nessuna! O meglio … molte ragioni che però sono radicate in confronti anacronistici di Basic contro C. Rimanendo nell’ambito .net (framework 2) sfugge a molti, che forse non vogliono vedere, che entrambi i linguaggi vanno riferiti ad un CLR (Common Language Runtime) comune, appunto, e che quindi sostanzialmente sono esattamente la stessa cosa. Le tesi a sostegno di una maggiore efficienza dei binari C rispetto a quelli VB non hanno più ragione d’essere.

Mi sono imbattuto allora nella pubblicazione di Dan Appleman “Visual Basic.NET o C# : quale scegliere ?”: la frase simbolo di questo libro è, anche secondo me, questa:

Chiunque pensi che la sintassi
if () { }
sia moralmente più etica di
If ... Then
End If

è semplicemente un pazzo !

La sola ragione che sembra avvalorare la scelta di C# è data dal fatto che generalmente i committenti di un progetto sarebbero propensi a pagare di più i programmatori C#.  Sulla base di cosa … non si sa. Resta il fatto che la ampia disponibilità di codice open in C# parrebbe contraddire questa affermazione.

In conclusione l’unica risposta possibile a questa scelta è … dipende !
Dipende da quanta familiarità avete già accumulato con una sintassi piuttosto che con un’altra.

Alla fine il mio caro vecchio (mica tanto) VB mi farà compagnia ancora per parecchio.