Donc, a vous lire, on serait dans une époque où il n'y a plus de bonne raison de ne pas utiliser le C++ pour du web?
Donc, a vous lire, on serait dans une époque où il n'y a plus de bonne raison de ne pas utiliser le C++ pour du web?
Ben personnellement, je le pense. Maintenant, j'ai quand même peur que ça n'apporte pas grand chose par rapport aux solutions existantes. J'essaie de voir si pour certains cas d'utilisation le C++ aurait un intérêt particulier par rapport à un serveur Tomcat et un framework adequat, mais j'ai un peu de mal
Ceci dit, au niveau technologique, le C++ est très certainement adapté au medium.
L'intérêt premier que je vois à utiliser c++ coté server est la facilité d'interfaçage avec la myriade de librairies et systèmes qui ont, pour la plupart, une api native en c ou c++.
C'est un réel avantage comparé à python, ruby ou php (je ne me prononcerais pas pour java ou c#) qui n'ont pas toujours des bindings uptodate et/ou exploitant les services ciblés dans les meilleurs conditions. Encore faut-il avoir un intérêt à utiliser un service dans les meilleurs conditions, ce qui n'est pas forcément le cas pour une appli web. Il y a d'autres facteurs inhérents qui ont été évoqués (ping, bande passante etc)
Je déterre le fil pour lui rajouter un lien.
Hier, je suis tombé là dessus: du Qt dans un navigateur via le projet Native client de google.
Si je comprends bien il semblerait que l'on disposera ainsi d'une machine virtuelle qui permettra de faire tourner des programmes "natifs" dans des navigateurs.
Oui c'est l'idée, et je trouve ça assez énorme. C'est tout récent en plus. Y'a ca pour avoir des "clients riches" et Wt pour la génération de webservices, c'est un bon début
A propos de client riche, j'utilise ça pour les interfaces de mon jeu, effectivement c'est très efficace, mais je pensais qu'on parlait principalement des technologies server (type Wt) pour les application web, pas forcément coté client où on a déjà des tas de solutions en C++.
edit> Ah non j'avais compris l'inverse du Native Client, c'est bien un client embarqué dans une page web, pas comme l'exemple que j'ai donné... au temps pour moi.
En listant la mailing list de boost, je suis tombé sur une référence à CppCMS: http://cppcms.sourceforge.net/wikipp/en/page/main
Ca semble très interessant dans le domaine. A voir ce que ça donne.
Par contre, comme indiqué dans le Rational, c'est interessant uniquement pour des souci de performance.
numéro de post ... :
http://www.developpez.net/forums/d84...b/#post4833161
C'est ça.
C'était pourtant évident
Bonjour,
Je crois que que l'expression "déterrer un sujet" n'est pas de trop ici !
Je me permets de relancer ce sujet, au vu des nombreuses nouvelles technologies qui sont apparues depuis 2010.
Tout d'abord je voudrais signaler que je suis encore étudiant en école d'ingé, donc svp ne hurlez pas s'il y a des aberrations dans ce post, je n'ai clairement pas encore assez d'expérience pour que tout ce que je vais dire soit 100% juste... mais je vais faire de mon mieux .
J'ai développé dans une société pendant 6 mois en PHP (avec le framework Symfony2). Il m'a semblé alors que le principal souci du PHP c'est ... le PHP. J'entends par-là que si les framework PHP sont très "pros" à mon goût (je n'ai cependant pas fait de Perl / .NET / Ruby pour pouvoir comparer), surement dû à la longue histoire du PHP dans le web, dès qu'on veut faire un peu de calcul (de vrai calcul, avec de l'algèbre et tout, ce qui est mon cas actuellement), il faut plonger dans la doc ancestrale des librairies PHP, et on n'est pas sûr d'en sortir un jour...
Je me suis ensuite mis au Python, que je trouvais alors simplement génial. Déjà pour sa syntaxe très épurée et intuitive, et aussi (surtout) pour ses bibliothèques très performantes (pour ne pas citer Numpy, Matplotlib, Pandas...), répliquant à la perfection le fonctionnement de gros logiciels de calculs comme R et Matlab, ainsi que les biblis très récentes liées aux nouveaux modèles comme le Machine Learning (Scikit).
Le souci, c'est que j'ai toujours été beaucoup trop puriste dans mon code, passant plus de 80% de temps en refacto pour trouver la meilleure façon de faire les choses... la conclusion qui m'est apparue il y a quelques jours est qu'il est simplement impossible de faire quelque chose d'aussi 'propre' en Python qu'il n'est possible de le faire en Java et surtout qu'en C++ (j'avais étudié les deux en école). Cela pour des raisons évidentes, dont par exemple le "typage dynamique" (aka "absence totale de typage", ou encore "tkt ça passe"), l'héritage multiple (ok, il y est aussi en C++), l'absence de gestion de la mémoire, etc.
Bref, j'arrête de digresser et en viens au sujet : depuis le dernier post de cette discussion, on a vu l'apparition de JS côté serveur avec Node, faisant preuve d'une rapidité assez impressionnante (pour de l'interprété) grâce au moteur V8 de Google, à la suite de quoi d'autres technos hallucinantes ont vu le jour (comme React ou Meteor, qui permet de générer d'un coup l'appli Android + l'appli iOS + l'appli web, tout en 'simulant' un accès à la DB côté client, et tout ça uniquement en JS).
Cependant, le débat est toujours d'actualité : le C++ est-il toujours aussi adapté (ou plutôt toujours aussi mal adapté) au Web ?
D'après vos réponses (ultra intéressantes pour la plupart), la conclusion laissée en suspens semblait être que le C++ pourrait très bien être employé (il semblait même l'être bien plus en 2010 qu'avant 2000), cependant les autres technos sont "plus adaptées" et proposent plus de biblis, de frameworks, d'outils, etc. (autre débat : ces outils sont-ils rééllement indispensables ? L'article sur la pertinence des ORMs est aussi très intéressant).
Mais le problème de la performance est toujours là ! Je ne peux croire que le JS (même avec un moteur 16 cylindres en V8) parvienne à dépasser du compilé (même s'il semble d'après vos réponses que la plupart de la complexité en temps dans le Web est dû à la DB et au réseau, c'est un autre débat).
Quelque chose a-t-il changé depuis 2010 ? Les autres technos ont-elles pris tellement d'avance qu'il est désormais impensable d'utiliser du C++ ? (pourtant on voit toujours un sacré paquet de .NET !). Ou bien les frameworks que vous avez cités (comme Wt ou CCP CMS) se sont développés et proposent maintenant de réelles solutions alternatives ?
Merci pour vos réponses !
Maintenant j'ai entendu parler de node pour lancer des modules écrits en C++.
L'avantage de node c'est surtout sa facilité et rapidité de mise en place d'un serveur.
Mais dans le cas de serveur de jeu, pas de simples servers webs.
Salut,
alors j'ai pas suivi la discussion d'antan donc je vais peut-être dire des trucs déjà dits.
Perso (enfin au taff) on utilise encore beaucoup le C (pas ++) pour des appli web.
On a bien évidemment les éternels CGI, mais aussi des appli lourdes et des services sur les serveurs, tout en C.
Maintenant faut voir le besoin : si t'as des traitements lourds à faire, des CGI derrière un serveur HTTP c'est très bien.
Les cas où il faut coder le serveur en lui-même (quelque soit le protocole choisi) est quand même assez rare.
Dans le cas du HTTP il existe des serveurs déjà faits qui offrent très peu de fonctionnalités pour un maximum de perf.
Cela fait quelques jours que je parcours les forums de ce site pour trouver l'emplacement adéquat pour exposer un des me projets, sans vraiment trouver. Puis ce fil, dont le sujet est proche de l'objet de mon projet, a été réactivé. Je tente donc ma chance ici, en espérant que cela ne contrevienne pas aux règles de ce site.
Il y quelques temps, j'ai conçu un système qui permet de développer en C++ une interface desktop qui s’appuie sur des technos web. Les technos web étant très répandues, et moi-même n'ayant que des compétences très limitées dans ce domaine, cela permettait de trouver facilement des personnes à qui déléguer le design de l'interface.
Du fait de l'utilisation de ces technos web, je me suis dit qu'il devait être facile d'utiliser cette interface desktop pour en faire une interface web. J'ai donc développé, toujours en C++, quelques outils en ce sens que j'ai mis en œuvre, à titre de proof of concept, dans une application, dont la démonstration en ligne est accessible ici : http://q37.info/xdh/orgnzq.html.
Le principe général, c'est qu'à chaque événement susceptible d'être déclenché à partir d'une page web, est associée une fonction C++. Cette fonction va, pour ce qui est de l'interface, générer un flux au format XML contenant les données à afficher. Ce flux XML est envoyé au navigateur web associé à une page XSL, que le navigateur web va appliquer au flux XML pour générer la page HTML à afficher.
De mon point de vue, par rapport à la question à l'origine de ce fil, à défaut d'être adapté, je trouve que le C++ est facilement adaptable au développement web, comme j'espère l'avoir démontré avec cette application. Ceci dit, comme je n'ai jamais développé d'application web en tant que telle, j'ignore si ma solution est viable, et comment elle se place par rapport à d'autres solutions, éventuellement basées sur d'autres langages.
Pour ce qui voudrait en savoir plus, vous pouvez consulter ce billet sur le sujet. Si vous avez des questions spécifiquement sur cette application, j'y répondrais volontiers. Le cas échéant, je pense qu'il vaudrait mieux que je crée un fil dédié, mais j’ignore quel est le forum le plus adapté...
Bonjour, pour donner suite à la conversation je viens des Ordinateurs propriétaire IBM , j'ai conçu des applications en natif (RPGIV...) pour le web ..... aucun souci de performance etc.....
aujourd'hui je suis à la retraite , et je m'amuse à reproduire l'équivalence sur pc/serveur .... étant habitué de très longue date j'ai repris la méthode Proof une méthode qui dans les années 70 à fait ses preuves et qui disait un écran = une fonction = un programme = un traitement formulaire.
en partant de ce schéma j'ai cherché ce qui était le plus approprié tant performance , sécurité, fiabilité, simplicité.
HTML/JSON couplé JQUERY , template , du CGI , et bien-sur du c/c++ , cela est en adéquation lorsque je fais appel à des base de données dont les données sont partageable et chacun sait oh combien il est important de géré les lock ... les traçages de sécurité pour le client,la mise en ligne fiable.
j'ai été obligé de refondre la méthode d'accès aux données aux programmes afin qu'elles soit facilement identifiable commune et répondant à un suivit de DBA ,
tout fonctionne .....
Aujourd'hui je me penche sur une relation de traitement websocket chose simple et performante .... on peut développer en C++ , j'en arrive à ma conclusion c'est de développer un framework une sorte d'outil pour générer l'intendance ce que j'appelle pisser de la ligne toujours les mêmes principe, une fois fait on trouve les programmes très épurés et facile a lire ne s'occupant que du métier.
les pages son générés à la volés, il n'y a pas d'interprétation , les objets sont compilés , le serveur de BD est hors d’atteinte, le serveur web Apache a fait ses preuves ,
gestion de stock , de livraison , de demande de livraison , de suivit de traçabilité avec information pour les services des fraudes.
les commandes sont fait par des applications traditionnel interactive GTK/C++ et communique ou plutôt sont en symbiose avec les applications web, enfin de compte les applications web sont la mise à disposition; un déport d'informatique du client pour que la fabrication soit a disposition avec un maximum de suivit.... exemple Fnac, Renault ....
Ah j'allai oublier ce sont des sites pour des industriels qui ne veulent pas de complication et passer le moins de temps possible sur ses écrans , donc des écrans épurés dont le fonctionnement répond a une charte et pas a un jeu (hihi) bref du pur et dur .... pour eux il ne fallait pas sortir de polytechnique pour utiliser le site.
@bientôt
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager