Je ne me suis jamais intéressé au développement d´applications pour le web jusqu´à présent, aussi mes connaissances dans le domaine sont-elles assez floues.
Aussi j´aimerai savoir s´il est possible de programmer des applets web (du genre de ceux qui permettent de dessiner en Java) en C/C++.
Je suppose que .net doit permettre de réaliser ce genre de chose, mais j´aimerai que l´applet puisse s´exécuter sous n´importe quel OS et sur n´importe quel browser.
Un lumière ? ![]()
Comme toujours sur le web, tout est possible...
... condition que le naviateur lautorise.
ce que je veux dire c´est qu´il est theoriquement possible d´ecrire un programme en C qui sera chargé par la page web, en outre, aucun navigateur ne laissera faire cela (et j´espere qu´aucun utilisateur ne souhaiterait le faire).
En outre, je pense que Internet explorer/windows doit permettre de charger des composant .net. Restes a savoir si d´autre navigateur/OS le supporte.
Pour ça il y a le CGI.
En gros ce son des "script" ou plutot des programme écrit dans un langage qui le permet (principallement Pascal je crois (mais je suis pas sur) mais ça peut se faire aussi en C) et qui son exécuté coté serveur.
C´était la technologie très utilisé fut un temps, mais maintenant ça l´est de moins en moins, même si tout les serveurs (en tout cas Apache et IIS) la supporte encore.
Par contre je ne connait pas du tout et je ne sais pas de quoi c´est capable. Mais c´est ce qu´on utilisait pour tout avant l´asp et le php le java et toutes ces technologies web diverse et varié.
En tout cas ça permet de faire des applet web écrit en C (c++ ?) , ça j´en suis sûr. Précisement comment ça marche et à quoi ça sers, là je n´en sais rien.
P.S. pour IE/Windows, avant même les composant .NET il y a les composant COM qui sont encore pas mal utilisés.
A titre d´info : c´est donc amené à disparaitre le CGI ?
Je m´y connais vraiment pas du tout mais j´aimerais rajouter un truc.
Les Applets dont parle lag-it sont coté client, donc il y a pas vraiment de rapport avec le CGI qui lui est coté serveur, ocmme le PHP(en passant, pour le CGI, je crois que le langage par excelence est le PERL et non le Pascal).
J´ai jamais entendu parlé d´aplet en C/C++. De toute façon, pour que ça soit indépendant de l´OS et de l´hardware, il faudrait une V.M.. Je sais pas si de tel projets existe en C++, mais tant qu´a y être, il vaut mieux rester en javah ...
Pour plus d´info, wikipedia est ton ami
Dites moi si je me trompe,
Bonne matinée.
"A titre d´info : c´est donc amené à disparaitre le CGI ?"
-> Non, JV.com les utilise toujours, car, écrits en C, ils sont beaucoup plus rapides.
PHP et ASP ont du succès par leur simplicité, mais en réalité tu peux utiliser n´importe quoi : Python, Perl, C, Pascal, scripts shells, brainfuck (pour peu que tu puisses lui faire comprendre ce que c´est qu´une variable d´environnement)...
Quand aux applets, voici un exemple d´applet (j´ai tapé "Applet IRC" dans google, je le connais pas moi ce site
http://www.animecdz.com/index-8-0-0.html )
Comme vous pouvez le voir, c´est la machine virtuelle Java qui est lancée. Donc les applets sont principalement écrits en Java.
Mais il existe des programmes pour les faire dans d´autres langages, comme Python (http://www.jython.org/applets/index.html) ou Scheme (avec le compilateur Bigloo)
Je parlait en effet d´un truc côté serveur, mais ca m´intéresse ce truc de cgi
Faut un compilo spécial pour du code C ? Il suffit d´uploader l´exécutable dans cgi-bin ? Faut modifier l´extenion en .cgi ? Et comment exécuter le prog après ?
d´après moi il s´agit de sorte de plug in pour le navigateur, il doit y avoir une interface standard qu´il suffit d´implémenter.
Mais ce n´est qu´une supputation.
C´est exactement comme le php (pour le cas de scripts en PERL) pour le principe de fonctionnement. En c les codes sont compilés par contre.
Un peu plus d´infos : http://www.developpez.com/internet/cgic.htm
Tu veux des applets ou des CGI ?
Les applets, mais cette histoire de CGI avait sucité ma curiosité (ceci dit pour trouver un hebergeur web qui me laisse exécuter des programmes pour le cgi sur ses serveurs, bon courage).
Quand au applets, si c´est juste Java ou Flash... bof...
Bin non y´a Python aussi.
Python c´est du scipt non ?
Pourquoi n´existe-il pas de machine virtuelle pour des programme en C ? Par ce que le C permet des accès bas niveau et donc intrinsèquement liés à la machine ?
C´est pas une raison, un compilateur peut facilement interdire les fonctionnalité qui permettent un tel accès bas-niveau.
Mais par contre il faudrait un ensemble de bibliothèque qui permettent de faire des trucs interessant pour le web et qui existent sur plusieurs plateforme. Probablement que personne n´a pour l´instant eu envie de faire ça.
Mais en pratique il faut très très peu de chose pour faire marcher ça (sans sécurité aucune) c´est l´affaire d´une demi-heure de boulot :
il suffit de configurer un serveur apache pour donner un type au fichier .c, il suffit donc de rajoutter cette ligne dans le fichier httpd.conf :
AddType application/x-compil .cpp
Puis il faut une application vraiment simple qu´on installe sur les machines cible qui lorsqu´elle est lancée avec un fichier .cpp en paramètre appel gcc avec les bon paramètres puis lance l´application obtenue avant de la détruire. La seul chose à faire est d´enregistrer cette application. Sous windows il y a juste une clef à mettre quelque part dans la base des registre (genre HKCR/MIME/...) pour spécifier que c´est cette appli qui lit les type MIME application/x-compil.
Mais là tu as vraiment n´importe qui qui peut exécuter n´importe quoi sur ton système. n´empêche ça doit à peu près marcher sans plus de problème.
"Python c´est du scipt non ? "
-> Nous n´avons pas la même définition de ce qu´est un script. Alors...
"Un langage de script est un langage de programmation, qui n´est pas compilé, mais interprété." (Wikipedia)
Apparemment c´est toi qui a raison. Seulement la même page donne aussi Python comme langage de script, alors qu´il est toujours précompilé quand on le lance (ce qui donne un .pyc), en une espèce de bytecode.
Et dans le cas des applets on utilise un compilateur spécial (Jython, voir le lien que je donne dans mon post plus haut)
"Pourquoi n´existe-il pas de machine virtuelle pour des programme en C"
-> De machines virtuelles je sais pas mais des interpréteurs C y´en a.
"Par ce que le C permet des accès bas niveau et donc intrinsèquement liés à la machine ?"
-> Jsais pas.
dnob700 > C´est risqué en effet^^
Bigloo > "alors qu´il est toujours précompilé quand on le lance (ce qui donne un .pyc), en une espèce de bytecode."
Ouai comme le Java bytecode, mais ca reste du précompilé...
Tite question puisqu´on parle du cgi : comment peut on connaitre les paramètres que s´attends à recevoir une aplication exécuté par la cgi ?
Il existe une sorte de debugguer queque part ou truc du genre ?
Tient donc ça cause cgi !
J´ai autrefois fait quelques programmes comme ça ... mais m´en veuillez pas si les souvenirs sont vagues !
Donc en gros grace au cgi vous pouvez coder quelque chose coté serveur qui permetra de faire du dynamique, coder au sens large, on peut faire du cgi en C,C++,Perl, même assembleur si vous etes maso ! En faite n´importe quel langage capable de lire l´entrée standard est capable d´être utilisé pour cgi. Il suffit donc de coder une application respectant les normes cgi.
Si mes souvenirs sont bons, en langage C par exemple, selon si le formulaire html utilise la méthode POST ou GET, deux façons différentes de récupérer la ligne d´argument :
- getenv("QUERY_STRING"); qui permet de récupérer un bête pointeur sur une chaine de caractère contenant la ligne passée en argument au script
- lire sur l´entrée standard
Ensuite (après avoir fait notre traitement) en faisant des printf on écrit directement le contenue de la page html générée cotée serveur et envoyée au client.
Mais c´est vrai qu´aujourd´hui le cgi commence à etre abandonné et suplanté par d´autres langages tel qu´asp et php ... et souffre de quelques problemes d´efficacité.
Par exemple, le programme étant écrit puis compilé, il me semble que cgi chargera une nouvelle instance du programme à chaque appel du script (je suis pas sur), chose que php serait capable d´éviter (normal puisque non compilé) (mais j´en suis encore moins sur)
lag-it> Oui seulement comme tu es obligé de passer par une machine virtuelle dans le cas des applets (raisons de sécurité)..