IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

C vs PHP vs JAVA d'un point de vue réseau


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Ces trois langages ont leurs appications. Je suppose ici que vous voulez parler de la création de sites web dynamiques, car c'est la seule chose que php peut faire. C peut tout faire, et Java presque.

    Portabilité :
    La portabilité du C est la plus mauvaise. Il est nécessaire de compiler le code séparément pour chaque plate-forme. Et les codes qui peuvent effectivement être compilés pour différentes plate-formes sont très rares.
    La portablilité de Java est la meilleure du moment. Il peut être exécuté sans recompilation sur n'importe quelle machine équipée d'une machine virtuelle. Il existe des machines virtuellles pour un trrès grand nombre de systèmes, jusqu'à certains téléphones portables.
    La portabilité de php est pratiquement égale à celle du Java dans ce contexte très précis, puisqu'il existe des serveurs web capables d'interpréter le php pour pratiquement tous les systèmes susceptibles d'en abriter un. Encore une fois, le php est limité à la création de pages web.

    Performances :
    Le C est compilé en code machine natif, ce qui devrait lui donner l'avantage en vitesse pur. Toutefois, la technologie CGI qui permet d'utiliser des programmes C pour afficher des pages, consiste à lancer le programme C comme processus indépendant à chaque appel de page, ce qui donne des performances catastrophiques. Une alternative récente consiste à charger dynamiquement les programmes C sous forme de librairies dll. Je n'ai pas d'expérience personnelle avec cette technologie, mais les premières constatations donnent des résultats similaires au Java.
    Le Java est performant. Les premières machines virtuelles était très lente. Ce n'est plus le cas aujopurd'hui. Grâce à des techniques de compilation à la volée, le bytecode devient très rapide.
    Le PHP est mauvais. C'est à attendre de la part d'un langage interprété. J'ai récement fait un test de montée en charge. Le PHP craque à 20 utilisateurs. Java n'avait pas encore remarqué à 60.

    Coût des plates formes:
    On peut développer et déployer à l'aide d'outils gratuits et performant pour Java et php. Les outils payants pour le C sont légèrement supérieurs aux outils gratuits pour le C.

    Développement :
    Le C n'est pas bien adapté au développement WEB. C'est à attendre puisqu'il n'est pas prévu pour cela. C# de Microsoft changerait la donne, mais c'est une technologie encore immature et je m'en méfie un peu.
    Le php est au contraire entièrement prévu pour le développement WEB. C'est le langage le plus facile à apprendre et à utiliser. Cependant, il montre ses limites sur les gros projets. Le code deveint rapidement un enchevêtrement inextricable. Reprendre une application écrite par un autre relève du cauchemard. L'évolutabilité est médiocre. Il est en revanche très bon sur les petits projets, où simplicité d'apprentissage et d'utilisation garantissent des développement rapides.
    Java n'est pas à l'origine prévu pour le développement web, mais divers frameworks ont depuis longtemps comblé cette lacune. Je pense en particulier à JSP.
    deaven a écrit
    Selon moi les avantages du PHP c'est <...> et sa facilité de s'intégrer aux pages HTML.
    JSP permet de créer des pages similaires aux pages php, avec du code HTML et des balise indiquant du Java. Il existe de nombreux outils utilisables gratuitement comme hibernate pour accéder aux bases de données. Java réussit partout là ou php échoue grâce à la programmation objet. Cependant, c'est un peu une grosse usine à gaz quand on a des ambitions modestes.

    En résumé.
    Gros projet : Java.
    Petit projet : php.
    C? Pas fait pour ça.
    Attention aux petits projets qu'on démarre en PHP et qui grossissent, grossissent et vous font regretter de ne pas avoir utilisé Java. Je parle malheureusement d'expérience personnelle. (Je l'avais dit qu'il fallait porter l'application en Java mais Nonnnnn....)

    Il existe d'autres technologies. Celles-ci sont celles que je connais bien. (Le C un peu moins que les autres dans ce contexte. Je n'allais pas étudier les CGI alors que je les sais dépassées.)

    Et bien, ce n'est plus un message, c'est un article.

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par BugFactory Voir le message
    Portabilité :
    La portabilité du C est la plus mauvaise. Il est nécessaire de compiler le code séparément pour chaque plate-forme. Et les codes qui peuvent effectivement être compilés pour différentes plate-formes sont très rares.
    La portablilité de Java est la meilleure du moment. Il peut être exécuté sans recompilation sur n'importe quelle machine équipée d'une machine virtuelle. Il existe des machines virtuellles pour un trrès grand nombre de systèmes, jusqu'à certains téléphones portables.
    La portabilité de php est pratiquement égale à celle du Java dans ce contexte très précis, puisqu'il existe des serveurs web capables d'interpréter le php pour pratiquement tous les systèmes susceptibles d'en abriter un. Encore une fois, le php est limité à la création de pages web.
    Il faut savoir de quelle portabilité tu parle !

    • La portabilité au niveau des sources : du prends ton code et tu le recompile à l'identique sur différente plateforme.
    • La portabilité binaire : ici c'est directement l'exécutable qui peux être utilisé sur différentes plateforme.


    Le C étant compilé en un exécutable natif, forcement il ne sera pas portable d'un système à un autre (encore qu'il existe des outils tel que wine).

    Après si on parle de simplement de portabilité (la phase de compilation ne semble pas être un problème insurmontable), la JVM et l'interpréteur PHP étant développé en C, bah difficile d'être plus portable que le C lui même

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Il faut savoir de quelle portabilité tu parle !

    • La portabilité au niveau des sources : du prends ton code et tu le recompile à l'identique sur différente plateforme.
    • La portabilité binaire : ici c'est directement l'exécutable qui peux être utilisé sur différentes plateforme.
    J'avais fait cette distinction.

    Citation Envoyé par gege2061 Voir le message
    Après si on parle de simplement de portabilité (la phase de compilation ne semble pas être un problème insurmontable), la JVM et l'interpréteur PHP étant développé en C, bah difficile d'être plus portable que le C lui même
    Comme je l'ai dit, écrire un code source qui soit réellement portable n'est pas si facile. Bien que ce soit plus facile aujourd'hui qu'à l'époque ou j'ai écrit mon message précédent, ce sera toujours plus difficile que le PHP ou Java où c'est automatique. Il peut même y avoir des problèmes de compatibilité sur une même plateforme avec des compilateurs différents!
    De plus, la recompilation EST un problème. Si on veut être sûr que ça marche sur MAC après avoir développé sous Windows, il faut tester. Ce qui impose d'avoir un MAC. Avec Java ou PHP, pas la peine de faire une compilation et un test par plateforme.
    Certes, Java et PHP doivent leur portabilité à des programmes en C. Ca ne prouve rien quand à la portabilité du C: les programmeurs de la JVM et de l'interpréteur PHP ont dû subir tous les inconvénients évoqués précédemment.

    Le C est un très bon langage, mais pour le WEB il y a mieux.

    Citation Envoyé par Thierry Chappuis Voir le message
    J'ajouterais encore Python à la liste. La popularité de ce langage est en effet grandissante et Python + Django a de beaux jours devant lui en ce qui concerne les applications web.
    Je l'avais effectivement oublié. J'imagine qu'il y en a d'autres que nous n'avons pas abordés.

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    S'il parle de site Web dynamique, alors il faut considérer Perl qui de plus possède des facilités proches de celles de Java pour la gestion du réseau (donc éventuellement peut convenir à d'autres types d'applications réseaux). Perl est par ailleurs extrêmement portable (on peut le placer presqu'à équivalence avec Java pour un usage classique). Perl peut-être introduit dans des pages HTML de la même façon que PHP via des technologies comme Mason mais peut aussi garder un style CGI tout en ayant des performances incomparables (avec Mod_perl), Perl sert aussi de base à des CMS professionnels comme Bricolage.
    Je dirais donc que pour des projets sérieux, Perl comme Java sont à considérer, d'autant que Perl est un langage dynamique interprété à phase de développement beaucoup plus rapide que Java.

    --
    Jedaï

  5. #5
    Invité de passage
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Par défaut Et aujourd'hui?
    Qu'en est-il aujourd'hui, en 2008?
    Ne peut-on toujours pas envisager PHP pour de gros projets?
    Le C est-il définitivement abandonné dans ce domaine?
    Si le JAVA est préférables pour les projets de grande ampleur, à partir de quelle limite est-il préférable de l'utiliser (nombre de visiteurs simultanés, transfert par jour)?
    Je suis actuellement sur un projet de moyenne ampleur, une site web dynamique pour une gestion d'évènements au sein d'une entreprise, avec des saisies / lectures tous les jours (une cinquantaine d'utilisateurs/jours environ, à peu près en simultané).

  6. #6
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Ne peut-on toujours pas envisager PHP pour de gros projets?
    Non; trop de libertés, pas performants en montée en charge

    Le C est-il définitivement abandonné dans ce domaine?
    Depuis longtemps on dispose d'outils 100 fois mieux adpatés

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    +1 pour le C.

    Java reste supérieur au PHP pour les gros projets, mais ce dernier a fait quelques progrès grâce à une véritable programmation objet et au Zend framework. Cependant, ça ne suffit pas à combler l'écart, d'autant plus que Java aussi poursuit son avancée.

    C# est à présent envisageable. Cependant, c'est un produit Microsoft, donc lié à Windows et avec des coûts important. Un collègue qui connaît Java et C# m'a dit préférer Java, entre autre parce que le temps que les assistants de C# vont font gagner, ils vous le font reperdre ensuite, quand ils atteignent leurs limites et qu'il faut manipuler à la main un code généré bien crade.

    C'est difficile de donner une limite à partir de laquelle mieux vaut utiliser Java plutôt que PHP. Elle est liée au facteur charge, comme vous l'avez mentionné, mais aussi à la complexité de l'application, les contraintes sur la fiabilité, les contraintes sur le temps de développement, les contraintes sur les évolutions futures, le niveaux des développeurs, etc... On peut même préférer un de ces langages pour que les informaticiens gagnent de l'expérience avec celui-ci.
    Pour le projet dont vous parler, une cinquantaine d'utilisateurs auront du mal à mettre un serveur WEB à genoux, donc PHP peut faire le travail. Pour les projets d'entreprise Java est plus approprié parce que le code très structuré qu'on utilise permettra de faire évoluer l'application avec l'entreprise sans se retrouver avec un fouillis inextricable, pour peu qu'on s'impose un minimum d'auto discipline et qu'on suive une architecture comme le MVC (mais ça, c'est vrai pour tous les langages). Pour vraiment vous aider à choisir, il faudrait que vous créiez un autre sujet avec un maximum de détails.

    Comme l'a fait remarquer Jedaï, le Perl, et maintenant aussi Ruby, sont des alternatives crédibles. Je ne connais pas Ruby. Je n'ai fait qu'effleurer Perl, mais les variables non typées et les variables par défaut m'ont fait fuir. Je dirais que Perl est aussi destiné au développement rapide de petits projets, mais un pro du Perl me contredira peut-être.

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    J'ajouterais encore Python à la liste. La popularité de ce langage est en effet grandissante et Python + Django a de beaux jours devant lui en ce qui concerne les applications web.

    Pour ce qui est des questions de portabilités évoquées dans ce fil, il suffit de se plonger dans le code source de la JVM pour se rendre compte que ce qui fait la portabilité de Java, c'est le C. C90 est encore actuellement le langage le plus portable que je connaisse et c'est sa force. Il s'interface avec pratiquement tous les langages que je connais. Il constitue donc la solution de choix pour l'implantation de bibliothèques portables pouvant être utilisées par un grand nombre de langages à l'aide de passerelles (bindings). Python, Ruby, Java, quant à eux, bénéficient de la portabilité du C pour implanter leurs machines virtuelles et permettent de travailler à un niveau d'abstraction beaucoup plus haut. Leur force est plus dans la rapidité de développement que dans la portabilité.

    Je n'ai toujours pas compris ce que le PO entendait réellement par "point de vue réseau". Comme l'ouverture de ce fil dae de 2005 et que le PO ne compte que 13 messages, je doute qu'il soit parmi nous aujourd'hui pour apporter plus de précisions. Le fait qu'il mentionne PHP me laisse penser qu'il s'agit de la programmation de sites web dynamiques. Dans ce contexte, je pense que Python et Ruby sont de sérieux candidats (même si j'avoue une préférence subjective pour le premier) et que C est probablement HS.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Et si on reposait la question en parlant non pas des avantages mais des inconvénients:
    - C n'est pas un langage objet,
    - PHP n'est pas adapté à des appplications locales (non Web), dispose de peu de bibliothèques applicatives et, PHP étant interprété, les process sont assez lents,
    - Java et PHP ne disposent d'aucun EDI de haut niveau (style Visual Studio ou Delphi)

    Sur le plan portabilité sur plusieurs plateformes, puissance du langage (capacité à coder avec le minimum d'instruction) et maintenabilité, Java est probablement le meilleur choix pour un gros projet (Personnellement, je prefère toutefois Delphi ou C#)

  10. #10
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    - Java et PHP ne disposent d'aucun EDI de haut niveau (style Visual Studio ou Delphi)
    Ah bon! et Matisse tu connais?

  11. #11
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Java n'a pas d'IDE perfectionnés ? Ca c'est nouveau !!

    C n'est pas objet mais ce n'est pas un défaut en soi (personnellement je préfère largement les langages fonctionnels aux langage objets), son plus sérieux défaut dans le contexte des applications réseaux est qu'il est très bas niveau et qu'il est extrêmement aisé de créer des vulnérabilités graves et difficiles à détecter en C, pour une application réseau, c'est (ça devrait être) rédhibitoire, néanmoins il y a énormément d'application réseau en C tout de même, avec le succès qu'on connaît. (Non non, je ne suis pas du tout sarcastique...)

    PHP... est un très mauvais langage en général, pour être honnête. On peut trouver des ressources édifiantes sur le sujet sur internet. Il y a plusieurs raisons à ces problèmes (dont la générale inexpérience en informatique de beaucoup de développeurs PHP), mais on ne peut nier que le code source de l'interpréteur PHP lui-même est de mauvaise qualité (le nombre de faille qui y a été trouvé est effarant) et que le langage n'encourage pas à de bonnes pratiques de sécurité.


    Java, C#, Perl (Catalyst), Ruby (OnRails), Python (Django) sont tous des alternatives crédibles et préférables aux deux langages précédemment cités.

    --
    Jedaï

  12. #12
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par Graffito Voir le message
    e (capacité à coder avec le minimum d'instruction) et maintenabilité, Java est probablement le meilleur choix pour un gros projet (Personnellement, je prefère toutefois Delphi ou C#)
    Peut on faire du Delphi ou C# sous linux de façon convaincante ? En d'autres termes est ce que Kylix et Mono sont aboutis ?

    Curieux que personne n'est mentionné Ruby on Rails, ca buzze beaucoup quand même au niveau de ce framework...

  13. #13
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Peut on faire du Delphi ou C# sous linux de façon convaincante ? En d'autres termes est ce que Kylix et Mono sont aboutis ?

    Kylix ?
    j'aurais plutôt dit Lazarus
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Peut on faire du Delphi ou C# sous linux de façon convaincante ? En d'autres termes est ce que Kylix et Mono sont aboutis ?

    Curieux que personne n'est mentionné Ruby on Rails, ca buzze beaucoup quand même au niveau de ce framework...
    Ruby a été mentionné. Ruby + web, c'est implicitement RoR.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Membre très actif
    Inscrit en
    Août 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 307
    Par défaut
    Citation Envoyé par deaven Voir le message
    En C l'avantage c'est la portabilité entre systèmes Linux et Windows.

    Pour ce qui est du JAVA je ne vois pas vraiment d'avantage.

    Merci pour votre aide à ma réflexion
    Attention les bibliothéques "évoluées" de C ne sont pas en général portable, particulièrement en ce qui concerne le réseau.
    C n'est pas orienté objet, d'où des problèmes de maintenances, c'est encore mieux d'utiliser C++.
    Java est offre beaucoup de solution quasi prêt à l'emploi -des frameworks et bibliothéques opensource et fiables- pour la gestion des applications distribuées, je crois que dans ce sens il est de loin la meilleur solution actuellement

Discussions similaires

  1. Que choisir : PHP versus Java ?
    Par Sniper37 dans le forum Général Conception Web
    Réponses: 164
    Dernier message: 28/04/2009, 16h50
  2. [Tomcat]échange de session entre php et java
    Par benwa dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 05/06/2007, 17h01
  3. [Applet] Comment envoyer une variable php au java?
    Par abstractor77 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 09/03/2006, 10h18
  4. PHP ou Java pour un site associatif ?
    Par Flashball dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 02/03/2006, 19h56
  5. [JSP/Tomcat] Intégration de PHP dans Java
    Par milhouz_deglingos dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 17/08/2005, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo