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

  1. #21
    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#)

  2. #22
    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?

  3. #23
    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ï

  4. #24
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par Jedai Voir le message
    [...] (personnellement je préfère largement les langages fonctionnels aux langage objets) [...]
    Jedaï
    étrange venant de toi qui est bien placé pour savoir qu'on peut faire du fonctionnel et de l'objet dans un savoureux mélange... voulais-tu dire « procédural » ou sous-entendais-tu qu'avec de l'objet ton fonctionnel à de bonne chance de ne pas être pur ?

  5. #25
    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
    Citation Envoyé par Garulfo Voir le message
    étrange venant de toi qui est bien placé pour savoir qu'on peut faire du fonctionnel et de l'objet dans un savoureux mélange... voulais-tu dire « procédural » ou sous-entendais-tu qu'avec de l'objet ton fonctionnel à de bonne chance de ne pas être pur ?
    Tu parles des objets à la OCaml je suppose ?
    A vrai dire j'ai cherché à rester concis dans mon post et à ne parler que des solutions mainstreams (par exemple Haskell constitue une option intéressante pour faire des applications réseaux plus sécurisées, cf Happs...), je faisais donc allusion à l'orienté objet tel qu'il est pratiqué dans les langages mainstream actuellement, comme Java ou C#. D'autres modèles objets beaucoup plus intéressants peuvent être trouvés dans d'autres directions (OCaml, Eiffel, Smalltalk, ...), mais ils ne sont sûrement pas ce qui vient à l'esprit de la plupart des programmeurs quand on leur parle d'orienté objet au jour d'aujourd'hui.

    --
    Jedaï

  6. #26
    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
    Ah bon! et Matisse tu connais?
    Matisse sans Eclipse, ça marche ?
    Eclipse sans add-on, est-il au niveau de Visual studio ou des produit d'origine Borland?

    Le problème c'est que chaque développeur Java utilise son propre environnement de dévellopement différent de celui du voisin.

  7. #27
    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 Graffito Voir le message
    Matisse sans Eclipse, ça marche ?
    Eclipse sans add-on, est-il au niveau de Visual studio ou des produit d'origine Borland?
    L'important est que Eclipse avec add-ons le soit.

    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++

    +

  8. #28
    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
    Matisse sans Eclipse, ça marche ?
    oui, ça s'appelle Netbeans

  9. #29
    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
    Bon, apparament je ne suis pas assez l'actualité JAVA(il me semblait que la plateforme de développement la plus installée restait Eclipse).

    Netbeans 6.0 avec Swing a l'air plutot évolué .

  10. #30
    Expert confirmé

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Par défaut
    Eclipse et Netbeans sont deux IDE très évolué et modulable qui avec les plug-in qu'il faut sont aussi performant que visual studio mais aussi surtout gratuit car la version express est quand même assé limité par rapport à ce que peut apporté Netbeans ou Eclipse.

  11. #31
    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...

  12. #32
    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

  13. #33
    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++

    +

  14. #34
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Il est bizarre ce débat.

    Il n'y a pas de réseau dans le standard C, on a du code spécifique à chaque OS.

    Maintenant, rien ne t'empêche d'utiliser une librairie de plus haut niveau qui sera portable et facile à utiliser.

    Il en existe en C et aussi en C++.

    Et là où c'est drôle c'est que JAVA doit sûrement implémenter sa partie réseau avec les fonctions C de l'OS.

    Donc évidemment l'API java sera plus simple que celle de l'OS, puisque cette dernière est faite pour être la plus générale possible. Il faudrait comparer JAVA avec une lib réseau C ou C++ ( comme boost.asio par exemple ).

    Mais faire des sockets en C par exemple (ou coder une classe socket C++ utilisant l'api C de l'OS ) est toujours très intéressant.

    Pour le PHP ben euh... ya pas vraiment de rapport avec le reste? A moins que tu ne veuilles parler que de la publication de page web? Mais ça avec un binaire CGI et un serveur web tu peux générer tes pages webs sans aucune connaissance réseau ( écriture sur la sortie standard ).

  15. #35
    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 gorgonite Voir le message
    Kylix ?
    j'aurais plutôt dit Lazarus
    Ca compile les projets Delphi sous linux ?

  16. #36
    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
    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 était relativement abouti et plutot compatible avec Delphi6 (moyennant quelques IFDEF sur 1% du code, on avait un code commun), mais il n'est plus maintenu depuis 5 ans et devient de plus en plus dur à réinstaller sur les nouvelles distibutions Linux.
    Mono (Linux ou Windows) permet de faire tourner des exe créés avec Visual Studio sous Windows, à condition de ne pas utiliser les composants Winforms les plus complexes (par exemple, j'essaierai même pas le DataGridView).

  17. #37
    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

  18. #38
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le java est beaucoup plus portable que le C, puisqu'il marche partout où il y a une JVM.
    Après pour les performances, les gens sont divisés... Deux écoles s'affrontent, disant que l'un est plus performant que l'autre...
    En fait, si on utilise les sockets en C comme un barbare (c'est à dire en utilisant uniquement des appels du type : send, recv qui font directement appel à des appels systèmes), ça va forcement être ralenti (surtout si c'est pour lire 2 caractères à chaque fois)

    En Java, on couple les sockets avec des BufferedInput/OutputStream en général pour bufferiser les entrées (on lit par exemple 5000 caractères d'un coup et au prochain read on lit directement dans le buffer) et les sorties. Ceci de manière totalement transparente.

    Pour le réseau en C classique (sous UNIX avec les sys/socket.h etc. et sous Windows avec les win2sock), il faut en général recoder une couche au dessus pour imiter ce type de fonctionnalités.


    Après, le reste a déjà été dit.

  19. #39
    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 Médinoc Voir le message
    Le java est beaucoup plus portable que le C, puisqu'il marche partout où il y a une JVM.

    C/C++ sont beaucoup plus portables que le Java... puisqu'en codant proprement et en utilisant un compilateur respectueux des normes, on pourra compiler vers bien plus de plate-formes, et donc faire fonctionner son programme là où on attendrait encore une JVM

    morale de l'histoire :
    il aurait mieux valu utiliser "Java permet une portabilité sans recompilation", et non "Java est plus portable que le C (ou le C++)"

    Citation Envoyé par millie Voir le message
    En fait, si on utilise les sockets en C comme un barbare (c'est à dire en utilisant uniquement des appels du type : send, recv qui font directement appel à des appels systèmes), ça va forcement être ralenti (surtout si c'est pour lire 2 caractères à chaque fois)

    En Java, on couple les sockets avec des BufferedInput/OutputStream en général pour bufferiser les entrées (on lit par exemple 5000 caractères d'un coup et au prochain read on lit directement dans le buffer) et les sorties. Ceci de manière totalement transparente.

    Pour le réseau en C classique (sous UNIX avec les sys/socket.h etc. et sous Windows avec les win2sock), il faut en général recoder une couche au dessus pour imiter ce type de fonctionnalités.
    pas vraiment d'accord.
    sans avoir à se reconstruire une bib, passer par des FILE* pour les accès aux sockets permet d'éviter ce problème... pourquoi toujours partir sur l'hypothèse que les langages bas niveau oblige systématiquement à tout reconstruire
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  20. #40
    Expert confirmé

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    C/C++ sont beaucoup plus portables que le Java... puisqu'en codant proprement et en utilisant un compilateur respectueux des normes, on pourra compiler vers bien plus de plate-formes, et donc faire fonctionner son programme là où on attendrait encore une JVM
    Le problème est là, il existe trop de compilateur C et C++ et dont certains ne sont pas entièrement aux normes, alors que le Java lui peut importe le compilateur que tu utilise ça marchera et en plus tu le compile une fois et c'est tout ce qui est un énorme avantage Et puis cela demande plus de temps au développeur de faire un code entièrement portable en C que en Java. Voir les sockets par exemple comme l'a si bien dit millie.

    Citation Envoyé par gorgonite Voir le message
    morale de l'histoire :
    il aurait mieux valu utiliser "Java permet une portabilité sans recompilation", et non "Java est plus portable que le C (ou le C++)"
    Oui et non je suis un peu mitigé sur ce point de vue car pour moi Java est tout ce qu'il y a de portable, le C aussi mais il est soumis à trop de condition.

    Citation Envoyé par gorgonite Voir le message
    sans avoir à se reconstruire une bib, passer par des FILE* pour les accès aux sockets permet d'éviter ce problème... pourquoi toujours partir sur l'hypothèse que les langages bas niveau oblige systématiquement à tout reconstruire
    Entièrement d'accord, même si il est vrai que le C a été inventé pour justement tout reconstruire car à la base c'étais pour faire un système d'exploitation.

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