Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2009, à 21:35

spock

Pascal Objet ou C++ [Résolu]

Bonjour à tous,

Je suis électronicien de formation (mais je ne travaille pas dans ce secteur)

J'ai commencé la prog quand j'étais gosse avec le basic (et aussi le logo:D)
Ado, j'ai appris le turbo pascal. J'ai toujours aimé ce langage : la syntaxe, la clarté, la structure...

Durant mes études en électronique j'ai appris les bases du C et un peu d'assembleur. Je n'ai jamais vaiment accroché au C, je n'aime pas trop sa syntaxe, la manière de coder, son coté un peu illisible lorqu'il s'agit du code de quelqu'un autre (le sien étant toujours très clair big_smile).

Récemment je me suis remis au pascal avec Delphi (donc pascal objet) avec un très bon tuto. Le problème c'est que je suis passé à linux (j'ai quand même garder XP en dual boot).

Sur le sdz, j'ai vu un tuto sur le C++. Je me suis dit que ca serait bien d'essayer ce langage.

Donc :
       
       le C++ est il difficile lorsqu'on a déja un peu touché à la prog ?

       Quels sont les avantages par rapport à pascal objet ?

Je précise quand même que c'est surtout pour faire mumuse en amateur, je ne compte pas dévelloper de gros projets...

Il y a t-il d'ailleurs un interet à la POO lorsqu'on se fout des gros projets ?

J'ai pensé aussi à l'AdA, mais comme le langage est peu populaire il y a très peu de tuto en francais...

Dernière modification par spock (Le 13/04/2009, à 14:44)

Hors ligne

#2 Le 03/04/2009, à 22:50

Lumin0u

Re : Pascal Objet ou C++ [Résolu]

beaucoup de gens s'accordent à dire que le C++ est plus facile pour débuter que le C, qu'on est plus vite productif, mais qu'il est plus difficile de très bien maitriser le C++ que le C (encore faut-il vouloir aller jusqu'au bout tongue).
j'ai jamais touché à du Delphi donc je peux pas comparer.
sinon je pense que l'oo est vraiment une meilleure approche que le simple impératif (à par pour les scripts pour lesquels il est peut-être trop encombrant de surcharger avec ça), le programme apparait en général comme plus clair, logique et structuré (je dis pas qu'on code "salement" en C par exemple).

Hors ligne

#3 Le 04/04/2009, à 02:09

Link31

Re : Pascal Objet ou C++ [Résolu]

spock a écrit :

le C++ est il difficile lorsqu'on a déja un peu touché à la prog ?

Le C++ est relativement difficile, mais quand on a déjà touché à la programmation, surtout objet, ça passe beaucoup mieux. Je pense que le Pascal Objet (Delphi) est une bonne expérience pour commencer le C++. Personnellement, je suis passé sans problème (en quelques mois) du Delphi au C++, en apprenant au passage les bases du C.

spock a écrit :

Quels sont les avantages par rapport à pascal objet ?

Le nombre et la qualité des bibliothèques disponibles. En gros, le C++ est beaucoup mieux supporté que le Pascal Objet sous GNU/Linux, on peut donc faire bien plus de choses, bien plus facilement.

spock a écrit :

Il y a t-il d'ailleurs un interet à la POO lorsqu'on se fous des gros projets ?

Ça dépend ce que tu appelles un gros projet. Pour un amateur seul, 5000 lignes de code peuvent déjà représenter un gros projet. La POO est très utile pour structurer un programme, et s'y retrouver plus facilement.

Hors ligne

#4 Le 04/04/2009, à 03:48

vogia

Re : Pascal Objet ou C++ [Résolu]

Lumin0u a écrit :

beaucoup de gens s'accordent à dire que le C++ est plus facile pour débuter que le C, qu'on est plus vite productif, mais qu'il est plus difficile de très bien maitriser le C++ que le C (encore faut-il vouloir aller jusqu'au bout tongue).
j'ai jamais touché à du Delphi donc je peux pas comparer.
sinon je pense que l'oo est vraiment une meilleure approche que le simple impératif (à par pour les scripts pour lesquels il est peut-être trop encombrant de surcharger avec ça), le programme apparait en général comme plus clair, logique et structuré (je dis pas qu'on code "salement" en C par exemple).

alors là NON !!!!
il faut d'abord apprendre les bases du C avant le C++ puisque le C++ est un prolongement du C.
tu apprends d'abords le C avec le bouquin de Kernighan et Ritchie (inventeurs du C), avant de t'atteler au C++ qui est un peu trop technique à mon gout. car plus un language est simple, plus il est puissant pour la programmation.

#5 Le 04/04/2009, à 03:56

Link31

Re : Pascal Objet ou C++ [Résolu]

vogia a écrit :

alors là NON !!!!
il faut d'abord apprendre les bases du C avant le C++ puisque le C++ est un prolongement du C.
tu apprends d'abords le C avec le bouquin de Kernighan et Ritchie (inventeurs du C), avant de t'atteler au C++

Certainement pas. C'est le meilleur moyen de coder n'importe comment en C++. On apprend les bases du C en même temps que le C++, on n'apprend pas le C avant d'apprendre le C++.

Dernière modification par Link31 (Le 04/04/2009, à 03:56)

Hors ligne

#6 Le 04/04/2009, à 12:45

saligo

Re : Pascal Objet ou C++ [Résolu]

Je suis de l'avis de Link31. Pour preuve, je connais des gens qui ont commencé le C++ sans connaître le C et qui sont devenus de bien meilleurs codeurs en C++ que moi. Avoir une expérience du C, solide ou non, et passer au C++ ensuite, oblige à se débarrasser de certains réflexes nuisibles. Il faut se surveiller soi-même et ça peut être crevant hmm

spock a écrit :

Je précise quand même que c'est surtout pour faire mumuse en amateur, je ne compte pas dévelloper de gros projets...
Il y a t-il d'ailleurs un interet à la POO lorsqu'on se fous des gros projets ?

Cela n'a rien à voir. D'ailleurs tu pourrais répondre toi-même à cette question. Si on te filait une lib, même bien faite, qui encapsule l'API win32 en pascal non OO, et qu'on te demande de coder une "petite" appli, tu regretterais bien vite Delphi crois-moi...

Tu n'as qu'une licence Delphi ou bien une licence RAD Studio? Parce que dans ces conditions tu pourrais utiliser C++Builder: vu que tu connais déjà la VCL, tu pourrais t'appuyer sur cet acquis pour faire une transition en douceur.

spock a écrit :

Ado, j'ai appris le turbo pascal. J'ai toujours aimé ce langage : la syntaxe, la clarté, la structure [..] Je n'ai jamais vraiment accroché au C, je n'aime pas trop sa syntaxe

Moi aussi j'aimais bien le pascal jadis. Maintenant, quand je dois reprendre un projet en Delphi, je trouve la syntaxe pascal extrêmement lourde et pénible roll

spock a écrit :

le C++ est il difficile lorsqu'on a déja un peu touché à la prog ?

En essayant de rester objectif: oui, le C++ est un langage difficile. Depuis plusieurs années de pratique régulière du C++ (code et reprise de code) je continue à apprendre de nouvelles subtilités.
Maintenant, ça dépend des ambitions. Les gens qui ont la responsabilité de construire une hiérarchie complète (exemples: VCL, QT...) c'est sûr qu'ils ont intérêt à avoir, entre autres compétences, une connaissance poussée du langage.

Mais comme tu veux "faire mumuse" je te rassure: pour l'utilisation de ces libs, l'expertise en C++ n'est pas indispensable et il y a moyen, pour quelqu'un de curieux, de produire assez rapidement du code fiable et facile à maintenir wink

#7 Le 04/04/2009, à 13:00

Mathieu147

Re : Pascal Objet ou C++ [Résolu]

J'ai fait un peu du Delphi il y a longtemps, puis je suis passé au Java, et j'ai appris le C et maintenant le C++.

Concernant l'orienté-objet, je trouve que c'est un paradigme vraiment intéressant et surtout très puissant pour programmer beaucoup plus facilement et rapidement. À part des cas spécifiques (tout petits projets, drivers, etc) l'impératif je trouve ça dépassé.


Delphi je trouve ça vraiment lourd comme syntaxe, rien que de devoir écrire begin à la place de mettre une accolade je trouve ça pénible.

Le C j'ai jamais vraiment aimé. Peut-être parce que j'ai du l'apprendre très vite pour vite faire un projet pour les cours (j'ai fait une passerelle pour faire des études d'informatiques, donc j'ai commencé les cours en 2ème année en n'ayant pas fait le cours de première où on apprend le C, puis en troisième j'ai du faire un compilateur en C et ça a été la galère).

Depuis le début de l'année j'apprends le C++ pour un autre cours, et je dois dire que c'est vachement mieux que le C, mais quand-même compliqué. Pointeurs, destructeurs, surcharges d'opérateurs et tout le tralala...

Ça fait maintenant plus ou moins 4 ans que j'ai commencé à faire du Java, et là je dois avouer que j'aime beaucoup smile C'est comme le C++, mais en plus simple. On s'emmerde pas avec des pointeurs, on n'a jamais d'erreur de segmentation... En plus Netbeans est un éditeur super puissant et facile à installer sous Linux. On peut facilement faire des interfaces graphiques et il existe plein de librairies.

Personnellement, je vois vraiment Java comme une simplification de C++. En plus ça fait du code multi plateformes smile Pour mon stage je dois développer une application sous Windows, ça fait des mois que je suis dessus, ça devient assez gros. Un jour je veux tester sous Ubuntu pour voir si ça marche, et ben oui, ça marche, avec les widgets natifs de l'OS. Du premier coup, sans changer le code et même sans recompiler.

Avant que vous ne commenciez à troller: oui C++ est un langage dont les exécutables sont particulièrement rapide, mais non, Java n'est pas lent, je peux vous le garantir, il suffit de regarder Netbeans par exemple qui est assez réactif malgré que ce soit un IDE énorme avec des milliards de fonctionnalités, et qui est programmé en Java.


Si j'étais toi, j'apprendrais plutôt le Java que le C++.


Pffff…

Hors ligne

#8 Le 04/04/2009, à 14:03

rniamo

Re : Pascal Objet ou C++ [Résolu]

java s'est amélioré mais le c++ reste plus rapide ... et surtout plus complet ... parce que java ça va 5 minutes pour des projet "standalone" mais c'est limité ... par contre JEE est nikel ... Comme d'habitude tout dépend de ce qu'on veut faire.

Pour fait sa petite appli dans don coin java ou C/C++ avec gtk/qt etc c'est trés bien.

Note tout de même que pour java et le c++ mieux vaut regarder un cours d'uml avant sinon tu va faire n'importe quoi (j'ai bien connu wink).


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#9 Le 04/04/2009, à 16:17

Mathieu147

Re : Pascal Objet ou C++ [Résolu]

rniamo a écrit :

java s'est amélioré mais le c++ reste plus rapide ... et surtout plus complet ... parce que java ça va 5 minutes pour des projet "standalone" mais c'est limité ... par contre JEE est nikel ... Comme d'habitude tout dépend de ce qu'on veut faire.

Pour fait sa petite appli dans don coin java ou C/C++ avec gtk/qt etc c'est trés bien.

Là dessus, je ne suis pas d'accord, Java est extrêmement complet, il n'y a qu'a regarder les API officielles de Sun. Et quand on rajoute les autres librairies gratuites ou même libres qu'on trouve sur le net, on peut vraiment faire tout ce qu'on veut. Et si on tient compte des payantes alors là c'est carrément la fête mais personnellement je n'en n'ai jamais eu besoin.

Question performances, il faut relativiser. Effectivement si on fait des «bêtes trucs» comme trier un tableau, C++ ira plus vite. Mais dans une application «normale» la différence n'est pas visible. Et cette différence est rattrapée justement par le fait qu'on apprend Java plus vite, et qu'on va plus vite pour coder avec moins d'erreurs puisque c'est plus simple.

rniamo a écrit :

Note tout de même que pour java et le c++ mieux vaut regarder un cours d'uml avant sinon tu va faire n'importe quoi (j'ai bien connu wink).

Héhéhé, ça par contre je suis d'accord. C'est en ayant mon premier cours d'UML que je me suis rendu compte de certains trucs que je trouvais super et qu'en fait c'était un peu pourri big_smile Mais de manière générale, je m'en tirais pas trop mal parce que j'ai appris Java dans le cadre d'un cours nommé «programmation orientée-objet» donc j'avais les bases dès le début smile


Pffff…

Hors ligne

#10 Le 04/04/2009, à 16:28

Luc Hermitte

Re : Pascal Objet ou C++ [Résolu]

J'ai aussi fait du BASIC, puis pendant longtemps du Turbo Pascal (-> 6.0 ; j'y avais découvert la POO) il y a bien longtemps. Puis j'ai vu plein d'autres choses (Ada, Eiffel, Prolog, lisp, bref...), et aujourd'hui je fais essentiellement du C++.

Le C++ est un langage très riche et complexe, mais pas forcément difficile quand on le prend par le bon bout. Bien que infiniment plus complexe que le C, il est paradoxalement plus simple de coder en C++, quand on ne perd pas du temps à vouloir faire semblant de savoir gérer la mémoire (les exceptions changent beaucoup de choses à la donne, et le RAII apporte des solutions dont le C est dépourvu -- des fois que vous vouliez troller sur ce point ...).

Pour moi, l'énorme avantage du C++ sur les dérivés directs du Pascal, c'est la généricité via template et en particulier la bibliothèque standard du C++. Nous avons ainsi une robustesse sur le typage bien plus aboutie. On retrouve aussi la généricité en Ada et en Eiffel. Ainsi qu'en Java sous une forme abâtardie (elle ne fonctionne pas sur les types numériques natifs).

Maintenant, Delphi, sous Windows, dispose d'une richesse difficilement égalée pour réaliser simplement des applications fenêtrées.
Ada est un langage que je trouve bien plus intéressant que le Pascal (et fils), mais côté richesse autour du langage lui-même, c'est un peu le néant.
C++ est entre les deux. Tout dépend des frameworks que l'on décide d'utiliser.
Et j'ai cru comprendre que c'est également variable pour le Java (entre eclipse et netbeans, et les 3/4 frameworks graphiques il y a des inégalités).

Au sujet de l'Ada, inutile qu'il y ait 50000 milles tutos sur le langage. Il en suffit d'un bon -- et je soupçonne que les bons sont assez nombreux en proportion.
C++, c'est le contraire. Il y a peut-être beaucoup de ressources, mais elles sont majoritairement mauvaises -- disons qu'il faut savoir lire l'anglais et ne pas écouter les premiers venus qui manquent de recul.


Pour l'OO, même sur des petits projets, c'est parfois appréciable quand on veut pouvoir substituer un type d'objet à un autre dans un traitement.

Dernière modification par Luc Hermitte (Le 04/04/2009, à 16:35)

Hors ligne

#11 Le 04/04/2009, à 17:58

Mathieu147

Re : Pascal Objet ou C++ [Résolu]

Luc Hermitte a écrit :

Maintenant, Delphi, sous Windows, dispose d'une richesse difficilement égalée pour réaliser simplement des applications fenêtrées.

C'est là que tu te trompes, essaie une fois le designer d'interfaces graphiques de Netbeans, ça vaut le détour... Ceci dit je n'ai plus touché à Delphi depuis la version 7 (il me semble) donc ça date un peu, donc je peux me tromper.

Luc Hermitte a écrit :

Pour moi, l'énorme avantage du C++ sur les dérivés directs du Pascal, c'est la généricité via template et en particulier la bibliothèque standard du C++. Nous avons ainsi une robustesse sur le typage bien plus aboutie. On retrouve aussi la généricité en Ada et en Eiffel. Ainsi qu'en Java sous une forme abâtardie (elle ne fonctionne pas sur les types numériques natifs).

Oui les generics en Java ne sont pas aussi aboutis que les templates en C++.

Je trouve qu'au niveau des «fonctionnalités», le C++ est plus riche que Java, comme avec les templates, mais aussi les surcharges d'opérateurs et l'héritage multiple, mais toutes ces fonctionnalités supplémentaires sont contrebalancées par un langage plus complexe et où il est plus facile de faire des erreurs. De plus, tout ça peut être «contourné». L'héritage multiple pose des problèmes et peut être réalisé grâce à des interfaces correctement définies, et la surcharge des opérateurs ne sert à rien.


Pffff…

Hors ligne

#12 Le 04/04/2009, à 18:10

Link31

Re : Pascal Objet ou C++ [Résolu]

Mathieu147 a écrit :

la surcharge des opérateurs ne sert à rien.

Mais bien sûr.

add_matrix(x, add_matrix(a, multiply_matrix(b, c)));

Dernière modification par Link31 (Le 04/04/2009, à 18:10)

Hors ligne

#13 Le 04/04/2009, à 19:00

Luc Hermitte

Re : Pascal Objet ou C++ [Résolu]

Link, tu as oublié qu'il n'y a pas de fonctions libres en Java. Il faut soit rajouter la classe englobante devant, soit mettre un objet devant. Il y a des gens qui aiment...

Pour l'héritage multiple, les interfaces du Java ne savent pas compenser nativement pour supporter la programmation par contrat.

La première difficulté du C++ est de tomber sur un bon prof/cours. La seconde est de mûrir pour arrêter de faire n'importe quoi juste parce que la syntaxe le permet. C'est comme les DP: il y a des recettes qui ont du sens et qui marchent, et il faut s'y tenir. Donc en effet, la maitrise demande du temps.

Dernière modification par Luc Hermitte (Le 04/04/2009, à 19:02)

Hors ligne

#14 Le 04/04/2009, à 19:28

philarmonie

Re : Pascal Objet ou C++ [Résolu]

Link31 a écrit :
Mathieu147 a écrit :

la surcharge des opérateurs ne sert à rien.

Mais bien sûr.

add_matrix(x, add_matrix(a, multiply_matrix(b, c)));

big_smile

J'utilise pas le C++ ni un langage qui utilise la surcharge d'opérateur (ça je le regrette) mais pour dire que ça ne sert à rien faut pas être un algébriste.
Surtout qu'en POO des structures algébriques ça peut se définir à la pelle (et pas que sur des matrices, je sais pas on peut définir une structure de groupe sur des images ou des sons par exemple) et pouvoir utiliser la surcharge d'opérateur implique évidemment une plus grande facilité d'écriture et de lecture du code.
Mathieu, t'as pas mangé assez d'arithmétique ou d'algèbre pour percevoir l'intérêt de ces notations?

#15 Le 04/04/2009, à 20:08

spock

Re : Pascal Objet ou C++ [Résolu]

Pour éviter le troll :
     
        Je ne cherche pas à savoir quelle est le meilleur langage mais le meilleur langage pour moi, petit être mortel...

Je veux juste avoir un rapport ludique avec la prog pas un usage professionnel (je ne suis pas informaticien).
Concernant Delphi, j'ai juste une version de base. De plus je ne tiens pas dans le futur à garder XP en dual boot.
Le C++ me semble assez compliqué à vous lire, en tout cas pour moi. Il est vrai cependant que pour l'utiliser il ne faut peut-être pas forcément le maitriser dans toute sa complexité.

Le java ne serait-il pas un bon compromis entre le Pascal et le C++ ? Parce que, après tout, la vitesse d'execution n'est pas un critère pour moi.

Quel est donc l'intérêt de Java par rapport à Delphi ? (Pascal est plus rapide mais ce n'est pas déterminant). Le nombre de lib ?

Hors ligne

#16 Le 04/04/2009, à 20:42

Arminius

Re : Pascal Objet ou C++ [Résolu]

spock a écrit :

Je suis un peu comme toi, j'ai adoré le Delphi par sa structure, mais tout le monde le décrie sad. J'ai fait de très belles application avec, ne sentant jamais le besoin d'un autre language.
J'ai été "forcé" d'apprendre le C++. On retrouve les mêmes concepts que dans tous les languages, mais ne t'attends pas à retrouver la belle structure du Pascal.

Mais bon, tout le monde prends du C++, ce qui force tout le monde à le prendre.
Et malheureusement Kylix, c'est bien proche de Delphi mais un peu instable, et Lazarus c'est même pire...

Pour le bon tuto, c'était celui de 3DBuzz? tongue

Dernière modification par Arminius (Le 04/04/2009, à 20:43)

Hors ligne

#17 Le 04/04/2009, à 22:37

spock

Re : Pascal Objet ou C++ [Résolu]

Je suis un peu comme toi, j'ai adoré le Delphi par sa structure, mais tout le monde le décrie

oui, le Pascal n'a jamais été aimé et ça depuis le début.
Je suppose que la plupart des dévelopeurs n'aiment pas utiliser un code "strict", ils préfèrent une syntaxe souple qui s'adapte à leurs manières de penser, en ça le C a toujours été adoré.

C'est pour cette raison que l'ADA me branche (ou Eiffel), il s'inspire du Pascal dans cet esprit. Quand un code ADA passe la compilation, il y a de fortes chances que l'application soit "sûr". Pour cette raison, il a souvent été utilisé dans l'industrie. Le gros problème c'est que le monde de l'ADA est très limité sur le net (surtout que je ne parle pas l'anglais).

Et malheureusement Kylix, c'est bien proche de Delphi mais un peu instable, et Lazarus c'est même pire...

A ce point là ? hmm

Pour le bon tuto, c'était celui de 3DBuzz?

le tuto que je trouve très bien est celui de developpez.com (frédéric beaulieu) : on passe en douceur du Pascal classique au Pascal Objet.

Hors ligne

#18 Le 04/04/2009, à 22:43

Link31

Re : Pascal Objet ou C++ [Résolu]

spock a écrit :

Quand un code ADA passe la compilation, il y a de fortes chances que l'application soit "sûr".

Le C++ aussi, à moins de vraiment chercher les problèmes avec des casts et des pointeurs. Le plus difficile reste de passer l'étape de compilation elle-même wink

Bien sûr, la syntaxe n'est pas aussi claire et propre que le Pascal, mais on s'y fait vite. Il y a bien des gens qui codent en Perl... roll

spock a écrit :

Et malheureusement Kylix, c'est bien proche de Delphi mais un peu instable, et Lazarus c'est même pire...

A ce point là ? hmm

Oui. De plus, Kylix n'est plus développé depuis quelques années.

Hors ligne

#19 Le 04/04/2009, à 23:26

romario

Re : Pascal Objet ou C++ [Résolu]

Bonsoir,

j'ai beaucoup travaillé en Ada (industrie aéronautique et ferroviaire) car c'est un langage très adapté aux contraintes temps réels, en gros pas un langage de bidouilleurs : il faut écrire les choses clairement et explicitement.

J'ai fait pas mal de Java et de C++, ce sont des langages très puissants mais qui demandent quand même une bonne dose d'apprentissage avant de bien les maîtriser.

Je pense spock que tu devrais regarder en fonction de tes besoins/envies. Si tu veux faire un peu de programmation ludique, je te conseillerais plutôt de t'orienter vers des langages comme le python. C'est un langage objet très puissant avec une syntaxe clair. En plus il existe de nombreuses bibliothèques de fonctions et de nombreux tutos bien faits. Sans compter que c'est un langage assez utilisé sous Linux pour développer des applications graphiques rapidement. Bref avec ce type de langage tu te feras plaisir plus rapidement et tu ne seras pas limité plus tard par les possibilités du langage !

Hors ligne

#20 Le 04/04/2009, à 23:30

romario

Re : Pascal Objet ou C++ [Résolu]

Link31 a écrit :
spock a écrit :

Quand un code ADA passe la compilation, il y a de fortes chances que l'application soit "sûr".

Le C++ aussi, à moins de vraiment chercher les problèmes avec des casts et des pointeurs. Le plus difficile reste de passer l'étape de compilation elle-même wink

euh.... alors ça je n'en suis vraiment pas convaincu !!
pour avoir fait du développement et de la maintenance dans les deux langages, je t'assure qu'une compilation en Ada est beaucoup plus restrictive qu'une compilation en C++

Hors ligne

#21 Le 04/04/2009, à 23:54

Link31

Re : Pascal Objet ou C++ [Résolu]

romario a écrit :

euh.... alors ça je n'en suis vraiment pas convaincu !!
pour avoir fait du développement et de la maintenance dans les deux langages, je t'assure qu'une compilation en Ada est beaucoup plus restrictive qu'une compilation en C++

Tu as probablement maintenu du "C avec des classes", comme on en voit trop souvent.

Du "vrai" code C++ (pas du vrai/faux C), s'il n'utilise pas de pointeurs et si les bibliothèques utilisées ne sont pas particulièrement boguées (la STL, Boost...) est presque assuré de fonctionner s'il passe la compilation.

Hors ligne

#22 Le 05/04/2009, à 00:03

romario

Re : Pascal Objet ou C++ [Résolu]

Link31 a écrit :
romario a écrit :

euh.... alors ça je n'en suis vraiment pas convaincu !!
pour avoir fait du développement et de la maintenance dans les deux langages, je t'assure qu'une compilation en Ada est beaucoup plus restrictive qu'une compilation en C++

Tu as probablement maintenu du "C avec des classes", comme on en voit trop souvent.

Du "vrai" code C++ (pas du vrai/faux C), s'il n'utilise pas de pointeurs et si les bibliothèques utilisées ne sont pas particulièrement boguées (la STL, Boost...) est presque assuré de fonctionner s'il passe la compilation.

nan nan... du C++ de chez vrai de vrai wink
mais avec du code qui utilise des pointeurs, on est en C++ quand même lol !!

un exemple qui me vient en tête : un gars utilisait une fonction sans argument et bien dans un appel il a oublié les parenthèses... le code compile et tout (ben oui : sans parenthèse le compilo renvoie l'adresse de la fonction bien sûr !), à l'exécution évidemment ça ne marche pas, débuggeur et compagnie pour localiser la méthode fautive... et bien il aura fallu plusieurs relecture avant de s'apercevoir que les parenthèses manquaient !! sacrément vicieux comme problème !!

Hors ligne

#23 Le 05/04/2009, à 09:15

Mathieu147

Re : Pascal Objet ou C++ [Résolu]

Link31 a écrit :
Mathieu147 a écrit :

la surcharge des opérateurs ne sert à rien.

Mais bien sûr.

add_matrix(x, add_matrix(a, multiply_matrix(b, c)));

Quand je dis que ça ne sert à rien, je veux dire qu'on peut toujours (dans absolument 100% des cas), s'en passer. Et parfois ça peut dérouter.

Par exemple, en Java quand tu fais

String s1 = "azerty";
String s2 = "azerty";
boolean eq1 = (s1 == s2);
boolean eq2 = (s1.equals(s2));

et bien eq1 sera faux, parce que s1 et s2 sont deux objets différents. Par contre eq2 sera vrai parce que les chaines sont identiques.

Par contre en C++ dans le code équivalent eq1 serait vrai parce que dans la classe string l'opérateur == est surchargé, ce qui n'est pas naturel puisque ça change le comportement par défaut. Enfin, moi je trouve.

Luc Hermitte a écrit :

Link, tu as oublié qu'il n'y a pas de fonctions libres en Java. Il faut soit rajouter la classe englobante devant, soit mettre un objet devant. Il y a des gens qui aiment...

Par exemple moi. Ça c'est du «vrai» orient-objet. On entend souvent dire que la qualité d'un programme est inversement proportionnelle au nombre de ses variables globales. C'est un peu pareil pour les fonctions, non?

Luc Hermitte a écrit :

Pour l'héritage multiple, les interfaces du Java ne savent pas compenser nativement pour supporter la programmation par contrat.

L'héritage multiple pose plusieurs problèmes, si plusieurs classes mères fournissent fournissent la même méthode, le compilateur quand il compile, il met quoi dans ses vtable? Et on a toujours moyen de s'en sortir autrement, et pas nécessairement avec des gros bidouillages bien sales.

Luc Hermitte a écrit :

La première difficulté du C++ est de tomber sur un bon prof/cours.

Preuve que le langage est certes puissant, mais inutilement complexe.

philarmonie a écrit :

J'utilise pas le C++ ni un langage qui utilise la surcharge d'opérateur (ça je le regrette) mais pour dire que ça ne sert à rien faut pas être un algébriste.

Ben non, juste informaticien, quoi...

philarmonie a écrit :

Surtout qu'en POO des structures algébriques ça peut se définir à la pelle (et pas que sur des matrices, je sais pas on peut définir une structure de groupe sur des images ou des sons par exemple) et pouvoir utiliser la surcharge d'opérateur implique évidemment une plus grande facilité d'écriture et de lecture du code.
Mathieu, t'as pas mangé assez d'arithmétique ou d'algèbre pour percevoir l'intérêt de ces notations?

Non moi je n'en ai jamais ressenti le besoin. Et puis c'est pas clair cette surcharge, déjà parce qu'on peut pas ajouter des opérateurs. Quand t'as une classe qui représente un vecteur par exemple, et que tu surcharges l'opérateur de multiplication, ça veut dire quoi? Produit scalaire ou vectoriel?

Vous n'arriverez pas à m'enlever de la tête que la surcharge des opérateurs, c'est fait uniquement pour être plus simple mais c'est bien raté, ça complique plus qu'autre chose.

spock a écrit :

Pour éviter le troll

Nous?? Troller?? Jamais de la vie! yikes Mais enfin, où vas-tu chercher tout ça? big_smile big_smile
troll_2.jpg

spock a écrit :

Quel est donc l'intérêt de Java par rapport à Delphi ? (Pascal est plus rapide mais ce n'est pas déterminant). Le nombre de lib ?

Déjà, oui, les librairies. Et puis le Java est simple et clair. Delphi aussi, mais Java au moins est multiplateformes par exemple.


Pffff…

Hors ligne

#24 Le 05/04/2009, à 09:16

Lumin0u

Re : Pascal Objet ou C++ [Résolu]

Luc Hermitte a écrit :

Link, tu as oublié qu'il n'y a pas de fonctions libres en Java. Il faut soit rajouter la classe englobante devant, soit mettre un objet devant. Il y a des gens qui aiment...

Et pour des méthodes private? ou bien il vaut mieux commencer systématiquement par this.?

Hors ligne

#25 Le 05/04/2009, à 09:27

Mathieu147

Re : Pascal Objet ou C++ [Résolu]

Lumin0u a écrit :
Luc Hermitte a écrit :

Link, tu as oublié qu'il n'y a pas de fonctions libres en Java. Il faut soit rajouter la classe englobante devant, soit mettre un objet devant. Il y a des gens qui aiment...

Et pour des méthodes private? ou bien il vaut mieux commencer systématiquement par this.?

Si, pour les méthodes de la classe tu peux directement faire

variable = méthode(arguments);

bien que

variable = this.méthode(arguments);

soit correct aussi (mais inutilement plus lourd).

Mais il n'y a pas de fonctions qui ne font partie d'aucune classe comme on peut le faire en C++.


Pffff…

Hors ligne