web-dev-qa-db-fra.com

JavaEE vs PHP - pourquoi tant de gens pensent que Java est mieux?

J'ai besoin de valoriser quelle technologie utiliser pour un projet web, l'équipe est composée de 4 développeurs et la durée du projet est de 1 an.

Je suis plus familiarisé avec php mais le client me demande de le faire avec Java EE.

J'ai toujours la même perception avec Java et ses frameworks:

  • Tant de xml et de classe pour faire des choses simples. Dans codeigniter je dois utiliser 3 fichiers (modèle, vue et contrôleur) avec hibernation + ressort + JSF J'ai besoin de plus de 10 fichiers !!!
  • Une utilisation abusive du serveur. Le code javascript perd de son importance et ce n'est pas bon de nos jours. Bien sûr, nous pouvons ajouter du code javascript mais il semble que les "gars du web Java" préfèrent faire les choses sur le serveur plutôt que sur le client.
  • Application pas belle. Richfaces ressemble à une toile d'il y a plusieurs années.
  • Quand je vois une application Java comme liferay, alfresco, elle a l'air lourde et très lentement.

Je pense que je peux être un peu confus parce que beaucoup de gens et de grandes entreprises continuent d'utiliser Java pour le Web. Pourquoi? Il s'agit d'intégration?

D'autre part Java est plus rapide que PHP, mais les serveurs Java ont besoin de beaucoup de mémoire (plus cher). Dans un serveur avec beaucoup de requêtes, nous pouvons améliorer avec un langage comme php avec plus de temps par processus et moins de mémoire par processus car le serveur n'est jamais réduit à cause de la mémoire. Parfois, un serveur Java pourrait s'effondrer à cause de la mémoire et le temps de réponse moyen dans un environnement de production réel serait plus grand que php.

Je suis vraiment satisfait de Codeigniter, pourquoi tant de gens pensent que Java est mieux?

Merci d'avance,

Alberto

24
alasarr

eh bien je n'utilise pas CodeIgniter donc ma comparaison est déjà incomplète.

La première question serait: pourquoi demandent-ils Java? Souvent, les grandes entreprises ne proposent que des environnements Java ou .Net pour les systèmes productifs, de sorte qu’elles n’ont peut-être pas les moyens d’exécuter de manière productive les applications PHP. Je sais que ce n’est pas compliqué, mais les personnes chargées de l'entretien définissent ce qu'elles exécutent.

Après que les gens parlent des langues et de leurs fonctionnalités, mais lorsque le premier cas d'utilisation commerciale doit être discuté, aucun cadre ne vous fera gagner autant de temps pour le faire compter. La plupart des langages de programmation résoudront en quelque sorte le problème.

Java n'est pas seulement RichFaces ou JSF. Il y a beaucoup de choix. BEAUCOUP. Pas un avantage.

Le support d'outil est souvent oublié. Java est livré avec une machine virtuelle Java qui peut être analysée en détail ce qu'elle fait avec sa mémoire, le garbage collector, les threads, etc.). Profilers in Java vous permet pour identifier presque toute fuite de mémoire en quelques heures. La plupart de la surveillance JVM fonctionne en temps réel (avec environ 5% de surcharge). Parler d'outil: la prise en charge du refactoring est bien au-delà de ce qui est PHP IDEs viennent avec avec.

Vous avez raison si le premier regard sur Java comparé à PHP ressemble à des éléphants et des chevaux. (Ok le logo de php est un éléphant, une comparaison parfaite ..) .). Les chevaux sont plus flexibles pour tourner dans les coins mais ils peuvent ne pas en transporter autant. Je pense que du point de vue du langage Java est encore plus avancé que PHP. Espaces de noms, classes, sécurité de type . Ceux-ci sont quelque peu disponibles en PHP mais toujours assez nouveaux.

Des cadres comme Spring vous permettent de tirer parti de votre application au niveau architectural et sont plus que de simples bibliothèques.

Je ne suis pas le plus grand fan de Java EE, donc je ne m'en plaindrai pas.

Une approche simple pour vous pourrait être Tomcat + Spring + SpringMVC et un moteur de modèle pour les interfaces graphiques. Il y a aussi GWT (Vaadin) si vous ciblez un comportement client plus rapide (encore beaucoup plus là-bas).

Il existe des approches légères dans Java aussi. Je conviens que les normes dans Java ont une tendance plus grasse.

D'après mon expérience Java n'a pas d'inconvénients majeurs par rapport à PHP. Le choix du langage n'affectera le succès du projet que si les gens viennent avec moins de connaissances que nécessaire et passent trop de temps à apprendre des choses. Et essayer trouver le bon livre sur Java pourrait être un projet à lui seul :) (comptant comme un avantage)

Mais je n'ai aucun doute PHP vous permettrait de terminer le projet.

Je préfère examiner les objectifs et les exigences avant de choisir la technologie. Cela implique ou simplifie souvent une décision.

J'espère avoir répondu à au moins une question ici :)

28
wemu