Bonjour à tous,
Juste pour dire, j'ai déjà programmé du C, du C++, du Java et aussi du Pascal Objet (Delphi quoi!)
Je ne sais plus qui l'a dit dans le forum, mais effectivement, je pense que le C et le C++ n'ont pas vocation à faire la même chose.
Dans un premier temps, je pense qu'il serait bon de classifier un peu, le C est un langage d'assez bas niveau, en effet, on peut accéder aux espaces mémoire, bidouiller les bits, on fait des allocations de mémoire manuellement (malloc), ce qui fait que c'est de bas niveau.
Ensuite, nous avons le C++, alors lui il est un peu plus dur à classer du fait qu'on puisse faire du C dans un environnement de C++, il est à la fois bas niveau, et haut niveau, on peut programmer sans se soucier de l'allocation de la mémoire, ou des bits, par contre, on a toujours à faire des delete pour les objets.
Ensuite, je mettrais le Pascal objet, puisqu'il permet aussi des opérations sur la mémoire ou sur les bits.
Enfin, le Java, qui est un langage pur objet, et qui apporte une couche d'abstraction supplémentaire.
Alors à quoi ça sert, cette classification? Je pense que c'est une bonne base pour dire que chaque langage à ses avantages et ses inconvénients, et donc ne sert pas dans les mêmes cas.
Perso, j'ai utilisé le C pour faire du temps réel, et je pense que c'est pour le moment le meilleur langage pour ça. En temps réel, la gestion de la mémoire est fondamental, il faut être le plus près possible des composants pour ça.
Ensuite, le C++ et le Pascal Objet (aussi le Java, mais j'en dit un mot plus loin) permettent une abstraction non négligeable et apporte aussi bien d'autre avantages. A quoi sert l'abstraction? Elle sert autant que le passage des cartes perforées à l'assembleur, ou de l'assembleur au C... Pourquoi je vais me faire chier à gérer la mémoire, c'est pas à ça que sert le programme que j'écris! Et en plus, les avantages qu'apporte l'héritage et l'encapsulation, sont très important!
A l'attention de ceux qui ont toujours programmer en C, vous rendez vous compte de l'avantage de pouvoir écrire :
Button b = new Button("OK");
Ou même l'exemple des dessins!
Enfin, un bref mot sur le Java, qui effectivement apporte les même avancées que le C++, mais sans confusion. Avec du Java on fait de l'objet, c'est tout. En plus, le Java apporte l'avantage de s'abstraire de la machine sur laquelle le programme s'exécute.
Saviez vous que les MAC et les PC ne mettent pas les bits de poids fort du même coté?
Pour terminer, je dirai comme quelqu'un l'a déjà dit, avec tout on peut faire tout! Un jour nous sommes passé des cartes perforées à l'assembleur, puis au C, puis au C++, puis.... on verra!
Si vous ne faîtes pas d'application critique au niveau gestion de la mémoire, je vous conseille de suivre votre temps, passez au C++.
Si vous avez besoin de faire tourner votre appli sur toutes les plateformes, faîtes du Java.
Et puis si vous voulez faire votre appli, perso, vous avez le choix entre Java, C++ et Delphi!
Merci pour votre attention!
Des remarques de votre part me feraît plaisir!
A+
Partager