Newsgroup: it.comp.lang.delphi
Titolo: Ragazzi per favore datemi un consiglio (semi OT)

Forse sono pure tutto OT però scusatemi, non saprei dove chiedere; tutti i
ng sono dedicati ad un linguaggio specifico io invece ho una domanda più
generica.
Vorrei iniziare a programmare con un linguaggio moderno; per ora conosco
solo qualche fondamento di Turbo Pascal. Con che linguaggi omi consigliate
di cominciare? C++ o Delphi?
Mi è sembrato di capire che Delphi sia simile al Pascal o meglio sia una sua
evoluzione, quindi dovrei trovarmi già avvantaggiato?
Inoltre per favore da quali siti mi consigliate di scaricare buoni manuali?
Grazie a tutti
V@lerio

 Inoltre per favore da quali siti mi consigliate di scaricare buoni
manuali?
Se non sei super pratico di pascal ti consiglio la lettura di Essential
Pascal (se non sbaglio è questo il titolo ...) sul sito di Cantù
(
www.marcocantu.it
).
Per gli inizi con Delphi consiglio "Delphi 2" di Cantù ... ha un ottima
introduzione all'OOP e e alla gerarchia della VCL, solo che quest'ultimo non
si "scarica" ma si acquista.
Come testo gratuito c'è anche Teach Yourself Delphi 4 di Reisdorph ... lo
trovi su 
http://www.kaposnet.hu/books/tysdelphi4/
 ... Non è un gran libro,
ma è pur sempre gratuito.
Come testi molto buoni ho trovato i vari Unleashed di Calvert e Delphi 4 di
Pacheco/Texeira.
Per un approccio meno teorico e più improntato sugli esercizi puoi leggere
"Laboratorio di Delphi" di Barbini/Dessena ... premetto che non lo ho letto,
ma mi fido degli autori che lo hanno realizzato.
Infine per qualche articolo/tutorial ti rimando a 
www.programmazione.it
 ,
recentemente aggiornato!
Se ti interessa qualche altro ambiente/linguaggio ne dovrai parlare in
separata sede, o andrai completamente OT.
Ciao!
--
- Carlo -
c.b...@libero.it

 wrote in message
iEoq6.49853$Xj7.4...@news.infostrada.it...


di cominciare? C++ o Delphi?
Delphi e' un ambiente RAD che racchiude Object Pascal, un'evoluzione
del Pascal standard, molto vicina al Turbo Pascal.
Se conosci TP, non ti sara' troppo difficile ambientarti.
In generale la scelta di un linguaggio e' dettata dalla necessita' di
trattare determinate strutture dati.
Il C++ e' un linguaggio molto ricco (forse + di qualunque altro) e
complesso e se vuoi maggiori informazioni ti consiglio di visitare
it.comp.lang.c++.  I compilatori aderenti all'ultimo standard ISO
implementano una libreria standard capace di darti quasi tutto quello
che ti serve per la gestione di strutture dati complesse.
In ogni caso, io ritengo che una buona conoscenza del C (magari il C++
va bene solo se serve) sia fondamentale per un programmatore.

Siccome i numeri parlano meglio delle parole
Le parole parlano sicuramente meglio dei numeri.
Un consiglio che posso darti e' quello di mettere un guestbook
pubblico in cui gli utenti sono liberi di esprimere commenti e
consigli sul corso che sostieni.  
Potrebbe aiutarti a comprendere come ottimizzarlo. 
Sarebbe valido anche per i "passanti" per conoscerne il giudizio
collettivo.
Secondo me, guardare le statistiche di accesso al sito non dice nulla
sulla qualita' degli argomenti.  Un controllo gia' piu' indicativo
sarebbe quello sul numero di download di lezioni effettuati.
Una piccola critica veloce :
"Che significa "compilare"? 
Innanzitutto diciamo che la compilazione č un processo che traduce un
file sorgemte in un file eseguibile."
Non e' precisamente cosi'.
Compilare vuol dire, generalmente, tradurre un codice sorgente in
codice oggetto.  Quasi sempre, si puo' forzare la compilazione perche'
non generi alcun codice oggetto ed operi solo un controllo sintattico
e semantico del codice sorgente.  Altre volte si puo' volere come
output il solo listato assembly.  Nella maggior parte dei casi, non e'
detto che il codice oggetto sia direttamente eseguibile.  
Con Delphi questo aspetto e' meno evidente nella pratica, perche' per
"default" l'ambiente non crea codice intermedio da codice sorgente
(come invece avviene, normalmente, in C/C++), ma solo codice
eseguibile, pero' e' utile sapere che la  compilazione e il
collegamento (linking) sono due fasi ben distinte del processo di
traduzione da sorgente a eseguibile.  In realta', l'ambiente crea il
codice intermedio, ma lo mantiene invisibile per l'utente.
A conferma di questo, nelle "Project Options", nella sezione Linker,
e' possibile specificare se si vuole la generazione di DCU, OBJ (C o
C++).  Questa operazione e' fattibile anche da linea di comando,
mediante le opzioni J e JP di DCC32.EXE.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 Innanzitutto diciamo che la compilazione è un processo che traduce un


affidare i successivi affinamenti ad un momento più propizio.
Questione di punti di vista.  
E' anche vero che l'utente che utilizza l'ambiente vede una scritta
passare da "compiling" a "linking" e potrebbe chiedersi perche' cio'
accade (oltre a chiedersi, magari, che differenza c'e' tra "compile" e
"build").  Se sa a priori che le fasi sono due, anche se non sa
necessariamente cosa siano di preciso, si sa anche spiegare questo
cambiamento.  Comunque, ci tenevo a precisare questa differenza non
tanto per una critica nei confronti del tuo lavoro, quanto perche'
convinto che l'utente del tuo corso dovrebbe essere messo al corrente,
prima o dopo, dei dettagli.  Onestamente (prendila come una critica
amichevole) non amo molto i corsi che mi spiegano qualcosa e poi mi
strizzano l'occhio dicendo "ok, ti ho mentito, in realta' non e'
proprio cosi'...".
--
Andrea Laforgia (ICQ 87230455)



Ma io non gli sto mentendo... sto solo mettendo la cosa in modo più
semplice.
E non è, nemmeno, una mezza verità.
E comunque prima o poi i miei lettori dovranno prenderla un'iniziativa...
E la curiosità nella programmazione è fondamentale.
--
Andrea Raimondi
-------------------------------
Redattore corso di
Delphi di Software
Planet
-------------------------------
www.softwareplanet.net


 traduzione da sorgente a eseguibile.
Esempio ancora pių lampante lo si trova nei linguaggi che interpretano un
"codice intermedio".
Vedi Java, la compilazione di un sorgente Java porta alla creazione di un
file "Bytecode" che va poi interpretato per poter
essere "eseguito", di per se la compilazione non porta alla creazione di
alcun file eseguibile.


processo clorofilliano delle foglie?
No, perche' fanno parte dei dettagli da vedere in futuro.
Pero' di certo gli spiegherei perche' le foglie hanno bisogno della
luce per vivere.  Lui sa che dentro avviene qualche cosa, anche se non
sa di preciso che cos'e'.



Perfettamente d'accordo. Ribadisco, tuttavia, la mia posizione.
Io mi chiedo se mai vi è capitato di imbattervi in un concetto ostico tanto
da farvi preferire una spiegazione più leggera rispetto ad una più lunga e
contorta e soprattutto più diffcile da seguire.
Non vi crediate che son tutti geni. Certo, sicuramente non sono tutti
idioti, ma vorrete concedermi che ci sia tra loro qualcuno che un discorso
del genere non lo digerisce subito?
Che sia, magari, un'attimo troppo astratto per essere compreso facilmente
subito?
Ripeto, il non corretto formalismo è stato determinato da una scelta precisa
volta a rendere più semplice la comprensione di cose non esattamente facili.
Sapete cosa mi dicono le persone normali quando in Windows si genera un AV
per qualche ragione?
Dicono "Windows ha dato un errore". O cose simili.
Glielo dite voi che quell'errore è un AV generato dalla lettura di una
pagina di memoria non valida?( un esempio ).
E che fate, gli spiegate che cos'è una pagina di memoria?
E per spiegargli quello gli spiegate come si costruisce un modulo di
memoria?
E' quello il discorso.
E gli esempi possono essere tanti.
--
Andrea Raimondi
-------------------------------
Redattore corso di
Delphi di Software
Planet
-------------------------------
www.softwareplanet.net


pagina di memoria non valida?( un esempio ).
Di certo non mi metto a spiegare le tecniche di segmentazione e
paginazione adottate dal sistema operativo, ma ci terrei a precisare
che l'errore non e' generato da Windows, ma da un'operazione illecita
che ha compiuto qualche applicazione.  Punto.
Non c'e' bisogno di sapere in che modo l'applicazione ha compiuto
questa operazione illecita, ma solo che lo ha fatto e il sistema l'ha
bloccata per via dei meccanismi di protezione che esso adotta.
D'altronde, tieni presente che una cosa e' parlare con un utente, che
non ha bisogno di conoscere i dettagli, una cosa e' parlare con un
aspirante programmatore, che prima o poi coi dettagli ci dovra'
sbattere il muso.  Comunque, se sei convinto che alla fine del tuo
corso, il lettore sapra' esattamente come stanno le cose, nessuno ti
vieta di proseguire per la tua strada.
--
Andrea Laforgia (ICQ 87230455)


In linea di massima sono d'accordo con te, tuttavia deve essere chiaro se il
tuo lavoro e' nella sostanza quello di fare divulgazione/dare
un'infarinatura, o di preparare tecnici o pseudo tali che poi un giorno
magari faranno dell'informatica il proprio mestiere. In questo secondo caso
sarebbe opportuno un po' piu' di rigore formale, altrimenti va benissimo il
tuo approccio. Vedi, come esempio, le trasmissioni di medicina televisiva
che dicono niente di tutto e tutto di niente, senza alcun rigore
scientifico, ma che, in definitiva, per i profani, sono divertenti e utili.
Chiaramente vedere un migliaio di trasmissione di quel tipo non faranno mai
del telespettatore il 10% di un medico -vero-. :)
Ciao, Sandro

 E gli esempi possono essere tanti.
Siamo perfettamente d'accordo sulla semplificazione del discorso, puoi
sempre astrarre dai dettagli tecnici e fornire informazioni corrette.
Questo è quel che penso, non prenderla come una critica, è semplicemente un
consiglio.
Ciao e buon lavoro.


 linguaggi omi consigliate di cominciare? C++ o Delphi?
C++ e Delphi non sono sullo stesso "piano", eventualmente Delphi o C++Builder...
io direi entrambi, ma cominciare con Delphi, forse piu' semplice,
conoscendo il pascal, inoltre, sai gia' a buon punto...
Ciao,
Alan Solo

 Esempio ancora piů lampante lo si trova nei linguaggi che interpretano un


 che non esiste.
Processore, in fondo, e' un automa a stati finiti che elabora istruzioni e
dati. Che l'implementazione sia hardware o software non fa poi, dal punto di
vista logico, alcuna differenza.
Ciao, Sandro

 di cominciare? C++ o Delphi?
[SNIP]
Mah, io direi dipende... ^___^
Se per te la cosa più importante sono le prestazioni, la flessibilità ed il
controllo a "basso-livello" punta senz'altro sul C. Se invece reputi più
importante la velocità di sviluppo e la facilità di manutenzione del codice
senz'altro Delphi, comunque un sapiente MIX di tutti e due sarebbe il
massimo.
Davide.

 di cominciare? C++ o Delphi?
