Newsgroup: it.comp.lang.delphi
Titolo: differenze strane

Salve a tutti !
Qualcuno potrebbe spiegarmi il risultato di questi esperiment ???
Allora ho installato sulla mia macchina :
delphi 7
c++ builder 6.0
se provate a aprire tutti e 2 gli ambienti di sviluppo e create un
progetto con una form e ci mettete solo ed esclusivamente un componente
(io ho messo un button) slavate tutto il progetto ecc,ecc...compilate
tutto noterete che...
la cartella contenente il progetto con delphi ha al suo interno
naturalmente il file eseguibile .exe ed è grande a me 364 kb
se provate a fare la stessa cosa con c++ builder 6.0 il file eseguibile
risulta di gran lunga più piccolo...
P E R C H E' ??????
ho provato a googlare ma niente di niente...
inoltre ho smanettato un pò e se andate in delphi 7 nel menù project ->
options (oppure shift+ctrl+F11) e andate sotto lo stesso menù di però in
c++ builder 6 noterete che sono totalmente diversi !
quello di c++ builder 6 ha più voci (tab)... C O M E    M A I ???
ho provato a spostarmi in avanti nel tempo e ho fatto lo stesso
esperimento con rad studio 2010...
il file eseguibile partorito da delphi 2010 è grande 811 kb
invece il file eseguibile partorito da c++ builder 2010 è grade solo
39 kb !!! PERCHE' ?
inoltre c++ builder 2010 (crea a differenza del 6) una cartella debug
... li è presente il file eseguibile .exe
attendo vostre risposte al più presto !!!
grazie a tutti per l'attenzione !!!


[...perche' tra versioni diverse di delphie cbuilder compilando
codice uguale ottengo eseguibili di dimensioni cosi' diverse?...]
Questa e' una FAQ non di delphi ma di tutti i linguaggi di
programmazione e di tutti i compilatori esistenti!!! :D
I motivi sono diversi:
- diverse dimensioni delle librerie (VCL, eccetera) linkate
al tuo eseguibile
- informazioni di debug (che possono cambiare da versione a versione)
- flag attivi durante la compilazione (ottimizzazione, strip
delle debug info, eccetera)
Ma a parte per semplice curiosita', quale ragione ti porta
a farti questa domanda? :)
ciao
Giacomo


Praticamente sono un eterno dubbioso...
Siccome con questi IDE/RAD si può fare praticamente tutto ma è anche
vero che sono infiniti quindi siccome per imparare bisogna investire
molto tempo preferisco investire il mio tempo 1 volta e per sempre nel
migliore...
Poi si sente sempre parlare tantissimo di C/C++ che sono i migliori
ecc,ecc...
Quindi voglio specializzarmi nel migliore linguaggio , io adoro delphi
ma quando senti per esempio che il 90% dei programmoni viene scritto in
C/C++ mi vengono un pò di ripensamenti...
e parlo di programmi "bestia" tipo per esempio ABLETON LIVE che è stato
scritto in C++ !
Che poi ABLETON è stato scritto in C++ ma con quale IDE/RAD ?
I software che contiene il pacchetto ADOBE MASTER COLLECTION
in cosa sono stati scritti ? e con quale IDE / RAD ?
ATTENDO ANSIOSO VOSTRE RISPOSTE...

 C/C++ mi vengono un pò di ripensamenti...
http://en.wikipedia.org/wiki/Embarcadero_Delphi#Some_software_written_in_Delphi
L'ambiente di sviluppo o il linguaggio *migliore* non esistono. Esiste, 
pero', l'ambiente o il linguaggio migliore per le tue esigenze e per 
cio' che vuoi creare.
Ah, non dimenticare che adesso, il povero programmatore, deve anche 
pensare ai dispositivi mobile che possono usare iOS, Android, Windows 
Phone 7... :)

 ATTENDO ANSIOSO VOSTRE RISPOSTE...
Beh direi che ti conviene andarti prima a comprare un pò di xanax, così 
magari calmi l'ansia da "prestazione" (di programmare, ovviamente ;-))
Scherzi a parte.. l'argomento da te posto dimostra come la percezione 
che si ha dei linguaggi di programmazione sia vista come un "problema".
Problema di studiare un linguaggio sbagliato, problema di dover imparare 
un linguaggio adatto ad una cosa che poi non sarà il tuo campo 
applicativo, ecc... ma non è così :-)
Diciamo che non è proprio così come la vedi tu, e qui dentro molti te lo 
possono confermare: nel corso dell'esperienza che farai ti renderai 
conto che imparato un linguaggio (delphi/object pascal è il miglior 
linguaggio dove partire, imho) passare agli altri non sarà così 
difficile, anzi... imparare un linguaggio è il primo passo per poi 
diventare programmatori di professione. E' come andare in bicicletta per 
un bambino: all'inizio spaventa, poi le prime cadute e i primi dolori, 
poi vai come un razzo, poi senza mani addirittura :-)
Io adesso sto usando QT creator che è il RAD per usare la libreria della 
QT che è scritta in C++. Uso il C++, ma grazie alla libreria e agli 
oggetti che mette a disposizione, uso il C++ in modo molto ma molto 
semplificato: non mi devo occupare della memoria ad esempio, e non 
faccio che usare semplici puntatori e references senza complicarmi 
troppo la vita.
Penso che se parti da delphi (che poi è l'object pascal) avrai un 
approccio semplice e funzionale alla programmazione strutturata e molto 
elegante nella programmazione OO e puoi fare quasi tutti i tipi di 
programmi.
Se scegli di imparare il C++, avrai a dispositione migliaia e migliaia 
di librerie per fare tutto, ma proprio tutto ;-) Ovviamente l'impegno 
sarà maggiore perchè col C/C++ puoi manipolare la memoria direttamente e 
quindi accedere alle risorse hardware e ai registri della CPU: in 
pratica, puoi fare danni e non riuscire ad uscirne facilmente.
Con Java e C# il tuo programma girerà in un ambiente "protetto" (una 
virtual machine), e non potrai fare danni al sistema operativo, non 
accederai alla memoria direttamente nè ti preoccuperai di gestirla per 
liberare le risorse impegnate dai tuoi oggetti.
Tuttavia scordati le prestazioni e tutto quanto sa di videogames/3D, con 
quei linguaggi ti sposti facilmente sul mondo embedded, palmari, 
internet, ecc... ma difficilmente andrai ad interfacciare un controller 
hardware in real time per gestire un motore o programmare un robot: 
quelle cose si fanno in C++ e anche in delphi, ma delphi ha poche 
librerie e poca letteratura a riguardo, accantonalo per questi scopi.
Java si usa anche per la robotica, ma non conosco il settore. Per 
esperienza vedo che negli SDK rilasciati dai produttori hardware trovi 
sempre la libreria C++ per interfacciarti ai loro dispositivi.
Poi ci sono i linguaggi server side, quelli per fare le applicazioni che 
"girano su internet": PHP, Java, Javascript, 
ASP.NET
, HTML, XML, 
ecc...... Non mi dilungo su questo aspetto, è troppo vasto questo mondo 
e poi tu hai parlato di compilare programmi che girano su sistema 
operativo. Questo è un buon link dove iniziare ad approfondire:
http://en.wikipedia.org/wiki/Web_development
Per concludere: benvenuto nel mondo dei programmatori ;-)
Ascolta e rifletti sul consiglio di Warp10 e di altri che ti hanno 
risposto.
Fatti un giro su tiobe e vedi come va il trend:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Per il resto, noi siamo sempre qui pronti a chiarirti ogni tuo dubbio.
Ciao
-- 
morde
D5,D6,D7
QT4.6.3 QT Creator 2.0