Salve e buona Pasqua a tutto il newgroup. Ne approfitto per dire la mia
in tema di sviluppo software C++ e compatibilità crossplatform. Giusto
qualche dritta che potrebbe servire agli utenti nuovi ed anche ai
programmatori con anni di esperienza che intendono spostarsi su ampia scala.
-Computer
Prima di tutto occorre una buona workstation di lavoro. Per chi ha la
possibilità di lavorare da casa o da un proprio ufficio, consiglio di
acquistare un pc fisso da scrivania con ottima CPU a 64bit, scheda
grafica GeForce da 550 in su, 8 giga di memoria e almeno 1 tera di
spazio su harddisk + vari supporti per i backup. Per chi al contrario ha
la necessità di spostarsi parecchio, consiglio un portatile con
caratteristiche simili (magari scalate in base alle disponibilità
economiche) con display LCD da almeno 15,6" (evitate i 14") ed una
tastiera bella comoda (evitate i tasti condensati in poco spazio). Se
invece dovete stare fermi per dei periodi e spostarvi subito dopo, vi
consiglio di acquistare entrambi i computer, pc fisso e portatile, che
abbiano prestazioni quantomeno simili (evitate di farvi il fisso
mostruosamente potente ed il portatile scarso, lo dico perchè è un
errore che si commette di continuo). Se pensate che siano spese
ingiustificate credetemi, davvero, non lo sono per chi vuole essere
minimamente competitivo in questo tipo di mestiere. Se pensate che il
portatile ingombrante vi possa rendere scomodi durante i viaggi dove non
lavorerete, ebbene, compratevi anche un netbook o notebook, più si ha e
meglio è ;-) Non fate i tirchi altrimenti vi costerà caro in termini di
esperienza e professionalità.
Per scegliere una buona CPU, prima dell'acquisto vi consiglio di
consultare il seguente sito (almeno 6000 di mark):
http://www.cpubenchmark.net/
Mentre per la scheda grafica (almeno 1500 di mark):
http://www.videocardbenchmark.net
Chiedete sempre il consulto estemporaneo di tali siti per potervi fare
un'idea sulle performance. Non date retta ai commessi che sono abituati
ad utenti che usano il pc al massimo per navigare sul web o per
scaricarsi le foto fatte in crociera: voi non appartenete a quella
categoria! Di solito i commessi fanno i saccenti e sbuffano di fronte a
richieste di consulto sul web, ebbene in tal caso cambiate negozio
perchè non sono degni di fornirvi assistenza.
-Sistema operativo
Questo dipende dalle vostre necessità e da quanto vi trovere bene con
quel sistema operativo oppure no. Sappiate che oggi i sistemi operativi
sono così evoluti che in ambiente di sviluppo l'uno vale l'altro,
ovviamente se scegliamo tra quelli più supportati e recenti. Se volete
installarvi Windows, consiglio la versione 7 a 64 bit, mentre per Linux
tra i vari redhat, opensuse, ubuntu, etc, andate sul sicuro, però mi
raccomando: sempre installazioni a 64 bit perchè in questo modo avrete
la possibilità di coprire anche le compilazioni a 32 bit. Una cosa che
consiglio è quella di evitare le partizioni su harddisk per installare
più sistemi operativi sullo stesso computer, perchè oltre a rubarvi
tanto tempo di amministrazione vi ruberà spazio su harddisk ed oltre ad
essere scarsamente portabile è anche un inutile spreco di risorse.
Ebbene, oggi esistono le macchine virtuali per questo, dunque
installatevi uno o massimo due sistemi operativi sulla stessa macchina
(host) ed usate un programma per creare macchine virtuali sullo stesso
host così da potervici installare all'interno tutti i sistemi operativi
guest che vorrete. Ci sono diversi software per le Virtual Machine (VM),
tra cui l'ottimo VirtualBox della Oracle. Se siete preoccupati per le
performance, sappiate che le CPU più recenti supportano la
Virtualization Technology (VT) studiata appositamente per le macchine
virtuali e vi verrà richiesta per le VM a 64 bit (installate sempre a 64
bit). Di solito tale opzione è disattivata in partenza, in tal caso
andate su BIOS e attivatela perchè è davvero fondamentale. Noterete che
con un buon computer le performance delle macchine virtuali saranno
davvero ottime. Curare e fornire assistenza per tutti i sistemi
operativi vi renderà degli sviluppatori invidiabili anche sul posto di
lavoro.
-Software di sviluppo C++
Di solito chi comincia a sviluppare come amatoriale usando dei software
professionali fa sempre una terribile confusione tra compilatore e IDE.
Ebbene, ciò che nella vostra professione vi permetterà di creare dei
software non è tanto l'ide sciccoso ma soprattutto il compilatore! ;-)
Se avete sempre programmato giochi in DirectX usando l'express della
microsoft ed il vostro concetto di ambiente di sviluppo si limita a
quello, sappiate che invece tra compilatori ed IDE esiste una scienza
enorme fatta di miriadi di applicazioni, per cui rendere un progetto
cross-platform e muoversi bene dal primo momento non è affatto facile:
anche la cose apparentemente più stupide potrebbero rubarvi delle ore di
tempo prezioso ;-)
Windows:
Se intendete sviluppare applicazioni windows a 64 bit, dovrete
inizialmente scaricarvi l'ultima versione del Microsoft Visual Studio
Express e completare il tutto con una successiva installazione del
Windows SDK, senza il quale non potrete fare compilazioni a 64 bit visto
che non sono nativamente supportate dal toolset fornito in dotazione con
il VS express! Come alternativa microsoft c'è anche l'ottimo mingw, da
usare con IDE come DevC++, Eclipse o CodeBlocks.
Linux:
Che parlo a fare? Gcc punto e basta :-) A volte dovrete installare il
g++, ma quello potrete farlo tranquillamente da bash. Per quanto
riguarda le librerie, oggi le distribuzioni permettono di includerle
direttamente con comandi da console, tipo zypper install per opensuse o
yum install per centos e così via, al limite ci sono sempre gli rpm o
potete ricompilare voi stessi :o) Una cosa che mi sento di sconsigliare
è l'utilizzo di librerie pseudo anonime e scarsamente supportate tra una
distribizione e l'altra, se avete dei clienti esigenti e poco pratici
questo potrebbe crearvi dei problemi. Magari questo argomento
richiederebbe un discorso più approfondito perchè l'inclusione delle
librerie giuste in un progetto cross-platform è davvero non solo una
scienza ma un'arte. Come IDE consiglio sempre l'ottimo eclipse oppure il
codeblocks, anche se per acquisire maggior esperienza un suggerimento
che mi sento di dare è quello di non fiondarvi subito sulle ide potenti
ma di farvi le ossa con i makefile (o meglio ancora CMake) e compilare i
progetti da bash, usando gli editor della distribuzione come kate o gedit.
MacOSX:
Beh, come per Linux anche qua si parla del compilatore fornito in
dotazione col sistema operativo ed utilizzato per lo sviluppo dello
stesso, cioè l'Xcode. Come IDE il discorso non cambia molto, tenendo a
precisare che finalmente col macosx c'è pure una bella ide in dotazione,
cioè l'Xcode IDE, anche se esistono una miriade di ide cross-platform
che nel corso della vostra carriera userete un po' in tutti i sistemi
operativi su cui andrete a lavorare.
-Altri consigli veloci
.Per evitare la perdita dei progetti più grossi o casini con i
collaboratori, iniziate a fare un uso costante dei repositories. Ce ne
sono diversi sulla piazza anche se l'SVN è il più famoso ed utilizzato.
Se necessario, fatevi un bel serverino da mettere online.
.Spesso in ambiente lavorativo è richesta una certa dimestichezza con il
lavoro da remoto e non è scontato che anche con anni di esperienza come
programmatori c++ voi la possediate. Per farvi le ossa, comprate uno
switch da accompagnare al NAT/router modem di casa per collegare più
computer ad internet creandovi così una LAN domestica. In questo modo
potrete accedere alle varie macchine con ip interni ed esterni, lavorare
da remoto, sbloccare porte e quant'altro. Anche una wifi in casa non
sarebbe male, occhio però alla sicurezza.
.Installate sempre un buon firewall ed un antivirus sulla vostra
piattaforma di sviluppo.
Okay, in effetti ci sarebbe molto altro da aggiungere ma adesso devo
proprio scappare! Spero di avervi fornito degli spunti utili per
migliorare le vostre competenze di programmatori, quantomeno degli
spunti per potervi migliorare nella vostra professione. Ciao e ancora
auguri!