Posta

Opinioni personali

Salve,
innanzitutto Le chiedo scusa per questa e-mail diretta, ma ho da poco letto la rubrica Q&A del numero 105 di CP e sono a dir poco sobbalzato sulla sedia!
Come avrà sicuramente capito dal subject l'argomento del contendere riguarda la sfida VC++ / C++Builder (tra l'altro C++ Builder non è solo Borland C++, arrivato alla 5.5, ma anche C++ Builder 5.0, quindi integrazione con la VCL, IDE RAD, migliore (di VC++) integrazione con la STL, ...); avendo utilizzato entrambi i compilatori (anche se sicuramente non al pieno delle loro capacità) propendo più per un diplomatico "entrambi hanno tanto punti di forza quanto talloni di
Achille". Il suo giudizio mi sembra però categorico!
Potrebbe articolare maggiormente le ragioni che La hanno spinta ad un giudizio così sferzante e profondamente negativo nei confronti del prodotto di Borland?
Sono infatti molto incuriosito da una risposta più articolata che suppongo scaturirà da una esperienza sul campo sicuramente maggiore della mia.
Fino a poco tempo fa, avendo lavorato solo con il VC++ e avendone provati i limiti, credevo che il C++ Builder fosse un paradiso. Avendo oggi avuto l'opportunità di provare anche quest'ultimo sono maggiormente disilluso, ma non così categorico come Lei; credo che il maggior punto di forza del VC++ sia la sua diffusione legata a filo doppio con il fatto di essere prodotto dalla stessa software house che produce il sistema operativo sul quale gira.
Grazie in anticipo,

Gianni Luciani.

Spettabile redazione di CP,
da diversi anni sono un abbonato alle Vostre riviste (CP e DEV) che giudico ottime.
Purtroppo recentemente mi è capitato di leggere, nella rubrica "AI LETTORI - Q&A" a pag. 95 di CP 105 di Settembre 2001, la risposta che il vostro collaboratore Davide Infantino (che ho spesso stimato) ha dato alla richiesta del lettore Massimiliano Fratantuono circa la scelta di un buon compilatore C++ in ambiente Windows.
Senza riportare l'intera risposta, si legge, circa a metà, la seguente frase: "il Builder mi sembra un pessimo compilatore...".
Io non conosco i citati gcc e VC++ (che sicuramente saranno ottimi compilatori), quindi non mi permetto di giudicarli ma conosco abbastanza bene il compilatore Borland allegato al C++ Buider in quanto utilizzo tale ambiente da oltre quattro anni (a partire dalla versione 1 per arrivare alla 5) e vi assicuro che non mi sono mai, e sottolineo la parola mai, trovato in difficoltà sia per ciò che riguarda la compilazione sia per ciò che riguarda la compatibilità con lo standard ANSI.
Quando ho letto la risposta del sig. Infantino, sono rimasto dapprima esterrefatto e poi amareggiato da quella frase in quanto, sebbene abbia espresso un giudizio personale (almeno spero), ritengo che non sia corretto esprimere un giudizio così lapidario circa un compilatore prodotto da una società nota in tutto il mondo e sicuramente molto diffuso.
Se questa opinione fosse stata espressa fra amici o colleghi non ci sarebbe stato nulla di male ma purtroppo e' stata espressa nelle pagine di una rivista (e ciò rende responsabile l’intero Gruppo Editoriale Infomedia), e, quel che è peggio, in risposta alla richiesta di un lettore che sicuramente si farà una pessima (ed ingiustificata) opinione circa il compilatore Borland.
Mi auguro che altri lettori abbiano notato ciò e spero che episodi del genere non si verifichino più.
Ringrazio per l’attenzione e porgo distinti saluti.

Roberto Bigliardi

Risponde Davide Infantino

L'SDK è pensato per il VC++ e questo è un dato di fatto (non piacevole). Ci sono varie cose che del Borland non mi piacciono. Innanzitutto non aderisce pienamente allo standard C++, ma questo succede anche con gli altri compilatori: ad esempio, nessuno accetta l'esoterica export nei template. Il compilatore Comau ha annunciato che presto sarà aderente allo standard al 100%. Credo che non siano nemmeno tanti i compilatori C aderenti allo standard C99.
Non mi piacciono i metodi di ottimizzazione del compilatore e in alcuni casi il codice prodotto è maggiore rispetto a quello di altri compilatori:

//classe di fatto vuota
class Papero{};

//GCC e VC++
sizeof Papero == 1

//BC 5.5
sizeof Papero == 8

Questo mi fa sospettare che il compilatore usi in modo improprio le possibilità delle VTable. Non mi sono trovato per niente bene con il codice assembler inline del Borland.
Malgrado il VC++ 6 gestisca pessimamente i template e anche nella versione 7 non sia aderente al 100% allo standard C++, ha il pregio di essere della stessa casa che costruisce il sistema operativo, di permettere regolazioni molto fini nella creazione di un eseguibile, di essere sufficientemente stabile e di ottimizzare in modo non troppo peggiore dal campione Intel.
Il GCC è anche un cross compiler, è stabile e ha un interessante sistema di profiling.
Questa è la mia opinione, maturata con la mia esperienza. Forse sbagliata, perché no. Magari domani dei fatti nuovi mi faranno cambiare idea.
Saluti