OVH Cloud OVH Cloud

Pédagogie : C++ ou Java ?

133 réponses
Avatar
Gilles
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les "bonnes
habitudes" à enseigner en TP, ce qui m'incite à poster ce message.

Voici la situation : je suis enseignant en IUT - DUT informatique (Bac+2 à
vocation professionnelle). Jusqu'à maintenant la programmation était
enseignée au travers du C++. Il est fortement question de changer ce choix
dans notre IUT pour remplacer C++ par Java (actuellement un enseignement de
Java existe, mais en seconde année seulement, donc avec déjà une pratique du
C++ et les bases de la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par rapport à
Java) pour enseigner la POO à des débutants complets en programmation ? (et
pour qui, pour reprendre une remarque apparue dans le fil auquel je faisais
référence, il n'y a plus en majorité "de passion ou de réelle envie de faire
de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des informaticiens
"Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai une
tendance à préférer le C++ (par mon parcours et par mon activité quotidienne
en recherche), mais je n'aurai aucune réticence à faire pratiquer Java si je
suis convaincu que c'est un meilleur choix pour mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le débat que
nous devrions avoir au sein de l'équipe pédagogique.

Gilles

10 réponses

Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 17:36:54 +0100, Wykaaa :

La notion d'applet est devenue presque marginale.



N'a-t-elle pas toujours été marginale ?
Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 17:08:36 +0100, (Pascal J.
Bourguignon):

Mais comme l'amélioration de Ruby signifie la
restauration de ses origines Lisp, autant le faire disparaitre et
utiliser directement Lisp.



Et, si j'ai bien compris le message des lispiens, comme tout est basé
sur Lisp, autant oublier tous les autres langages et programmer
uniquement en Lisp.
Avatar
Wykaaa
Marc Espie a écrit :
In article <498c6726$0$4070$,
Wykaaa wrote:
Fabien LE LEZ a écrit :
On Fri, 6 Feb 2009 08:45:15 +0000 (UTC), Marc Boyer
:

Mais Java sera aussi un bon support pour tout ce qui est
programmation WEB.


Ah ben pourquoi ?

Java est certes utilisé dans quelques intranets, principalement parce
que ce langage semble adapté à de très grosses équipes.

La programmation web "généraliste", c'est plutôt PHP/Python/Ruby côté
serveur, et HTML/Javascript (voire Flash/Flex) côté client.



Je suis d'accord qu'il faut corriger l'image de Java comme étant un
langage pour le Web. Aujourd'hui le code Java que je vois est surtout
pour des grosses applications industrielles ou militaires ou côté
serveur pour le Web.
La notion d'applet est devenue presque marginale.



Euh...

d'une part, le web, c'est surtout les serveurs aujourd'hui (enfin, c'est la
ou est une grosse partie du boulot interessant et paye), voire les
webservices (l'usine a gaz qui fait plaisir au manager qui a l'illusion de
voir enfin les composants pluggables qu'on lui promet depuis 15 ans et qui
lui simplifieraient sa vie de manager qui voit l'informatique comme une pile
de legos qui puent).



Bon après Java tu en as après les Web Services. C'est ton point de vue.
Je suis d'accord qu'il y a des abus mais j'ai vu quand même de très
belles choses avec les Web Services. Là encore, la plupart des
informaticiens qui se lancent dans ce domaine n'ont pas les compétences
requises d'où le côté usine à gaz...

Ensuite, il traine a droite a gauche "la suite", a savoir des compilateurs
d'interface graphiques -> javascript, histoire de finalement unifier le
modele d'evenements et de faire du ajax propre. Il y en a depuis C++, il y
en a dans des langages fonctionnels (je prend les devants avant que JP
Bourguignon nous la ramene avec son couplet habituel sur lisp), et il y en
a evidemment depuis Java, chez google entre autres.

Donc oui, les applets tournant en byte-code java, c'est abandonne. Mais
pas forcement les applications web entierement programmees en java.



Je n'ai jamais dit ça Marc. J'ai même dis qu'on le trouvait surtout côté
serveur. Il n'y a pas de désaccord sur ce point entre nous.
Avatar
Wykaaa
Fabien LE LEZ a écrit :
On Fri, 06 Feb 2009 17:36:54 +0100, Wykaaa :

La notion d'applet est devenue presque marginale.



N'a-t-elle pas toujours été marginale ?



Non. Du moins il ne me semble pas que c'était marginal vers la fin des
années 90, du moins en % de l'utilisation de Java, c'est cela que je
voulais dire. Effectivement en % du Web, les applets ont toujours été
marginaux.
Avatar
Wykaaa
Marc Espie a écrit :
In article <498c6a57$0$18372$,
Wykaaa wrote:
Voir :
http://www.journaldunet.com/developpeur/tutoriel/dht/061211-javascript-ecmascript-implementations.shtml

Si maintenant Microsoft et IE (avec JScript) ont la nostalgie des Active
X, c'est leur problème...



Tu es serieux ? Tu realises que dans la plupart des contextes reels, il est
totalement impossible d'ignorer IE ?



Les gens ont toujours aimé prendre des bâtons pour se faire battre ;-)
Donne des exemples SVP.

Les militaires ont banni Windows (sont en train de le faire, plus
exactement) des postes de commandement pour des raisons de sécurité...
La marine américaine également depuis qu'un missile est parti tout seul
suite à un bug d'un serveur Windows !
Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 18:25:20 +0100, Wykaaa :

Donne des exemples SVP.



Je peux te donner un exemple de taille : le web.

Quand on s'adresse à un public hétérogène qu'on ne contrôle pas, on
tombe toujours sur les mêmes statistiques : un tiers des visiteurs
utilise Firefox ; un peu moins d'un tiers utilise IE6, et un peu plus
d'un tiers utilise IE7. Le reste est négligeable.

Les militaires ont banni Windows



En pratique, la marine nationale utilise toujours des logiciels
spécifiques Windows (via Wine peut-être ?), au moins sur des postes
non sensibles.
Avatar
espie
In article ,
Fabien LE LEZ wrote:
On Fri, 06 Feb 2009 17:08:36 +0100, (Pascal J.
Bourguignon):

Mais comme l'amélioration de Ruby signifie la
restauration de ses origines Lisp, autant le faire disparaitre et
utiliser directement Lisp.



Et, si j'ai bien compris le message des lispiens, comme tout est basé
sur Lisp, autant oublier tous les autres langages et programmer
uniquement en Lisp.



Je ne suis pas sur PJ Bourguignon soit representatif...
Avatar
espie
In article <498c70e9$0$9408$,
Wykaaa wrote:
Ensuite, il traine a droite a gauche "la suite", a savoir des compilateurs
d'interface graphiques -> javascript, histoire de finalement unifier le
modele d'evenements et de faire du ajax propre. Il y en a depuis C++, il y
en a dans des langages fonctionnels (je prend les devants avant que JP
Bourguignon nous la ramene avec son couplet habituel sur lisp), et il y en
a evidemment depuis Java, chez google entre autres.

Donc oui, les applets tournant en byte-code java, c'est abandonne. Mais
pas forcement les applications web entierement programmees en java.





Je n'ai jamais dit ça Marc. J'ai même dis qu'on le trouvait surtout côté
serveur. Il n'y a pas de désaccord sur ce point entre nous.



Ah, je crois que tu as lu un peu en diagonale.

Je disais que plein de langages, dont java, revenaient du cote client, sous
forme de code source. Le langage cible etant ces jours-ci... javascript.
Avatar
Marc Boyer
On 2009-02-06, Wykaaa wrote:
Marc Boyer a écrit :
On 2009-02-06, Fabien LE LEZ wrote:
On Fri, 6 Feb 2009 15:04:42 +0000 (UTC), Marc Boyer
:

Voui, mais c'est encore d'autres langages.


Justement. Je crois que la caractéristique principale de la
programmation web, c'est qu'on jongle avec plusieurs langages.



Oui, et une caractéristique importante des IUT, c'est que
tu as 18 mois pour caser toute ta formation. Et quand on
te donne royalement 10h de TP pour faire toutes tes manips
WEB, ben, tu t'amuses pas à en plus leur donner un
nouveau langage pour illustrer tes trucs.



Donc dans un contexte "IUT", il faut prendre Java comme premier langage ?
Ca permet d'apprendre la programmation de façon assez correcte, de
montrer du développement dans un contexte Web et de faire des
applications (à mon avis aussi fiables qu'avec du C++).
Est-ce ton avis ?



Non, pas forcément.
Je pense que Java est incontournable, et qu'il est extrèmement
polyvalent. Après, il faut montrer plusieurs langages dans une
formation d'informaticien. Où les mettre, comment, ça se discute.
Je pense qu'il faut garder un langage proche de la machine,
AMHA C ou C++.
Je pense qu'il faut présenter un langage fonctionnel: Lisp,
Caml.
Après, je trouve qu'on ne présente en POO que les modèles
objet à base de classe, et qu'illustrer les autres approches
peut être un plus. Est-ce que ça passe dans un volume global ?
Je ne sais pas.

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Wykaaa
Marc Espie a écrit :
In article <498c70e9$0$9408$,
Wykaaa wrote:
Ensuite, il traine a droite a gauche "la suite", a savoir des compilateurs
d'interface graphiques -> javascript, histoire de finalement unifier le
modele d'evenements et de faire du ajax propre. Il y en a depuis C++, il y
en a dans des langages fonctionnels (je prend les devants avant que JP
Bourguignon nous la ramene avec son couplet habituel sur lisp), et il y en
a evidemment depuis Java, chez google entre autres.

Donc oui, les applets tournant en byte-code java, c'est abandonne. Mais
pas forcement les applications web entierement programmees en java.





Je n'ai jamais dit ça Marc. J'ai même dis qu'on le trouvait surtout côté
serveur. Il n'y a pas de désaccord sur ce point entre nous.



Ah, je crois que tu as lu un peu en diagonale.

Je disais que plein de langages, dont java, revenaient du cote client, sous
forme de code source. Le langage cible etant ces jours-ci... javascript.



Je n'avais pas compris que quand tu parlais des applications web
entierement programmees en java, tu parlais d'applications côté client.
Au temps pour moi !

On est au moins d'accord sur la disparition des applets et sur
Javascript ;-)