Bonjour,

> Bonjour,
>
> > Si tu veux débuter avec un langage objet, je te conseille le Java. C'est
un
> > langage ressemblant TRES fortement au C++, avec les pointeurs en moins,
et
> > donc les messages obscurs du type "segmentation fault" en moins ;o)
>
> A mes yeux, debuter par Java est une erreur. Sans vouloir etendre le
propos, je dirais que Java est une erreur. Java a vocation d'etre
commercial, par exemple, s'il n'y avait pas eu les types primitifs tel que
int or float il n'aurait jamais marche. Bref, mon avis est qu'avec Java on
n'a regresse, il suffit de voir le nombre de publications scientifiques
presentant des travaux identiques mais refaits en Java...

Je ne pense pas que Java soit une erreur si on le voit du point de vue de sa
portabilité. Il est clair que comme Java est un langage s'exécutant sur une
machine virtuelle, on n'a pas les mêmes performances (bien que des
processeur exécutant le bytecode en natif existent).

Mais Java a beaucoup d'avantages qu'on ne trouve pas en C++:
    - La sécurité du code : Les problèmes qu'on peut avoir sont une mauvaise
gestion des objets, mais on ne peut pas avoir de plantage système si la JVM
est bonne (à moins d'être dans un cas hyper particulier que je n'ai encore
jamais rencontré ;o))
    - Le fait que la programmation en Java ressemble à un assemblage de
pièces de légo, car c'est du pur objet : On ne peut pas utiliser un seul
pointeur là dedans. On ne manipule que des références...
    - La mémoire est gérée automatiquement. Dès qu'un objet n'est plus
utilisé par tout autre objet utilisé, il est détruit de la mémoire (cf
Garbage Collector). C++ ne sait pas faire ça en natif : Il faut programmer
un tel G.C. pour qu'à chaque point clé du code (retour de fonction, etc.),
le garbage collector analyse les objets utilisés et les élimine de la
mémoire... Tache très lourde. D'ailleurs, le Garbage Collector n'est pas
pour rien dans la différence de perf entre Java et C++ ;o)

>
> > Le Java (dont le SDK est téléchargeable sur java.sun.com) peut
s'apparenter
> > au Lego (c)(tm)(r)... C'est d'ailleurs avec le Java qu'on commence à
> > apprendre la programmation à l'ESSI.
>
> C'est egalement une erreur a mon avis. Les etudiants passent trop de temps
a comprendre le systeme de typage, sans apporter quelques chose d'important
a la fiabilite du code. Au contraire, cela enleve tres fortement de la
lisibilite. Pour s'en convaincre, le fameux paradigme qui dit qu'une methode
ne doit pas exceder 6 lignes est difficilement realisable en Java.

Et bien là, je suis tout à fait d'accord avec toi, car je considère qu'avant
d'avoir à se soucier des objets, il faudrait se soucier des algorithmes
qu'on implémente. J'ai d'ailleurs regretté, en ESSI1, que l'on ne nous
enseigne pas un simple langage structuré (Pascal ou C)... Car la notion
d'objet DOIT se distinguer de la notion d'algorithme. Or, à l'ESSI, nous
apprenons le Java pour lui même, mais on l'utilise aussi en cours d'algo...
:o(( D'où une difficulté potentielle d'apprentissage du Java & algo pour
quelqu'un qui n'aurait pas assez de recul.

> > Si tu ne désires que pratiquer la programmation pour elle même (du point
de
> > vue algorithmique donc), essaie le Turbo Pascal. Mais si tu veux te
plonger
> > dans la programmation objet, essaie le Java. C'est un langage hyper bien
> > documenté, et même mieux que la MSDN parfois ;o)
>
> Turbo pascal ou Scheme me semble tres approprie.

Euh le Turbo Pascal est bien. Mais pour avoir pratiqué le scheme, je peux
dire que ce n'est pas forcément évident pour quelqu'un qui s'initite à la
programmation, car Scheme est un langage dont la syntaxe ne s'approche pas
trop du langage parlé... Et les langages de programmation ont été créés pour
simplifier la communication entre le programmeur et la machine, en utilisant
une grammaire ** proche ** de la grammaire utilisée par un humain (anglo
saxon en l'occurence ;o)).

Conscient que ce mail risque de ne pas intéresser tout le monde, je vais
essayer de me retenir la prochaine fois ;o) Mais là je devais répondre, car
la discussion est intéressante ;o)

> Alexandre

@+

Tanguy.




Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à