Mailing List del Fortunae LUG ============================= -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, Mar 13, 2002 at 10:40:54PM +0100, Romano Romano wrote: > > > Ritengo che il C sia molto semplice, quasi banale per certi versi ... certo > > se ritienti che conoscere il C sia conoscere tutte le funzioni messe a > > disposizioni ti posso assicurare che io il C non lo so per niente. > > Il semplice e' molto relativo, infatti: se devi farci cose semplici, come > dici tu puo' essere addirittura banale, se devi farci cose complicate, che > ti richiedono una conoscenza profonda, tu stesso riconosci che e' molto > complesso. Dipende da cosa intendi per "complicate"... se intendi... inventare un nuovo codec, affrontare difficili problemi matematici etc... bè si hai ragione... ma questo è dovuto non dalla difficoltà del linguaggio ma dalla limitatezza del programmatore, che non sarebbe in grado di svilupparli neanche con un qualsiasi altro linguaggio (senza parlare poi del fatto che non sarebbero performanti, ma lasciamo stare... stiamo parlando solo di facilità/difficoltà). Se invece per "complicate" intendi "lunghi"... bè si sicuramente il codice che devi scrivere in C per riuscire a fare la stessa cosa che fa un programmino in python... è mooolto più lungo. Però in questo caso non è un problema di difficoltà, ma un problema di tenere tutto in ordine. Certo... il programma in python è sicuramente più corto, quindi anche più facile da tenere sott'occhio, mentre quello in C è più lungo e più difficile da tenere "in ordine" se non ci si abitua fin da subito a seguire certe regole. (Scusate se mi sono riferito al python ma è il primo linguaggio che mi è venuto in mente... lungi da me fare un confronto tra i due linguaggi in modo così superficiale...) Per quanto riguarda la "conoscenza profonda"... a cosa ti riferisci? Cioè... a meno che non vuoi fare cose estreme (vedi il mio donkey: http://www.jkcal.org/simon/coding/donkey-20020101.tar.gz :)))) non hai bisogno di una "conoscenza profonda", dove per "conoscenza profonda" intendo non solo la conoscenza del C, ma anche del compilatore e di come di comporta per generare l'asm, integrandolo etc... Comunque il punto debole del C è anche il suo punto di forza... il fatto che ti costringe a scrivere tutto nei minimi dettagli può essere noioso, ma ti lascia la possibilità di fare le cose esattamente come vuoi. E i primi anni di "gavetta" che si fanno sono molto importanti... infatti i programmini semplici e stupidi che si fanno all'inizio... sono importantissimi! Non buttateli! Teneteli tutti... sicuramente prima o poi vi riservirà fare qualcosa di simile... un buon cut&paste e molte "noie" saranno evitate. E poi in chiusura fatemi togliere un dente... smettetela di parlare di C come se non fosse un linguaggio ad oggetti. La potenza del C sta proprio nel fatto che può essere usato come se fosse ad oggetti... il C++ non ha introdotto praticamente nulla di nuovo!!! L'unica cosa che al momento mi viene in mente è l'overloading (sovraccaricamento) dei parametri. Tutto il resto sono delle "illusioni"... le classi? nient'altro che delle strutture su cui possono lavorare solo le funzioni assegnate a tali strutture (metodi). Una dimostrazione di quello che sto dicendo? Oh bè l'esempio più lampante e recente che mi venga in mente sono le GTK! C strutturato come se fosse ad oggetti. http://developer.gnome.org/doc/API/gtk/index.html Insomma quasi tutte le novità del C++ sono SOLO nella notazione! E infine il C è un pò come UNIX: UNIX was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. - - Doug Gwyn (UNIX non è stato progettato per impedirti di fare cose stupide, perchè potrebbe anche impedirti di fare cose intelligenti.) Vabbè poi però torna in mente che la domanda l'ha fatta Legion che vuol fare il chitarrista death metal e suona insieme a quel biondino che mi sta tanto sulle scatole... quindi... si un linguaggio web-oriented va bene;)))))):PPPPPP!!!!!! - -- /* Federico 's1m0n' Simoncelli <f.simon@xxxxxxxx> http://www.jkcal.org/simon */ int main(){unsigned int g,h=0;while(++h){for(g=(h>1)?2:1;g< h/2+1&&h%g!=0;g++);if(g==h/2+1)printf("%i\n",h);}return 0;} -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE8klcE/ItriIBKan0RAr5XAKCcVszcq6lqvkfufye4GodIJHvinwCg3gqF UGJ7I55mLACuBcrUOkW6hqs= =idpF -----END PGP SIGNATURE----- -- "Una Slackware e' per sempre ..."