Newsgroup: it.comp.lang.c++
Titolo: [XPOST] Consiglio prima di iniziare

Salve a tutti e buone feste,
per prima cosa mi scuso per il crosspost, sono cosciente del fatto che
questo post potrebbe essere considerato OT su almeno uno (e nel peggiore dei
casi due) dei tre NG su cui ho postato, ma ho come scusante (almeno spero)
che due di questi NG hanno davvero un traffico ridotto.
Passiamo hai fatti,
per sostenere un esame devo scrivere un simulatore (non un emulatore e se
sarà necessario in seguito chiarirò quali ritengo siano le differenze
principali) di un semplice processore (diciamo che per il momento sarei
orientato su un 6502, processore alla base del glorioso Commodore 64) e
relativo assemblatore.
Il professore consiglia di scriverlo in un linguaggio visuale (lui ha citato
Visual Basic, Visual C++, e Java) e io vorrei approfittare dell'esame per
imparare un linguaggio che non conosco quale il C++.
Il primo problema che si è presentato è stato di tipo etico, per scrivere un
programma in visual C++ bisognerebbe comprare il famoso pacchetto Microsoft,
ma la versione per studenti (la "Accademic") costa 199 dollari, per questo
mi sono orientato verso il kdevelop usando il quale non avrei problemi di
licenza.
Ora sono nella fase due e cioè quella in cui dovrei procurami una
documentazione per imparare il linguaggio, per quanto riguarda l'uso
dell'ambiente kdevelop ho trovato parecchio materiale sul sito ufficiale.
Per il linguaggio invece avevo pensato al "Stroustrup C++ Linguaggio,
libreria standard, principi di programmazione".
C'è da premettere che conosco la programmazione imperativa (nella
fattispecie del Pascal e di parte del C che continuo a perfezionare con
l'ausilio del K&R) e dei fondamenti della programmazione ad oggetti.
Secondo voi la scelta del kdevelop è azzeccata? Tenete conto del fatto che
ci tengo ad imparare il C++.
Inoltre credete che lo Stroustrup sia un supporto adeguato per l'impresa che
mi attende?
Sono ben accetti ogni tipo di consigli.
P.S. Se qualcuno ha materiale sul 6502 si faccia avanti.
Vi ringrazio per avermi letto.
--
Noisemaker
"Dove il tempo non è che una curva, un filo sciolto del tessuto universale,
un tessitore potrebbe creare un fatale nodo, e gettare nel caos la sorte dei
pianeti"

 mi attende?
Come detto prima. Ottimo libro, la Bibbia del C++, ma forse troppo
"esoterico" se non hai già "studicchiato" il C++.
Andrea Sini


Ti ringrazio e ti prego nel prossimo reply di eliminare il crosspost, mi
rendo conto di essere stato maleducato e ne chiedo scusa.
Al limite indica il NG su cui scrivi e lo elimino io
Grazie di tutto


 Sono ben accetti ogni tipo di consigli.
C++ e` una buona scelta. Fai una libreria/core che fa tutto in perfetto C++
standard (e per quella sei IT su it.comp.lang.c++), poi eventalmente la
interfacci con l'utente come meglio credi (le GUI su it.comp.lang.c++ sono
OT, in quanto non parte dello standard).
f/up a riguardo su it.comp.lang.c++ 
 
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]


Come avrai capito, è il mio  primo programma "vero" ed inoltre il primo che
avrà un'interfaccia grafica.... come dovrei fare a sviluppare le due cose
separatamente?
Inoltre per ora ho scaricato il "Thinking in C++" e mi appresto alla
lettura, al massimo lo Stroustrup lo piglio poi.


 Certo però non realizzerai un programma per WIN32.
Falso. Se non usi librerie non portabili ma ti limiti alla stl, ed
eventualmente alle qt, puoi portare il tutto su win32. Fra l'altro il gcc
esiste pure per windows, ad esempio nell'incarnazione mingw.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail** 
-<! Living on Earth may be expensive, but it includes an annual free trip
		around the Sun. !>-

 lettura, al massimo lo Stroustrup lo piglio poi.
Ben fatto.


(Premetto che il thread l'ho letto tutto...)
Ok, il mio consiglio da recente niubbo come te, è quello di usare un 
editor scarno per poter usare (ed imparare) il linguaggio veramente.
Dopo essere passato per : kdevelop, eclipse e simili, ancora mi trovo 
meglio (da Dio!) con GNU Emacs + ECB.
Se non hai ancora iniziato, tieni conto che ci vorrà qualche mese prima 
di prendere confidenza con la maggior parte degli argomenti (quelli 
principali) del linguaggio.
Per favore, nota che il C++ come linguaggio NON include alcuna libreria 
grafica, tanto più che è una scelta dipendente dal sistema sottostante.
Quello che sai per certo esserci in qualsiasi implementazione del C++, e 
che devi usare per avere del codice portabile, sono le STL (puoi trovare 
  un'ottima documentazione sul sito della SGI).
Se prevedi di voler compilare sia per GNU/Linux che per Windows, ti 
consiglio di usare le wxWindows (
http://www.wxwindows.org/
). Anche se le 
mie simpatie vanno a Gtk+, ammetto che le wxWindows permettano di fare 
cose molto carine in un tempo ridotto. Se ti senti ispirato, mi dicono 
che le litWindow (
http://www.litwindow.com/Library/index.html
) 
facilitino ulteriormente la vita agli sviluppatori.
Per imparare il linguaggio, io mi sono trovato assai bene con il (già 
citato da qualcuno) libro di Eckel, "Thinking in C++", liberamente 
scaricabile nei suoi due volumi da 
http://www.mindview.net
.
Per il packaging poi del tuo programma, consiglio l'uso degli autotools 
(autoconf + automake + (se è il caso) libtool ), che ti permettono di 
portarlo su qualsiasi (o quasi) sistema senza grossi problemi. Potrai 
quindi compilarlo con agilità anche su win32 con MinGW.
Se intendi velocizzare ancora di più lo sviluppo della parte grafica, 
dovresti trovarti bene con wxGlade. E` più o meno quello che forse tu 
confondi come "la parte grafica del visual C++", che un po' tutti qui 
rifuggiamo, credo, perché assai distante dallo standard e legato ad una 
libreria (le MFC) disponibile solo su Windows e sotto la EULA.
Un ultimo consiglio: cerca di usare il G++ 3.4.x se possibile, in quanto 
ho trovato sia dei bug che dei messaggi poco chiari con G++ 3.3 e 
inferiori. In particolare, il discorso dell'istanziazione dei template, 
dell'editarietà, e dei friend di template nei g++ vecchi faceva venire 
il mal di pancia. :-p
Sperando di esser stato d'aiuto,
-- 
Matteo Settenvini
FSF Associated Member
Email : 
mat...@member.fsf.org
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d--(-) s+:- a-- C++ UL+++
P?>++ L+++>$ E+>+++ W+++ N+ o?
w--- O- M++ V? PS++ PE- Y+>++
PGP+++ t+ 5 X- R tv-(--) b+++
DI+ D++ G++ e h+ r- y?
------END GEEK CODE BLOCK------

 
-- 


 che fai?
Vabbe` quello poi dipende dall'implementazione... io parlavo di C++
standard... e purtroppo librerie statiche e dinamiche sono dipendenti
dall'implementazione... 
Per ora basta che sia logicamente distinta... poi quello che dici tu e` il
passo successivo che verra` naturale (lo ripeto Boost Python...)


Ciao,
Ho letto tutte le risposte che hai ricevuto finora, ma rispondo al tuo
messaggio originale, perche' ha piu' senso cosi'.
Per prima cosa dovresti decidere quanto tempo intendi dedicare a questo
progetto. Secondo me farlo in C++ non conoscendo il linguaggio e
dovendo comunque realizzare anche un'interfaccia grafica ti prendera'
da tre a sei mesi a tempo pieno, a meno che tu (ed il tuo prof) non vi
accontentiate di una schifezza.
Quindi dovresti ragionare su quali sono gli scopi per i quali affronti
questo progetto e valutare se non sei troppo ambizioso; hai gia' da
realizzare il simulatore vero e proprio e la sua interfaccia,
aggiungere un linguaggio nuovo e complesso non e' poco.
Detto questo al tuo posto avrei probabilmente deciso di realizzare il
progetto in C++ su linux con GTK e l'interfaccia scritta a mano, per
imparare. Se puoi permetterti di dedicare cosi' tanto tempo a questo
progetto secondo me non te ne pentirai, salvo che ti consiglio
caldamente di usare un GUI Builder, perche' scrivere interfacce a mano
e' incredibilmente noioso.
Buon lavoro!
Ciao,
Nicola