OVH Cloud OVH Cloud

[naïf] C++ et W.W.W.

22 réponses
Avatar
Henri de Solages
Bonjour.

J'ai toujours utilisé C++ pour faire du calcul, des simulations.
Je constate que les gens qui programment pour le W.W.W. semblent utiliser Java, PHP, Perl,
Javascript...
N'existe-t-il pas de bibliothèques qui rendent C++ tout aussi performant et facile
d'utilisation que ces languages, pour une programmation W.W.W.?


--
Get rid of the final underscore of my address to use it.

10 réponses

1 2 3
Avatar
Fred
Bof... WWW, c'est plutôt des applis qui traitent du texte, et des
connections sur BDD, sans chercher la micro-optimisation. Les languages
que tu cites (Java, PHP, Perl etc) sont portables, légers, simples
d'utilisation, et possèdent un gestionnaire automatique de mémoire.
C'est en gros ce qu'il manque à C++ pour en faire un bon language Web.

Egalement, on ne voit pas vraiment l'intérêt de compiler un language
Web: pour pouvoir le modifier rapidement et simplement, et ne pas avoir
de problèmes de portabilités, l'interprété est Roi.

Donc, même avec une bibliothèque, le C++ ne me semble pas fait pour
débarquer sur la toile.

Fred


Henri de Solages wrote:
Bonjour.

J'ai toujours utilisé C++ pour faire du calcul, des simulations.
Je constate que les gens qui programment pour le W.W.W. semblent
utiliser Java, PHP, Perl, Javascript...
N'existe-t-il pas de bibliothèques qui rendent C++ tout aussi performant
et facile d'utilisation que ces languages, pour une programmation W.W.W.?




Avatar
kanze
Henri de Solages wrote:

J'ai toujours utilisé C++ pour faire du calcul, des
simulations. Je constate que les gens qui programment pour le
W.W.W. semblent utiliser Java, PHP, Perl, Javascript...


Ça dépend à quel niveau on intervient. Le C++ sert beaucoup pour
l'écriture des browswers ou des serveurs, par exemple.

S'il s'agit d'écrire des pages Web, un langage comme PHP est
plus indiqué, avec Javascript pour le côté client. Mais
j'imagine que le PHP permet l'invocation d'autres programmes, et
si la génération d'une page exige des calculs importants, ça
pourrait être intéressant d'implémenter la partie calcul en C++.

En passant : quand tu parles de la programmation Web, il y a en
fait trois choses distinctes : la programmation côté client,
c-à-d le code qui s'exécute dans le browser du client, la
génération des pages, et des calculs associés à cette
génération.

Pour le premier, Javascript est de loin le plus important, mais
des langages spécialisés, du genre Flash, s'y trouve aussi. Java
a essayé d'y devenir important, sans réelement réussir. Pour
pouvoir fonctionner ici, il faut un format « standard » de
l'exécutable (ASCII ou Byte-code), ce qui n'est pas le cas de
C++. (On pourrait imaginer un interpréteur C++, mais la façon
que fonctionne #include rend le problème très ardu.)

Pour la séconde, le PHP est, je crois, le plus répandu -- les
alternatifs sont JSP (du Java intégré dans de l'HTML) ou ASP
(pûrement Microsoft). Ces langages ont la particularité de
s'integrer dans le HTML, de façon qu'un « programme » est un
mélange du langage même, du HTML et du texte à afficher.

En ce qui concerne la troisième, on privilège actuellement le
Java simplement parce que c'est le langage integré dans la
plupart des serveurs HTML : Apache, WebSphere, etc. En principe,
rien n'empêche l'utilisation de n'importe quel langage ici -- je
connaissais une application qui se servait du Cobol. Mais il
s'avère que le Java vient avec les bibliothèques qui assure et
facilite la communication avec le serveur, ce qui facilite la
tâche énormement. (Je crois qu'il existe une bibliothèque
freeware qui en fait autant pour le C++, mais il faudrait
toujours la trouver et l'installer, tandis qu'avec Java,
l'infrastructure est déjà là d'office.)

N'existe-t-il pas de bibliothèques qui rendent C++ tout aussi
performant et facile d'utilisation que ces languages, pour une
programmation W.W.W.?


Je crois, au moins en ce qui concerne la troisième utilisation.
Mais je ne les connais pas.

Pour les autres utilisations : du fait qu'il faut le compiler
pour une machine donnée, le C++ se prête assez mal pour la
programmation côté client, et pour la génération des pages (avec
tout le boilerplate), c'est probablement préférable d'utiliser
un langage qui s'integre dans le HTML.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
adebaene
Fred wrote:


Egalement, on ne voit pas vraiment l'intérêt de compiler un language
Web: pour pouvoir le modifier rapidement et simplement, et ne pas avoir
de problèmes de portabilités, l'interprété est Roi.


Cet argument me semble fallacieux quand on parle de "programmation Web"
(oh, le beau terme commercial fourre-tout qui ne veut rien dire!!)
côté serveur : Tu connais l'architecture de ton serveur Web (enfin,
il faut espérer), et ton appli ne sera jamais déployée que sur ce
serveur, donc l'interprété n'apporte rien de ce point de vue en
"portabilité".

Ce qui me semble par contre plus juste, c'est que c'est beaucoup plus
facile pour le serveur Web de se prémunir contre du code mal écrit
dans un langage interprété (PHP, Perl, ASP, etc...), que en C++ (où
on peut toujours crasher le processus avec un pointeur foireux). Pour
la stabilité du serveur, il vaut donc mieux un langage qui interdise
de se tirer une balle dans le pied.

Arnaud

Avatar
Aurelien Regat-Barrel
J'ai toujours utilisé C++ pour faire du calcul, des
simulations. Je constate que les gens qui programment pour le
W.W.W. semblent utiliser Java, PHP, Perl, Javascript...



Tu peux développer tes cgi en C++. Ca consiste à écrire ton code HTML
généré sur std::cout. Le serveur s'occupe du reste.
Comme l'a dit James c'est plutôt la nature compilée de C++ qui rend la
chose fastidieuse et donc peu répandue. Les poids lourds sont des
langages de script (Perl, Python, ...). On référence directement le
fichier source dans l'URL, et ça marche.

--
Aurélien Regat-Barrel


Avatar
Henri de Solages

En passant : quand tu parles de la programmation Web, il y a en
fait trois choses distinctes : la programmation côté client,
c-à-d le code qui s'exécute dans le browser du client, la
génération des pages, et des calculs associés à cette
génération.

Pour le premier, Javascript est de loin le plus important, mais
des langages spécialisés, du genre Flash, s'y trouve aussi. Java
a essayé d'y devenir important, sans réelement réussir. Pour
pouvoir fonctionner ici, il faut un format « standard » de
l'exécutable (ASCII ou Byte-code), ce qui n'est pas le cas de
C++. (On pourrait imaginer un interpréteur C++, mais la façon
que fonctionne #include rend le problème très ardu.)

Pour la séconde, le PHP est, je crois, le plus répandu -- les
alternatifs sont JSP (du Java intégré dans de l'HTML) ou ASP
(pûrement Microsoft). Ces langages ont la particularité de
s'integrer dans le HTML, de façon qu'un « programme » est un
mélange du langage même, du HTML et du texte à afficher.

En ce qui concerne la troisième, on privilège actuellement le
Java simplement parce que c'est le langage integré dans la
plupart des serveurs HTML : Apache, WebSphere, etc. En principe,
rien n'empêche l'utilisation de n'importe quel langage ici -- je
connaissais une application qui se servait du Cobol. Mais il
s'avère que le Java vient avec les bibliothèques qui assure et
facilite la communication avec le serveur, ce qui facilite la
tâche énormement. (Je crois qu'il existe une bibliothèque
freeware qui en fait autant pour le C++, mais il faudrait
toujours la trouver et l'installer, tandis qu'avec Java,
l'infrastructure est déjà là d'office.)


Merci beaucoup pour cette explication ordonnée.

+ Où se situent Perl et Python, dans ce schéma ?
+ Les langages de la 3e catégorie dialoguent-t-ils directement avec XHTML (et C.S.S. ?),
ou avec un langage de la 2e catégorie, ou obligatoirement avec les 2 à la fois, ou encore
avec l'un ou l'autre au choix du programmeur ?

+ Si je comprends bien, Java semble avoir l'avantage de pouvoir faire les 3 tâches, ce qui
fait donc un seul langage à apprendre.
+ Les hommes tendent à utiliser un langage commun à toutes les disciplines : aujourd'hui
l'anglais, bien qu'il soit probablement plus efficace d'utiliser l'allemand pour faire de
la philosophie, et que l'usage d'idéogrammes asiatiques en programmation réduirait
vraisemblablement la taille des codes sources. Pourquoi les informaticiens semblez-vous
tendre au contraire à multiplier les langages ?!
+ Quelqu'un connait-il un site W.W.W. à jour qui présente succintement les
caractéristiques des différents langages pour le W.W.W.?

--
Get rid of the final underscore of my address to use it.

Avatar
Henri de Solages

Tu peux développer tes cgi en C++. Ca consiste à écrire ton code HTML
généré sur std::cout. Le serveur s'occupe du reste.


Avec les wchar et wstring, peut-on écrire tous les caractères Unicode ?

Comme l'a dit James c'est plutôt la nature compilée de C++ qui rend la
chose fastidieuse et donc peu répandue. Les poids lourds sont des
langages de script (Perl, Python, ...). On référence directement le
fichier source dans l'URL, et ça marche.


"Langage de script" signifie langage interprétés par le client, c'est ça ?

--
Get rid of the final underscore of my address to use it.

Avatar
Matthieu Moy
Henri de Solages writes:

"Langage de script" signifie langage interprétés par le client,
c'est ça ?


"Langage de script" signifie un peu tout et n'importe quoi selon le
contexte. Le PHP est souvent considéré comme un langage de script,
mais tourne coté serveur.

Ma définition serait "langage de haut niveau dans lequel on peut
écrire un truc vite et pas trop mal, avec des performances pas
terribles".

--
Matthieu

Avatar
Stan
"Henri de Solages" a écrit dans le message de news:
dgbrvd$9e6$
+ Si je comprends bien, Java semble avoir l'avantage de pouvoir faire les
3 tâches, ce qui fait donc un seul langage à apprendre.
+ Les hommes tendent à utiliser un langage commun à toutes les disciplines
: aujourd'hui l'anglais, bien qu'il soit probablement plus efficace
d'utiliser l'allemand pour faire de la philosophie, et que l'usage
d'idéogrammes asiatiques en programmation réduirait vraisemblablement la
taille des codes sources. Pourquoi les informaticiens semblez-vous tendre
au contraire à multiplier les langages ?!


Pour lancer des trolls ;-)

--
-Stan

Avatar
Stan
"Matthieu Moy" a écrit dans le message
de news:
Henri de Solages writes:

"Langage de script" signifie langage interprétés par le client,
c'est ça ?


"Langage de script" signifie un peu tout et n'importe quoi selon le
contexte. Le PHP est souvent considéré comme un langage de script,
mais tourne coté serveur.

Ma définition serait "langage de haut niveau dans lequel on peut
écrire un truc vite et pas trop mal, avec des performances pas
terribles".



Que veux-tu dire par performances ? Rapidité ?
Des comparaisons ont été faites sur la base de manipulation de chaines et de
tri.
Parfois les différences sont insignifiantes entre du Perl et son équivalent
en C ou C++.
En fait, tout dépends de ce que tu lui fait faire à ton script...

--
-Stan


Avatar
kanze
Aurelien Regat-Barrel wrote:
J'ai toujours utilisé C++ pour faire du calcul, des
simulations. Je constate que les gens qui programment pour
le W.W.W. semblent utiliser Java, PHP, Perl, Javascript...



Tu peux développer tes cgi en C++. Ca consiste à écrire ton
code HTML généré sur std::cout. Le serveur s'occupe du reste.
Comme l'a dit James c'est plutôt la nature compilée de C++ qui
rend la chose fastidieuse et donc peu répandue.


Je n'ai pas dit ça. J'ai dit que la nature compilée faisait que
le C++ ne convenait pas pour des choses côté client (encore que
certains browsers Windows le supportent, en forme des objets
ActiveX).

En fait, beaucoup dépend de la contexte. Pour un Intranet, dans
la société, où on a contrôle de tout, on pourrait considérer le
C++ pour tous les niveaux. Si tes pages sont herbergées sur un
fournisseur externe, en revanche, il faut bien prendre en compte
ce qu'il supporte. Mon herbergeur en Allemagne, par exemple,
tournait sur des machines CGI, tandis que chez moi, je n'avais
qu'un Sparc et un PC sous Linux. Dans des cas pareils, l'aspect
compilé pose des problèmes même pour ce qui tourne côté serveur.

Les poids lourds sont des langages de script (Perl, Python,
...).


C'était le cas, mais aujourd'hui ? Ce que je vois côté serveur,
c'est prèsqu'exclusivement du PHP.

On référence directement le fichier source dans l'URL, et ça
marche.


--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



1 2 3