Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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
Wykaaa
Fabien LE LEZ a écrit :
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.



Et alors ? Si on utilise une programmation standard qui ne fait pas
appel à des technologies spécifiquement Microsoft, il y a peu de problèmes.
Je rappelle, en tant que vieux routier d'Internet (j'utilisais le mail
et Usenet en 1985 via la chaîne Transpac-Thymnet-Arpanet) que le Net a
été construit avec l'idée d'être indépendant des plates formes, puisqu'à
la fin des années 70, il n'y avait que des systèmes propriétaires
incompatibles entre eux.
Il est donc aujourd'hui totalement aberrant de vouloir faire un site Web
qui ne marcherait qu'avec un seul navigateur (je veux dire IE).
Pourtant, en France, il semble que nombre de Webmestres n'aient pas
encore compris cela !

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.



Désolé mais je ne connais que les postes... sensibles !
Avatar
Wykaaa
Marc Boyer a écrit :
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.



Je suis d'accord que dans un cursus informatique, il faudrait, pour les
langages, faire ce que tu dis. Mais il y a tout le reste : réseaux,
bases de données,systèmes d'exploitation (les concepts),etc.
Je croyais que le temps était non extensible ;-)

Pour répondre à ta question, je pense que non...
Avatar
espie
In article <498c9eb9$0$4053$,
Wykaaa wrote:
Et alors ? Si on utilise une programmation standard qui ne fait pas
appel à des technologies spécifiquement Microsoft, il y a peu de problèmes.
Je rappelle, en tant que vieux routier d'Internet (j'utilisais le mail
et Usenet en 1985 via la chaîne Transpac-Thymnet-Arpanet) que le Net a
été construit avec l'idée d'être indépendant des plates formes, puisqu'à
la fin des années 70, il n'y avait que des systèmes propriétaires
incompatibles entre eux.



Il est donc aujourd'hui totalement aberrant de vouloir faire un site Web
qui ne marcherait qu'avec un seul navigateur (je veux dire IE).
Pourtant, en France, il semble que nombre de Webmestres n'aient pas
encore compris cela !



Blablabla...

desole, mais si tu te renseignes un peu sur la programmation web cote
client, tu decouvriras qu'il y a nombre de problemes dans IE6 et IE7 qui
sont contournables en utilisant les hacks crades appropries...

et si tu t'adresses au vulgus pecum, tu ne peux malheureusement pas ignorer
les 2/3 de personnes qui utilisent un IE.

C'est effectivement une situation deplorable, avec pas mal de combats a mener,
mais qui sont quand meme surtout des combats d'arriere-garde pour encore
quelques annees....
Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 21:34:01 +0100, Wykaaa :

Si on utilise une programmation standard qui ne fait pas
appel à des technologies spécifiquement Microsoft, il y a peu de problèmes.



Sauf si on veut que le site fonctionne sous IE aussi.

Effectivement, si tu ponds un site en respectant les standards, tu
rencontreras assez peu de problèmes avec les navigateurs normaux
(Firefox, Safari, Chromium, Opera, etc.)

En revanche, IE6 et IE7 ont une quantité phénoménale de bugs (et en
plus, ce ne sont pas forcément les mêmes), qu'on doit contourner par
de sales hacks.

En d'autres termes, un code HTML ressemble souvent à :

/* code propre, standard, pour les navigateurs normaux */
<!--[if IE 6]> /* bidouillages spécifiques IE 6 */ <![endif]-->
<!--[if IE 7]> /* bidouillages spécifiques IE 7 */ <![endif]-->
<!--[if IE]> /* bidouillages pour IE 6+7 */ <![endif]-->

Et dire que dans quelques mois, il va falloir se taper :
- les bugs spécifiques à IE6
- les bugs spécifiques à IE7
- les bugs spécifiques à IE8
- les bugs spécifiques à IE6+IE7
- les bugs spécifiques à IE6+IE8 (si, si, je t'assure, ils en
sont capables chez MS... :-( )
- les bugs spécifiques à IE7+IE8
- les bugs spécifiques à IE6+IE7+IE8

Il est donc aujourd'hui totalement aberrant de vouloir faire un site Web
qui ne marcherait qu'avec un seul navigateur (je veux dire IE).



Ça s'est malheureusement beaucoup fait, notamment sur des intranets :
des applications web internes qui ne fonctionnent que sous IE6, et qui
condamnent donc leurs utilisateurs à rester sous IE6. C'est d'ailleurs
une des grosses raisons pour lesquelles IE6, aussi merdique qu'il
soit, reste encore très utilisé. L'autre étant bien sûr l'échec
retentissant de Windows Vista.
Avatar
Fabien LE LEZ
On Fri, 6 Feb 2009 20:01:15 +0000 (UTC), Marc Boyer :

Je pense que Java est incontournable



Si on veut un job dans une grosse entreprise. J'ai toujours l'image
(peut-être erronnée ?) du programmeur Java comme un minuscule rouage
dans une énorme machine, un peu comme un type qui travaille sur une
chaîne de montage chez Renault.

Je pense qu'il faut garder un langage proche de la machine,
AMHA C ou C++.



C est effectivement proche de la machine.

C++ l'est aussi un peu, mais on ne s'en rend pas vraiment compte à
l'usage -- sauf quand on en a besoin.

(Indépendamment de ça, il est vrai qu'il vaut mieux savoir lire le C,
afin d'avoir accès à tout le code déjà écrit. Savoir l'écrire est bien
plus difficile, et moins utile.)

Je pense qu'il faut présenter un langage fonctionnel: Lisp,
Caml.



Ou Haskell. Il a l'air à la mode en ce moment. Va falloir que je m'y
mette un jour...
(À noter que les bases d'Haskell et les bases de la méta-programmation
avec les templates en C++, sont assez proches.)

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.



Yep. En plus, ça peut permettre de rappeler qu'il y a (au moins)
autant de modèles OO que de langages dits OO.
Avatar
Fabien LE LEZ
J'ai écrit :
Par ailleurs, Javascript ne tourne pas forcément dans un navigateur.



Ça peut même être un système d'exploitation :

http://code.google.com/p/es-operating-system/wiki/UsingES

[Note : ECMAScript est le nom "officiel" de Javascript.]
Avatar
Wykaaa
Fabien LE LEZ a écrit :
On Fri, 06 Feb 2009 21:34:01 +0100, Wykaaa :

Si on utilise une programmation standard qui ne fait pas
appel à des technologies spécifiquement Microsoft, il y a peu de problèmes.



Sauf si on veut que le site fonctionne sous IE aussi.

Effectivement, si tu ponds un site en respectant les standards, tu
rencontreras assez peu de problèmes avec les navigateurs normaux
(Firefox, Safari, Chromium, Opera, etc.)

En revanche, IE6 et IE7 ont une quantité phénoménale de bugs (et en
plus, ce ne sont pas forcément les mêmes), qu'on doit contourner par
de sales hacks.

En d'autres termes, un code HTML ressemble souvent à :

/* code propre, standard, pour les navigateurs normaux */
<!--[if IE 6]> /* bidouillages spécifiques IE 6 */ <![endif]-->
<!--[if IE 7]> /* bidouillages spécifiques IE 7 */ <![endif]-->
<!--[if IE]> /* bidouillages pour IE 6+7 */ <![endif]-->

Et dire que dans quelques mois, il va falloir se taper :
- les bugs spécifiques à IE6
- les bugs spécifiques à IE7
- les bugs spécifiques à IE8
- les bugs spécifiques à IE6+IE7
- les bugs spécifiques à IE6+IE8 (si, si, je t'assure, ils en
sont capables chez MS... :-( )
- les bugs spécifiques à IE7+IE8
- les bugs spécifiques à IE6+IE7+IE8



Mais tout le monde ne se donne pas la peine de faire ça, en plus...

Il est donc aujourd'hui totalement aberrant de vouloir faire un site Web
qui ne marcherait qu'avec un seul navigateur (je veux dire IE).



Ça s'est malheureusement beaucoup fait, notamment sur des intranets :
des applications web internes qui ne fonctionnent que sous IE6, et qui
condamnent donc leurs utilisateurs à rester sous IE6. C'est d'ailleurs
une des grosses raisons pour lesquelles IE6, aussi merdique qu'il
soit, reste encore très utilisé. L'autre étant bien sûr l'échec
retentissant de Windows Vista.




Je ne comprendrai jamais les entreprises qui continuent à utiliser IE,
qui plus est pour leur Intranet mais ça ne résoud pas le problème...

J'ai quand même un certain nombre de clients qui ont basculé sur FF.
Avatar
Wykaaa
Marc Espie a écrit :
In article <498c9eb9$0$4053$,
Wykaaa wrote:
Et alors ? Si on utilise une programmation standard qui ne fait pas
appel à des technologies spécifiquement Microsoft, il y a peu de problèmes.
Je rappelle, en tant que vieux routier d'Internet (j'utilisais le mail
et Usenet en 1985 via la chaîne Transpac-Thymnet-Arpanet) que le Net a
été construit avec l'idée d'être indépendant des plates formes, puisqu'à
la fin des années 70, il n'y avait que des systèmes propriétaires
incompatibles entre eux.



Il est donc aujourd'hui totalement aberrant de vouloir faire un site Web
qui ne marcherait qu'avec un seul navigateur (je veux dire IE).
Pourtant, en France, il semble que nombre de Webmestres n'aient pas
encore compris cela !



Blablabla...

desole, mais si tu te renseignes un peu sur la programmation web cote
client, tu decouvriras qu'il y a nombre de problemes dans IE6 et IE7 qui
sont contournables en utilisant les hacks crades appropries...



Oui je sais. C'est d'une tristesse à mourir :-(

et si tu t'adresses au vulgus pecum, tu ne peux malheureusement pas ignorer
les 2/3 de personnes qui utilisent un IE.

C'est effectivement une situation deplorable, avec pas mal de combats a mener,
mais qui sont quand meme surtout des combats d'arriere-garde pour encore
quelques annees....



Ce n'est pas vraiment un combat d'arrière garde puisque l'UE envisage
d'imposer à Microsoft, en Europe, de livrer plusieurs navigateurs avec
ses systèmes.
Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 23:44:41 +0100, Wykaaa :

Mais tout le monde ne se donne pas la peine de faire ça, en plus...



Ceux qui ont le choix (site perso par exemple) ont depuis longtemps
abandonné IE6, voire IE tout court.

Je ne comprendrai jamais les entreprises qui continuent à utiliser IE,



Inertie.
Avatar
Fabien LE LEZ
On Fri, 06 Feb 2009 23:46:37 +0100, Wykaaa :

Ce n'est pas vraiment un combat d'arrière garde puisque l'UE envisage
d'imposer à Microsoft, en Europe, de livrer plusieurs navigateurs avec
ses systèmes.



Ah ouais ?

Je ne sais pas si cette idée est implémentable, ni si elle peut
changer effectivement la part de marché d'IE.

Mais de toute façon, ça ne changera pas le fait qu'il va falloir se
farcir les utilisateurs actuels d'IE6 et IE7 pendant encore un bon
moment.