Nel mio post precedente ho parlato delle mie personali opinioni sul confronto C# contro VB.Net. Resta ora il problema di come poter “giocare” con tanto buon codice open scritto in C# da parte di chi, come me, con C# non ha un gran feeling.
Vi segnalo allora l’ottimo Reflector per .Net di Lutz Roeder: il modo più semplice per tradurre un assembly scritto in C# nel vostro più congeniale VB.Net. O viceversa se preferite.
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.
Sono sempre più numerosi i produttori di antivirus che si impegnano nel rilascio di versioni dei loro programmi di sicurezza installabili su Linux. La prima domanda che viene in mente ai non addetti ai lavori è ” Ma come ? mi hanno sempre detto che Linux è immune dai virus ! “. Gli integralisti sostenitori di Windows utilizzeranno l’argomento in modo denigratorio nei confronti di Linux ( hahaha ecco che arrivano i virus per Linux ) mentre gli integralisti sostenitori di Linux guarderanno all’argomento con sufficienza e supponenza convinti di poter fare a meno di una adeguata protezione antivirus.
La mia opinione in questo campo è un pochino diversa e, come sempre, si basa su quello che credo essere un principio di buon senso. Innanzitutto basta prendere in considerazione il fatto che un file “virale”, indipendentemente dal sistema operativo che è obiettivo della infezione che porta, cercherà di viaggiare il più possibile camuffandosi sotto diverse forme. Anche se un tal virus potrà essere assolutamente inefficace su Linux non vuol dire che non possa creare danni altrove. Proviamo ad immaginare un caso limite : un utente Windows chiede aiuto ad un utente Linux per la risoluzione di un problema. L’utente Linux individua (sempre a puro titolo di esempio) il problema in un driver da sostituire o aggiornare e si preoccupa di trovare in rete l’eseguibile che il suo amico Windows dovrà installare. Purtroppo il file trovato è infetto e l’utente Linux (ignaro della cosa perchè sulla sua macchina non ha la possibilità di eseguirlo nè, in ogni caso, verrebbe infettato) manda al collega Windows un file .exe. L’utente Windows, che si fida ciecamente dell’amico e quindi considera la fonte sicura, riceve il file e lo esegue. Voilà … infettato.
Certamente l’utente Windows dovrebbe avere installato un buon antivirus ma anche l’utente Linux avrebbe fatto un buon servizio all’amico se si fosse accorto, con un antivirus per Linux appunto, dell’infezione. Ecco già il primo motivo per cui utenti Linux (specialmente in ambienti misti Linux/Windows) dovrebbero avere un antivirus installato.
Un altro motivo è sicuramente legato all’eccessivo senso di sicurezza che Linux può ingenerare nei propri utilizzatori. Premesso che tutti coloro che godono di buone/ottime conoscenze tecniche possono (non devono) evitare di installare programmi di protezione dopo una attenta valutazione dei rischi cui vanno incontro, c’è una quantità crescente di utenti “la’ fuori” che cerca in una distribuzione Linux le stesse facilità e comodità del sistema Windows che stanno abbandonando. Tutte queste persone non sono ingegneri nè tecnici specializzati e pertanto non sono in grado di valutare nè i rischi nè le eventuali vulnerabilità del proprio sistema operativo esattamente tanto quanto non lo erano con Windows. Per costoro l’assunto “il mio Linux è invulnerabile ai virus” è pericoloso e fuorviante. Innanzitutto perchè di virus per Linux ce ne sono: pochi ma ce ne sono. In secondo luogo perchè il successo di Linux anche per i sistemi desktop verrà misurato dalla quantità di virus che potranno essere sviluppati in futuro: abbiamo visto, infatti, nel mio post precedente sullo SPAM, come i produttori di malware cerchino il modo di massimizzare la distribuzione dei loro programmi (chiamiamoli così) e fino a quando non considereranno la base Linux come “appetibile” (quote di mercato troppo basse) non investiranno un soldo nella ricerca in questo campo.
Ma cosa succederà quando (e soprattutto se) si verificherà un’inversione di tendenza ?
Ecco per chi vuole incominciare ad affrontare il problema un buon tutorial: proteggere Ubuntu con AVG AntiVirus.