[TO] Combat de Boxe des Langages Orienté Web - PHP, Java, C#, Ruby, etc

Ruby on Rails ?

je connais que de nom et j’ai juste matter 2-3 demos, donc si tu peux partager tes connaissances :oui:

Justement :slight_smile: c’est le but benj. Par contre, essaye de faire la même présentation que moi, et si ça utilise un garbage collector, le type (pour la rapidité liée à celui ci)

Personnellement pour le web, je suis fan de ruby. Langage complètement objet, avec une syntaxe super. Et sans oublier Rails comme framework qui facilité énormément le dev et qui permet une belle productivité.

Bien sûr, comme tout langage, il y a un coup d’apprentissage …

Pour le C ( et surement pour le C++ aussi), c’est ce que l’on appel un script CGI c’est un peut comme un servlet, c’est un script compiler que l’on fourni au serveur (apache avec un module CGI activer).
Ca consiste à écrire le script en C (ou C++), de le compiler pour obtenir le “.exe” de renommer avec l’extension “.cgi” et de le mettre dans le repertoire prévu (qui, il me semble, se nomme cgi dans wamp)
Ensuite, pour l’appel, cela se fais par un appel du cgi : www.toto.fr… et le tour est joué.

Question : Est-ce qu’il est possible de faire un lien avec le php, ce qui permettrai d’avoir un pseudo couple php/cgi qui serai un équivalent JSP/Servlet.

PS : Cela me rappel une phrase : La servlet est au CGI, ce que la JSP est au PHP (cf : Moi dans mon cour de JEE)

J’aurai tendance à dire que Servlet et CGI, c’est la même chose, juste le nom et la techno qui change… Néanmoins, PHP est également dU CGI (si on exclut le fonctionnement de PHP par module ou par CGI)

Oui php est trasformer par apache en script CGI qui est éxécuté ensuite (il me semble), mais JSP c’est pareil, c’est transformer en servlet qui est executer par le conteneur (tomcat par exemple)

Heu non. PHP est exécuté par mod_php (ou php-cgi.exe/etc)…

Oui mais comment il est exécuté? Est-ce que, comme la JSP qui est transformer par le conteneur de servlet en servlet, le php est transformer en CGI avant d’être éxécuter?

Heu :slight_smile: php fonctionne soit en module Apache soit en CGI. Ensuite, il ne fait qu’exécuter le fichier PHP… Y a pas de transformations de php en cgi, juste de la lecture de code … Remarque, c’est certainement pareil pour la JSP : le conteneur de servlet, et tout le bousin avec, fait lieu de CGI, mais en soit la JSP n’est pas du CGI ni même transformée directement en CGI.
Edité le 08/02/2010 à 01:22

Non, la JSP est transformé en servlet, et ça c’est sur, on peut même aller consulté le code de la servlet tiré de la jsp.
Je ne me souviens pas par cœur du chemin exacte mais dans tomcat tu peux aller consulté le fichier “majsp_JSP.java” qui est le code de la servlet créée à partir du code de la page JSP et il y a un fichier “majsp_JSP.class” qui est le code compilé de la servlet précédemment créée

C’est pour ça que je pense que cela fonctionne pareil pour le php. Mais si personne ne nous le dis jamais on ne va penser qu’une JSP est transformé en servlet avant d’être compilé puis éxécuté.

Hello,

Alors me concernant : 5 ans de Java J2ee, et un passé composé de PHP4 / ASP / Coldfusion et je ne sais plus quels autres trucs web vintages :slight_smile:

Pour ma part, je résume le choix d’une techno sur un projet à quelques questions simples :

  • quelle communauté de développeurs / penseurs sous jacente ?
  • quelle disponibilité des ressources adéquates sur le marché ?
  • quelle disponibilité et quelle complexité fonctionnelle demandées par le projet ?

Perso, si je suis chef de projet informatique, les points 1 et 2 suffisent à la décision.

Point 3 :
PHP et RoR se caractérisent tous deux par une forte productivité à court terme (faible dispo, faible complexité), quasiment sans comparaison avec Java. Jpense qu’il n’y a pas grand chose à rajouter dessus…

Pour Java J2ee, c’est un peu différent. Du fait de son modèle structurant, le niveau de productivité est très relatif en démarrage de projet. Précédemment, vous parliez de JSP et de Servlet … Aujourd’hui, j’imagine mal un architecte préconiser une base applicative à un si bas niveau (paradigme de la prog par couches successives) sauf pour un projet hyper simple et peu disponible.

Par contre, dés lors que le projet se complexifie (dépendances tierce, problématiques de sécurité hétérogènes, etc.), il faut bien penser à structurer son projet, mettre en place des techniques variées pour veiller à la bonne productivité des développeurs.

Si un projet se complexifie sérieusement, j’aurais tendance à penser que l’on trouvera plus de possibilités du côté des applis Java J2ee qu’ailleurs :

  • Logique applicative réutilisable
  • Découplage, distribution
  • Différents domaines de sécurité
  • Messagerie interapplicative, ordonnancement
  • Connexion à des systèmes exotiques (SAP, …)
  • Couverture de test unitaire à 100%

Pour déclencher manuellement le Garbage collector. Attention à ce qu’on fait bien évidemment ! Enfin pour le côté freeze, si tu parles des applets, ben c’est juste has been quoi …

System.gc()

Pour quoi faire l’entier non signé ? Avoir un nombre très très très grand ? Si oui, y a java.math.BigInteger pour ca, ou java.lang.Long dans une moindre mesure. L’idéal étant généralement de se passer des types primitifs, sauf éventuellement boolean.
Edité le 08/02/2010 à 15:07

Les applets Java sont aussi has been que ne l’est le flash tu me diras :slight_smile:

Néanmoins, pour le garbage collector, c’était à l’époque, ça s’est amélioré, mais c’est relativement vrai : quand le gc tourne, il y a de forte chance qu’il refoute l’appli Java dans la mémoire, foutant le boxon puisque d’autres programmes peuvent en même temps tourner, et causer du swap. Comme en général on fait l’erreur de fournir des postes de bureautique de merde aux développeurs, je te laisse imaginer le drame :slight_smile: Eclipse + Visual Studio = ouille (et sur un C2D + 2GiO de RAM sous 2000).

Et pour les types primitifs, y a une différence entre ce que tu fais avec un BigInteger (= object = artillerie lourde) et un integer. Si je veux faire des opérations bit à bit, le signe je m’en tamponne la babouche :slight_smile: Enfin bon, cela n’est pas gênant dans la plupart des temps, j’en conviens.

Perso, en 5 ans de dev Java J2ee (et je n’ai pas passé mon temps en tma, …) je n’ai envisagé définitivement de solution GC qu’une seule fois. Donc bon, avant d’en arriver là, je suppose qu’il existe -au moins- de longues longues réflexions sur le sujet … :neutre: