|
|||||||
| Segna forums come letti |
| Follow The Rabbit ..dal webcomic alla filosofia, dal videogioco al coniglio.. Follow The Rabbit! |
![]() |
|
|
LinkBack | Strumenti discussione | Modalità visualizzazione |
|
|
#1 (permalink) |
|
S = K log(W)
|
Ok, sono di nuovo OT. Ma non mi smuoverete dall'opinione che nel "Vietato leggere" manca l'expertise di programmazione che questa sezione del forum può vantare.
![]() Allora, al momento sto seguendo un corso facoltativo di C++; anche l'acquisto di un testo da usare è facoltativo, ma io ho pensato che sarebbe comunque bene procurarsene uno. I testi giunti sino in finale sono i seguenti: ![]() Completo e particolareggiato, consigliato a chi comincia dalle basi e vuole un testo che gli insegni progressivamente il linguaggio. Un buon compromesso tra didattica e ricchezza di contenuti (tutto ciò per sentito dire, beninteso) ![]() Abbastanza simile al precedente, il prof non ha rintracciato grandi differenze fra i due, ma dalle recensioni di Amazon sembrerebbe ancora più didattico del precedente (a dispetto del nome). ![]() E infine, ovviamente, lui. La bibbia. Il testo sacro. Come il Kernighan-Ritchie per il C. Ci trovi tutto, ma può risultare difficile, specie per i neofiti. In sostanza, ho un dubbio amletico: prendere un testo con una filosofia "didattica", che funzioni come supplemento al corso, oppure lo Stroustrup, da tenere nello scaffale per referenze e consultazioni, contando solo, per i rudimenti del linguaggio, sulle slides del prof e le sessioni di laboratorio? Per dare informazioni adeguate, ho fatto due corsi di programmazione in C (base e medio livello), in cui abbiamo svolto quasi tutti i costrutti fondamentali del linguaggio, e analizzato anche problemi di una certa complessità; me la cavo bene con il LaTeX, anche se l'ho studiato sulla celeberrima "A not so short introduction to LaTeX2", e non su un vero manuale. Insomma, ho un'idea compiuta di cosa sia la programmazione procedurale. Di programmazione a oggetti, però, sono del tutto a digiuno, a parte le 5 lezioni svolte sinora; in tutta sincerità, per il momento il C++ mi pare il C anarchico ( ), ma mi sembra di capirci bene (tuttavia non posso fare a meno di vedere una classe come una struct un po' ingrassata).Se le slides possono essere utili per valutare il livello del corso (e quindi se valga la pena di prendere la bibbia), esse sono a questo indirizzo. Che mi consigliate? ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) Ultima modifica di Ghostkonrad : 31-03-2009 alle ore 01.41.15 |
|
|
|
|
|
#2 (permalink) |
|
Mietitore
|
Risposta standard da forum informatico: C++ è fa sfigati, imparati Ruby
![]() Ma questo, per fortuna, è un forum diverso. ![]() Dunque, non conosco i testi segnalati, ma credo che il nodo principale da sciogliere sia imparare a programmare a oggetti che, se vieni dal procedurale, è un po' un casino. Imparare poi su C++ per me è anche più pericoloso che in JAVA perché la tentazione è rimanere procedurali e fare poco di più, quando invece, per fare le cose per bene, bisogna proprio cambiare filosofia. Quindi, al di là di stare a recuperare la sintassi, che sai già e comunque può essere consultata con un rapido quick references da web, cerca il testo che più si occupi del "design" OO, piuttosto che del C++. Che comunque rimane un linguaggio da sfigati, vuoi un manuale di Ruby*? *Cymon è un obsoleto perlista, ma dire Ruby fa più scena ![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
#3 (permalink) |
|
S = K log(W)
|
Uhm, non l'avevo mai vista in questo modo, grazie.
![]() A questo punto è probabile che lo Stroustrup sia sconsigliabile, mi sembra più orientato alla "presentazione" del linguaggio C++ in particolare, più che alla programmazione OO in generale; comunque domani in laboratorio potrò prendere visione del volume, così mi faccio un idea. Per gli altri postati, chiederò quanta attenzione dedicano alla presentazione del paradigma OO. Vi farò sapere. ![]() In merito al Ruby, ne sarei onorato, ma imparare più di un linguaggio la volta mi pare eccessivo ; in compenso, da quando ho visto che nel Python i blocchi di istruzioni si delimitano solo con l'indentazione, ho deciso che una tale perversione merita attenzione e studio .Ma una cosa alla volta.
![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) Ultima modifica di Ghostkonrad : 31-03-2009 alle ore 01.54.26 |
|
|
|
|
|
#4 (permalink) |
|
Nowhere man
|
In base alla mia esperienza, ti consiglierei di tenerti lontano da questi tomi omnicomprensivi rilegati in pelle umana... io ho sempre finito per usarne il 2% (pagandoli però il 100%
). Meglio qualche risorsa su Internet.Se non ricordo male io ho usato Thinking in C++ per avere una prima infarinatura. Occhio che, nonostante il libro sia in vendita su Amazon, è anche scaricabile llberamente: non farti ingannare ![]() Aggiungo solo due caveat: (1) io la programmazione a oggetti la conoscevo già, quindi potrei non essere l'esempio più calzante, (2) sono quasi sicuro - ma non completamente - che il libro linkato sia effettivamente quello che ho usato
|
|
|
|
|
|
#5 (permalink) | |
|
Mietitore
|
Citazione:
o in biblioteca) un libro libro, cioè un tomo che racconti le cose in maniera organica. Una volta fatte le basi così (io di solito non arrivo mai all'ultimo capitolo di libri del genere) ci si può buttare su internet anche in cerca di frammenti di codice.
![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
|
#6 (permalink) | |
|
S = K log(W)
|
Citazione:
Comunque, devo dire che nel primo laboratorio è stato tutto abbastanza stentato; ho voluto seguire alla lettere le pratiche di "buona programmazione" (un header file e un source file separati per ogni classe, 4 classi in tutto), e alla fine, in due ore e mezzo, ho scritto solo gli headers. I miei colleghi che non hanno voluto essere così ligi, almeno hanno scritto un programma che compilasse. ![]() Comunque, tornando al testo (in merito a ciò condivido quanto detto da Cymon), credo proprio che lo Stroustrup sia escluso. A questo punto rimangono gli altri due e quello fornito da Simbul. ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) |
|
|
|
|
|
|
#7 (permalink) | ||
|
Mietitore
|
Citazione:
)Citazione:
![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
||
|
|
|
|
|
#8 (permalink) | |
|
S = K log(W)
|
Citazione:
![]() Naturalmente, una discussione nerd sulla buona programmazione sarebbe priva di un cuore, senza una striscia di xkcd sul tema:
![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) |
|
|
|
|
|
|
#9 (permalink) | ||
|
S = K log(W)
|
Ridiggo fuori questo topic per una piccola questione che mi attanaglia in questi giorni.
Mi è stato insegnato che, quando si fa l'overload di un operatore (ma vale anche per le funzioni in genere), sia sempre meglio restituire i risultati "by reference", e non "by value" dato che questo comporta risparmio di tempo macchina e memoria; ovviamente quando ciò è lecito. Ad esempo la dichiarazione di un operator= (incapsulato in una classe foo) la scriverei così: Citazione:
Citazione:
Se a filosofia del C++ è che le mie classi sono allo stesso livello dei tipi di sistema, perchè non mi dovrebe essere permesso di fare questo? Giusto per capire se è una questione ben risolta, o se la pratica invece varii da programmatore a programmatore. ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) |
||
|
|
|
|
|
#10 (permalink) | |
|
Mietitore
|
Citazione:
Uno degli strumenti più potenti e versatili della programmazione moderna, ma anche tra i più pericolosi. Questo perché tu lo sappia, per il resto non ho capito un'acca di quello che dici. Io sono un bravo bambino e queste porcherie non le ho mai trattate.
![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
|
#11 (permalink) | |
|
S = K log(W)
|
Citazione:
![]() Pizza Hut diventerebbe il fornitore di cibo ufficiale degli Apple Users. ![]() Strano comunque, fare l'overload degli operatori viene ritenuta una delle abilità che chi esce dal corso deve imprescindibilmente possedere, tanto è vero che quest'anno è stato trattato già alla seconda lezione. ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) Ultima modifica di Ghostkonrad : 17-03-2010 alle ore 17.15.47 |
|
|
|
|
|
|
#12 (permalink) |
|
???
|
Una discussione su C++, naturalmente, non è completa senza le C++ Frequently Questioned Answers... in cui ogni singola minima caratteristica di questo linguaggio viene criticata senza pietà con argomenti che suonano molto convincenti. Tanto per farti passare la voglia di impararlo.
|
|
|
|
|
|
#13 (permalink) | |
|
???
|
Citazione:
Si dice in giro che usare i cari vecchi operatori per fargli fare cose pervertite renda il codice molto difficile da leggere e da manutenere. Non per niente Perl incoraggia l'uso abbondante dell'overloading degli operatori, e anzi ci infila pure l'overloading delle VARIABILI, e perfino delle COSTANTI!!1! ![]() Se vuoi in perl puoi fare l'overloading pure di tua sorella... senza motivi particolari, solo per il gusto di piegare il linguaggio al tuo volere. Proprio l'esatto opposto della filosofia di Java, che considera tutti i programmatori come dei bimbi piccoli. Il C++ non ha una filosofia, è solo grosso e cattivo e puoi farci di tutto e di più, quindi bisognava metterci anche l'overloading degli operatori, sennò non era abbastanza "potente". Naturalmente FQA ne ha anche per lui. |
|
|
|
|
|
|
#14 (permalink) | |
|
Mietitore
|
Citazione:
Scritto qui via Perl.it - Il punto di riferimento del linguaggio Perl in Italia ![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
|
#15 (permalink) |
|
S = K log(W)
|
In C++ fondamentalmente si suppone che il programmatore che utilizzerà le tue classi sia un bimbo piccolo; o almeno così mi hanno insegnato.
![]() Se non sbaglio alla magistrale c'è anche un corso dove si insegna il Perl, ma alla fine il C la fa da padrone per i motivi succitati, e il C++ perchè è il linguaggio con cui viene sviluppato il software per tutti i grandi esperimenti scientifici moderni in fisica, in particolare fisica della particelle, dove se ne fa un largo uso (ad esempio al CERN). ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) |
|
|
|
|
|
#16 (permalink) | |
|
???
|
Citazione:
Un conto è essere tolleranti negli input e rigorosi negli output di quello che si fa, che è la buona regola di tutta l'Ingegneria (e in particolare della Vita). Un'altra cosa è scrivere 300 righe di codice inevitabilmente pieno di bug per fare l'overloading del + supponendo che chi userà le tue classi sia troppo idiota per comprendere .add(). Che poi, CHI userà mai le tue classi? Se non sbaglio voialtri siete scienziati, casomai siete VOI gli utenti. |
|
|
|
|
|
|
#17 (permalink) | |
|
Mietitore
|
Citazione:
![]() Quindi assolutamente inabili a produrre qualsiasi tipo di codice, come tutti gli utenti. ![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
|
#18 (permalink) |
|
S = K log(W)
|
In realtà dipende, se fai il teorico è molto probabile che scriverai programmi solo a tuo esclusivo uso e consumo, quindi si può anche tralasciare qualche pratica purista di buona programmazione (tipo "mai variabili globali"); se lavori in un gruppo sperimentale di 10 o più persone, sul tuo codice ci metteranno le mani anche tutti gli altri, e useranno le tue classi per ereditare da esse, scrivere nuove applicazioni, e tutto il solito Jazz.
Si suppone che debbano essere in grado di fare ciò senza neanche avere sottomano il source (solo con l'header e l'interfaccia), e quindi bisogna scrivere classi il più chiare e auto-esplicative possibile. Al CERN hanno ancora pezzi di codice in Fortran che stanno là dagli anni '80 e prima, tanto per dare l'idea. ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) Ultima modifica di Ghostkonrad : 19-03-2010 alle ore 21.31.16 |
|
|
|
|
|
#19 (permalink) | |
|
Mietitore
|
Citazione:
Autoesplicativo, spesso, è solo sinonimo di "non ho voglia di scrivere documentazione" o "non ho voglia di leggere documentazione" Il mondo bancario va tutt'oggi avanti col COBOL, quindi non c'è niente di cui stupirsi. ![]() Cymon
Follow the Rabbit! Il primo risultato di Google se cercate "adolescenti coreane"! ![]() FTR è su Facebook! Il mio libro, Milano Ultima Fermata |
|
|
|
|
|
|
#20 (permalink) |
|
S = K log(W)
|
Ri-ri uppo il topic per un'ultima questione (stavolta davvero l'ultima), dopodiche potremo lasciarlo ad avvizzire nei remoti fondi della sezione.
Mi accingo finalmente a sostenere il tanto agognato esame, tutto quel che ho da fare è finire il programmozzo su misura che il prof mi ha assegnato (siamo già a sei classi ) e poi presentarglielo con dettagli sulle scelte e sul design adottati. In teoria non è previsto che tale presentazione sia accompagnata da un class diagram in UML, ma di certo farne uno può aiutare a spuntare una più bella figura.Quindi quello che chiedo è se qualcuno mi può suggerire un software (ovviamente gratuito) per il disegno di questi diagrammi. ![]() And believe me I am still alive.
I'm doing science and I'm still alive. I fell FANTASTIC and I'm still alive. And when you're dying I'll be still alive. And when you're dead I'll be still alive. (GlaDOS, Portal) |
|
|
|
![]() |
| Bookmarks |
| Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
| Strumenti discussione | |
| Modalità visualizzazione | |
|
|