Salut chers forumeurs. Ne critiquez pas ce topic du genre "pourquoi tu en fais un topic" etc., si vous n´êtes pas concernés ne postez pas
.
Je tenais à vous dire que si vous avez encore des doutes sur le choix d´un langage de programmation informatique puissant voire vraiment très puissant (je n´éxagère pas vu tout ce qu´on peut faire avec), je vous conseille vivement le C++. En effet je n´ai pas encore argumenté, ça vient ^^. Qui dit langage puissant dit malheureusement langage de bas niveau, donc plus difficile. En effet c´est plus dur, normal ça se rapproche du fonctionnement de votre ordinateur, mais on a beaucoup plus de possibilité qu´un langage de haut niveau qui lui est certainement plus simple, mais il offre beaucoup moins de possibilités.
J´insiste aussi sur le C++, le C est tout aussi puissant (quoique... :p ) mais il y a de nouvelles choses qui rendent le langage un tantinet plus simple, et ensuite ces nouvelles choses lui permettent d´être encore plus puissant que le C
.
Voilà, donc si vous hésitez toujours sur le choix d´un langage de prog, je vous conseille le C++. Et qui sait, peut être que ce topic va éviter de nouveaux topics du genre "quel langage" etc...
Moi j´aimerais bien savoir ce que les gens entendent par "plus puissant", "plus de possibilités", etc etc qu´un language simplifié.
Au pif je prends le python
et bien avec on peut faire des jeux 2d (j´en fais), des éditeurs de jeux à la rpg maker, des mmorpgs 3d (Herdelia), des applis genre client ftp, aspirateur de sites, gestionnaire de fichiers, éditeur graphique, client bitorrent, visionneuse genre acdsee, etc etc alors bon le c++ en quoi il est plus puissant que ça ? Pour faires des applis de ouf qu´ils utilisent à la NASA ? La vache, ça touche au moins 0.000001 % des gens qui passent par ici
Ou alors je veux bien qu´on m´explique ce que veut dire "plus puissant" et "plus de possibilités".
En effet le python est de bas niveau, utilise la programmation orientée objet etc.
Le python par ailleurs n´est qu´un langage interprété et non compilé, mais ce n´est qu´un détail
.
Par plus puissant et plus de possibilités j´entends vaguement plus d´outils (tel que les objets ou autres) donc plus de liberté tandis que certains langages utilisent déjà des choses plus globales ce qui offrent moins de liberté dans le code donc moins de possibilité.
Et pour toutes tes applis que tu as cité le C++ peut en faire autant. Regarde déjà ce forum est programmé en C, donc des applis on peut en faire...
Salut,
comme le dit _Xaar, en quoi c´est plus ou moins puissant qu´un autre ? Parce que dans ton post, sauf ton respect, tu enonces des faits (l´aspect objet, la "hauteur du langage") qui n´ont rien à voir avec la pretendue puissance du langage.
Au dela des aspects intrinseques du langage, il y a aussi la communauté qui tourne autour, la portabilité (si c´est un argument dans un projet) etc ... qui vont conditionner la puissance du langage (toujours en partant du fait que cela existe). Je pense qu´on peut dire que C++ est plus puissant que le BrainFuck ou le WhiteSpace, mais apres par rapport aux langages de .Net, au java, python, ruby, et autres, je n´aurai pas la pretention de dire lequel es le puissant.
Bref, AMHA, il faut cesser avec cette idée que bas niveau = mieux (qui est l´ennemi du bien =p). De toutes facons pour un developpeur debutant ou moyen, la difference de performance entre deux langages est vite noyé dans les bourdes de conception ou de codage qu´il fera. Tout va dependre de ce que tu as besoin de faire, et un semblant de gout personnel qui t´orienteront quand tu choisiras ton langage. Perso, un programme windows, je prefere 100x le faire sur DotNet, car sur ce point la, la techno WinForms (bientot WPF) est vraiment un tres serieux atout et pourtant C# c´est pas vraiment du bas niveau, par contre si j´avais à faire un programme extremement demandant en ressources (genre un jeu), je choisirai sans doute le C++, etant moins "usine à gaz" que C#, ca permet, j´imagine, de gagner pas mal en perf (enfin sur ce point c´est une idée personnelle).
Donc la morale, (et la est la vrai question) choisis le langage le plus adapté à ce que tu veux faire, et celui qui te plait, tu as bien le temps de voir par la suite les caracteristiques des autres et d´en changer.
PS : Python, je ne pense pas que ce soit tres bas niveau non plus =p
Le C++ est un langage de haut niveau...
l´assembleur est un langage de bas niveau
Le seul réel interet du C++ est dans les applications hautes performances. Il est bas niveau et donc on controle tous (ou presque) les petits détails de l´implémentation. Et du fait on peut faire du code hautement efficace avec.
La question est: a t´on vraiment besoin de code hautement performant. La réponse dépend fortement de ce que l´on fait. Pour faire un pong 2D sans aucun effet, Ca manque relativement d´interet. Pour faire un moteur graphique 3D avec des effets "moderne", ca a déjà beaucoup plus d´interet. Une fois que le moteur est écrit, écrire l´editeur de niveau en C++ n´est pas forcement utile. Bon ca l´est probablement un peu parceque l´on peut reutiliser du code. Mais Dans le fond, il serait tres bien dnas un autre langage aussi.
De la meme facon, il y a pas mal d´application qui ont un coeur dans un langage et les haute couches dans un autre.
Il faut juste etre conscient de ce que l´on fait et du niveau d´optimisation dont on a besoin.
Il y a des cas a part. J´ai grandit avec le C++, je ne me vois donc pas vraiment ecrire une grosse application dans un autre langage, mais c´est un probleme de competence et probablement de flemmardise, je n´ai pas envie (ni meme le besoin) d´apprendre un autre langage de programmation impératif orienté objet alors que j´en maitrise avec lequel je suis parfaitement efficace.
Quelques rappels. Le langage de programmation peut avoir un impact important sur les temps d´executions. et un programme en C++ est generalement plus rapide qu´un programme en JAVA a algorithme equivalent! Ce que je veux dire ici est que l´impact du langage de programmation est assez mineur sur les performances, il faut surtout etre conscient des algorithme que l´on déploye et de l´architecture de nos logiciels. Savoir qu´est ce que nous coute tel ou tel degré d´abstraction.
Un dernier point, je ne cautionne pas par ce message les applications qui surconsomme des ressources de calcul et qui sont une plaie pour l´informatique et le réchauffement climatique. J´ai déjà vu des lode runner ne pas fonctionner sur mon P3 800 parceque trop mal ecrit (algorithmiquement et en terme de langage)
TrunksTheBoss je ne suis pas totalement d´accord.
Certes le c++ est un langage très puissant.
Mais pas toujours.
Je connais bon nombre d´entreprises ayant entrepris le dev de leur appli principale en C++ juste pour "faire serieux" et parce que les types étaient formés dessus.
Ils se sont ramassés car dans certains cas le c++ peut etre désastreux.
Stroustrup a créé un langage dédié aux appli systeme.
C´est un très bon lanagage pour comprendre le fonctionnement d´una machine, certes.
C´est un très bon langage pour des applis en interface directe avec le matos (je code mon moteur 3D en C++ et je n´envisageais pas le faire dans un autre langage)
Tout ca, je suis d´accord.
Maitenant cresons.
-Quand en c++ tu veux faire de la prog générique tu va utiliser les templates.
Ouuaaaaa génial on peut faire du générique, trop cool.
Maintenant prend ocaml.
Bam c´est deja générique si tu te plante pas sur toon typage.
-En c++, tu ne dispose pas de fonctions de premiere classe.
Pourtant j´envisage une fonction comme une valeur, rien d´autre.
(quand elle est calculé pour un param précis bien sur).
Les fonctions de première classe sont pourtant quelque chose génial.
Ca t´évite d´avoir un code plus long que tes commentaires.
C´est vrai qu´avec le c++, les programmeurs qui mettaient autant de commentaires que de lignes on été très content : leurs commentaires devenaient des instructions (sic).
Les fonctions de première classe permettraient un découpage en fonctions courtes, chacune presque juste composé d´un {return(expression de la mort)}.
Certaient dise que c´est plus sire à lire.
Peu etre.
Maintenant à debugguer, quel simplicité.
-l´évaluation retardée.
haaa, l´évaluation retardé.
Ha tu deja essayé ca en c++ ?!
Misère ! Je l´ai deja tenté sur un projet et je peux honnetement dire que c´est la misère.
-L´apprentissage et la cohérence du langage.
C++ est un langage qui a beaucoup évolé au fil des années.
Du coup, il a subit plusieurs ajouts de "plusieurs couches".
Et honnetement, par moment, on se demande si une vision globale du langage a été gardée.
Sa syntaxe est devenue verbeuse au possible.
Et le pire, c´est que l´apprentissage du c++ n´est du coup plus aisé.
Et oui, car pour apprendre un langage, il faudrait se concentrer sur ces composants fondamentaux, sans chercher à voir les possibilités du langage.
Et en c++, y´a quoi comme concepts fondamentaux ? Y´en a pleins !
Heritage, polymorphisme, template, gestion des exceptions, référence ... et j´en passe.
L´apprentissage du langage ne peut donc pas se faire facilement avec quelques concepts fondamentaux.
Ou alors si, mais on passe à coté de la puissance du c++ (si tu code en c++ sans héritage, polym, template, et gestion des exceptions bah utilise un autre langage, ca sert à rien là).
Car le c++ est un langage pour experts.
Et oui, c´était aussi un des objectifs de Stroustrup.
Un langage systeme pour experts.
Un exemple maintenant, dans une boite que je connais bien, les gars étaient trop à la ramasse sur le dev de leur log.
Les choix techniques avaient été très mauvais.
Mais c´étaient trop tard : des sommes colossales avaient deja étaient deversées des le projet.
Pour sauver le truc, il aurait fallu copntinuer à verser des sommes presques indescentes.
Et là, un mec, une lumière qui utilisaient caml a osé soumettre une idée folle.
Recoder le noyau de l´appli en ocaml en l´interfacant avec le reste du l´appli c++.
Il ont faient appels à quatre experts d´ocaml (je dis bien experts).
En 3 semaines le truc était plié.
Le dev en c++ du noyau dur de l´appli avait duré 6 mois pour aboutir à du code ingérable, mal interfacé car écris par des dizaines de programmeurs différents.
Conclusion ?
Le c++, pourquoi ?
Pour des appli où c´est nécessaire.
Pas plus.
La POO est très quelque chose de phénoménal mais il y a quelque chose d´autre à coté.
Je vous invite à aller lire le bog d´un ami :
http://theroleplayingprogrammer.blogspot.com/ il y argumente en faveur de la prog fonctionnelle, même si on code moi il code en c++ 8 à 10h par jour.
Et oui, on est par sectaire.
On en a juste mare des mauvais choix techniques des entrepreneurs qui font rarement une analyse complete des besoins pour choisir le langage le plus adapté.
Donc non, ocaml, haskell, etc.. ne sont pas que des langages pour cherchers tarés qui n´ont rien d´autre à faire.
VOila, j´espere que j´aurais réussi à montrer quelques faiblesses du langage, meme si je le répète, le c++ peut etre un très bon langage.
Mais pas toujours...
C´est pour ca que la connaissance de plusieurs langages semble etre quelque chose d´indispensable à mes yeux.
Hello
1/ Comme le dit justement NeoFunGamer, le C++ est un langage HAUT NIVEAU.
Quand on parle de bas niveau, on parle de "proche de la machine" donc de langage assembleur.
Le C++ est un langage haut niveau au meme titre que tous les autres langages cités ici. Pas plus dur, pas moins dur.
2/ Il faut faire la difference entre un langage compilé et un langage interpretté. Il y a evident une difference de performance qui est importante pour le jeu video.
3/ Tous les langages sont bons. Ce sont les programmeurs qui sont mauvais.
4/ Il faut choisir son langage suivant la tache a effectuer. Quand j´etais jeune, je programmais des jeux en assembleurs et mes outils en basic.
Donc il n´y a pas de reponse toute faite "le C++ c´est bien" ou "le C++ c´est pas bien". Cela depends des personnes, de leur competences et des besoins.
Maintenant pour ceux qui veulent apprendre un langage utile et qui veulent devenir pro dans le jeu video, je conseille vivement le C++. Pour les autres cas, faut voir ...
(ceci est HS, désolé)
saleGauss, est il possible de communiquer le nom de se logicel dont le noyau a été écrit en ocaml ? Ca me servirait a argumenter pour l´ouverture sur d´autre modele de programmation.
godrik, s´eut été avec plaisir mais je ne parviens pas à retrouver le nom de leur appli (je ne bossait pas dessus).
C´était une application de Dassault systeme.
Si j´arrive à remettre la main dessus je reposte.
Désolé.
Bonne soirée.
CATIA ? OASIS ?
python est un langage interpreté tout comme il peut etre compilé.
heu juste un detail
"Regarde déjà ce forum est programmé en C" ... le forum ne serait t´il pas plutot en php? ![]()
Bon ben je vois que Lapintade et moi sommes d´accord sur un point : le C++ est certainement le langage le plus conseillé pour la réalisation d´un jeu vidéo 3D (d´ailleurs je m´y suis lancé il y a plus de quelques jours), c´est d´ailleurs pour ça que je l´ai posté ici, car nous sommes bien dans le forum de création de jeux non ? ![]()
Non il a été programmé en C (sinon comment expliques tu les cgi-bin etc) ![]()
ah interessant, je voulais justement voir si en utilisant CGI on pouvais faire pareil en C++ qu´avec un langage comme le php
bon ba deja on peut faire un forum, c´est deja ca ^^
"Non il a été programmé en C (sinon comment expliques tu les cgi-bin etc)"
En quoi ca prouve qu´il a été écrit en C ? (je ne dis pas que ce n´est pas le cas, j´en sais rien, mébon...)
Ca peut etre avec c/c++ comme avec perl, visual basic, Fortran...
ce topic part completement en HS.
Quand on fait un cgi-bin, on peut utiliser n´importe quel executable; je dis bien N´IMPORTE QUEL EXECUTABLE; pour generer la page web.
Les parametre get de la page sont passé en argument a l´executable, la sortie standard est redirigé vers le client (header compris).
On pourrait donc ecrire un cgi en brainfuck si ca nous chantait...
bon au moins ca a repondu a la question que je me posais y´a quelques semaines (et qu´ensuite j´ai oublié XD) sur ce qu´on peut faire en cgi ^^