C# vs VB vs ...

di Andrea Zani, in .NET,
<sfogo enabled="true">

Poco fa ho in chat con un altro dot-nettaro ho avuto una pacifica discussione tra quale linguaggio tra C# e VB.Net fosse meglio per programmare il Framework. La mia risposta è stata ovviamente il "C#", non perché ritengo questo linguaggio meglio del VB (giammai! lo utilizzo ancora!!!), ma per questioni di gusti, nient'altro. Nel 2001 avevo mosso i primi passi con VB e solo nel 2002 ero passato al C#. Il motivo? Curiosità forse...

Ma una frase ha lasciato interdetto il mio interlocutore, ed è stato quando me sono uscito con la frase:
"Perché con il C# si evita di scrivere del codice del c***o!".

Perché questa mia affermazione? Forse sono avvelenato, ma mi sono ritrovato tra le mani alcune volte - sempre troppe - codice VB che prestazionalmente era limitato solo dalla fretta, noncuranza, ignoranza (?!?!) di chi l'aveva scritto. Se c'è una cosa che mi fa inca**are quando vedo dei progetti e nel vedere che non è stato impostato né a livello di webapplication e nemmeno a livello di pagina lo strict a true per il controllo degli oggetti o addiruttura l'Explicit impostato su False!!! (Fortunatamente questo caso l'ho incontrato solo in una community!)

Sembra una sciocchezza per i neofiti, ma l'impostazione a true dello strict aumenta le prestazioni di tutta la webapplication. Mi è stato risposto che con quell'impostazioni compaiono numerosi errori nelle pagine, e piuttosto di ricorreggere tutto si prefersce tenere tutto così com'è. Anzi, mi è stato detto perché si dovrebbe scrivere il codice, per esempio:

<%# DataBinder.Eval(Contatiner.DataItem,"nome campo")%>

Quando è sufficiente, lascianto lo strict su false, scrivere il tutto nel modo più semplice:

<%# Contatiner.DataItem("nome campo")%>

Be', la differenza sta tutta in una coppia di parole: late-binding. Se inseriamo nel codice una variabile senza dichirarne il tipo, sarà compito del Framework, durante l'elaborazione della pagina, ha convertirlo correttamente nel tipo adatto, ma sprecando inutilmente cicli macchina nell'esecuzione quando la dichiarazione del tipo direttamente da codice fa eseguire questa operazione solo la prima volta durante la compilazione. Un piccolo tutorial a riguardo lo si trova sull'MSDN.

Mi sembra strano che non sia impostato a true di default neanche in Visual Studio lo strict per tutte le webappliction in VB.Net. Forse perché si pensa erroneamente che questo linguaggio sia adatto ai neofiti?

Oggi non è giornata.

</sfogo>
Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese