[sanniolug] Re: C e Java

  • From: Massimiliano Mirra <mmirra@xxxxxxxxx>
  • To: sanniolug@xxxxxxxxxxxxx
  • Date: Wed, 03 Sep 2003 04:35:17 +0200

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

Other related posts: