barrav <barrav@xxxxxxxxx> writes: > Oibò, imbastiamo un'altra guerra di religione.. ;) > Prima c'era Vi<-->Emacs, ora C<-->Java. No, neanche per sogno. Il C è il C. Per accedere al sistema, per guadagnare cicli di clock, e rimanendo indipendenti dalla piattaforma, non ha rivali. Il Java... be', è il Java. Non fa nulla che non si possa fare (più in fretta, con risultato migliore e con programmatore più contento) in altri linguaggi. E' anche un cattivo linguaggio per imparare il paradigma a oggetti, come lo è il C++ (e guarda caso sono proprio questi i linguaggi che l'università propina per parlare di programmazione a oggetti...). > Innanzi tutto: avevo la pia illusione che con il C si potessero fare > acrobazie. Se ne possono fare, puoi arrivar vicino a dire al computer ``Fai un doppio salto mortale e poi beviti una limonata'', ma ha il suo prezzo. > "Ma che ci faccio con il vecchio Pascal", pensavo... > > In realtà, il vecchio Pascal è ancora ottimo. E' un po' meno > potente del C, ma è un linguaggio "strutturato a blocchi", mentre il C è > solo "strutturato". > Ergo: in Pascal è possibile definire una funzione dentro un'altra > funzione, con grande giovamento per le regole di visibilità. > Quindi: il programma è più semplice e lineare. Già, ma impone con la forza la sua visione al programmatore. Non per niente il Jargon file lo classifica tra i ``Bondage & Discipline Programming Languages''. :-) Ciò non toglie possa essere usato e che sia stato usato proficuamente (Delphi/Object Pascal mi ha accompagnato per buona parte del mio apprendistato Object Oriented). > Per avere qualcosa di simile, bisogna usare i "namespace" del C++. > In pratica, attualmente uso il C++ con programmazione procedurale (cioè: > buttando a mare gli oggetti e usandolo come se fosse semplice C con > namespace). Buffo. Pensa che io sto programmando a oggetti in C liscio. ;-) > A proposito: per il C++ mi sono divorato un altro mattone da un migliaio di > pagine. > Per ora, però, gli oggetti sono un ingombro. E lo resteranno, se il linguaggio resterà il C++. Non basta un'elica e un galleggiante per fare di un'auto una nave. > Sono ottimi per programmi di grandi dimensioni, per il lavoro d'equipe, per > GUI e giochi... ma per i programmi di puro calcolo (stile "ingegneria") è > meglio la programmazione procedurale. Non dare un giudizio ora, aspetta di provare un po' di programmazione a oggetti vera (Smalltalk, Ruby, o qualche sistema a oggetti in Scheme/LISP se proprio vuoi scegliere la via del non ritorno ;-)). > Veniamo al Java. ;-) > Il Java è fantastico. > Ma è lento. > E' un linguaggio interpretato... ma allora mi hanno suggerito Phyton. > Molto più veloce (e fra l'altro, dovrebbe offrire le regole di visibilità del > Pascal) Python ha un orientamento agli oggetti ancora più pezzottato del Java (e ce ne vuole) ed è più interpretato del Java, perché non è bytecode interpretato, ma testo interpretato, quindi anche generalmente più lento del Java. Inoltre impone l'indentazione ed è ancora più B&D del Pascal... Ma anche qui, ciò non toglie che sia stato usato con profitto. Vantaggio che Python condivide con i LISP e con Ruby è di avere un ambiente di sviluppo interattivo. Non si può spiegare la differenza che questo comporta: bisogna vederlo con i propri ocche e sentirlo con la propria pelle per crederci. > Però, per ora, non me la sento di leggermi un altro mattone su un qualsivoglia > altro linguaggio... ;)) > > P.S. per inciso: imparare il C mi ha fatto comprendere meglio linux. > I sistemi UNIX e il C vanno davvero a braccetto!!!! Verissimo^2! -- Tip | Scarica interi mesi di articoli da Google con SuckGoog, of | http://fly.to/demokrito. Poi aggregali in una mailbox per leggerli con the | mutt entrando nella directory dove sono salvati e lanciando i comandi: day | $ for i in *; do echo "From dummy Sat Jul 06 19:10:00 1974" >>mbox; \ 0025| cat $i >>mbox; done; mutt -f mbox