Quand est Java un bon choix pour le développement web?
Veuillez ne pas dire "Quand vous avez une équipe de développement qui ne connaît que Java."
Compte tenu des nombreux frameworks disponibles, de la maturité de la plateforme etc., je suis tenté de dire "presque toujours". Voici donc quelques raisons pour lesquelles vous ne devez pas utiliser Java:
Java est utilisé dans les sites Web de petite et moyenne taille. Le point crucial est qu'il y a beaucoup moins d'hébergement Web gratuit pour les sites Web Java que pour PHP, par exemple, ce qui signifie que si vous n'avez pas suffisamment de ressources pour héberger votre propre serveur Web, vous ne choisirez probablement pas Java.
Notez qu'avec Java EE 6, en particulier le profil Web, il y a beaucoup de technologies standard incluses qui peuvent créer des applications Web très puissantes sans avoir à coder beaucoup. Ce n'est malheureusement pas encore assez courant.
Notez que cela a quelque peu changé récemment avec Google Application Engine qui vous permet de déployer gratuitement des applications Web standard Java (avec quelques restrictions) dans le cloud pour les sites à faible trafic.
Lorsque votre plate-forme est UNIX/Linux et que vous avez besoin d'un ensemble complet d'outils, tels que le mappage objet/relationnel, la sécurité, l'orchestration complexe des services Web, etc.
(Nous ne parlons pas de sites Web simples, n'est-ce pas?)
Chaque fois qu'une autre équipe de Java me fait chier, je souffle Steam en recherchant des questions comme celle-ci. Permettez-moi de réitérer. Je suis un développeur côté client et je l'ai depuis près de 5 ans maintenant. J'ai travaillé sur des sites allant de microsites uniques à contenu principalement, à des sites aussi massifs que Sears, à des sites de type application plus sophistiqués où une expertise approfondie de l'interface utilisateur est nécessaire. J'ai traité Rails, PHP, les formulaires Web .net (ew), .net MVC (beaucoup mieux) et un bouquet de solutions Java pour le développement Web accompagné de développeurs et d'équipes qui ont toutes été des désastres complets. à traiter. J'écris aussi un peu de Python et je commence à Dig Django.
Mon expérience avec les équipes de Java a été universellement horrible. Les outils sont toujours un PITA. Les développeurs ne veulent jamais croire qu'ils ont fait quelque chose de mal et les amener à réexaminer leur propre terrain une fois que vous avez exclu un problème de votre côté, c'est comme se arracher les dents. D'après mon expérience, la première victime de traiter avec les équipes de Java est le temps de développement converti en temps de courrier électronique pour écrire plusieurs explications détaillées sur la raison pour laquelle le problème est définitivement de leur côté. Le HTML n'est généralement pas leur problème à moins que vous ne vouliez réellement le contrôler. Ensuite, tout va probablement aller en enfer de leur côté parce que vous voulez réellement déplacer des divs de niveau supérieur.
Il y a des choses au sujet de la langue que je n'aime pas, mais je pense que le vrai problème est la culture et le fait que l'acceptation est si répandue que vous avez une tonne de médiocrité au milieu. La culture que je soupçonne découle de la façon dont Java est commercialisé. Écrivez une fois, déployez partout. Traduction: "Vous avez seulement besoin d'apprendre une chose!" Les gens qui trouvent cela attrayant veulent essentiellement manier Java comme un gigantesque marteau pour chaque clou avec un minimum de perfectionnement de leur métier en ce qui concerne le développement Web.
Donc, si vous avez des développeurs qui connaissent Java et d'autres langages mais qui préfèrent toujours Java, je dirais, oui, allez-y si cela semble être la bonne solution. Mais si vous avez Java devs qui connaissent Java et que tout le reste répond à peine aux critères pour en faire une puce sur leur CV, demandez-leur de créer une application simple avec une variété de pages semi-complexes à la fin HTML et essayez ce test simple. Brisez du HTML. Essayez de leur faire comprendre ce qui ne va pas. Si le problème immédiat qu'ils commencent à résoudre détourne le blâme d'eux-mêmes, éloignez-les du! @ # $ Du développement Web. Le développement Web est multidisciplinaire et nécessite un intérêt actif dans le domaine pour réussir. Ce n'est pas un endroit pour les gens qui veulent seulement avoir à maintenir la connaissance d'une langue et sont plus horrifiés par les problèmes que intéressés à les résoudre.
Je n'affirme pas que Java lui-même est la racine de l'incompétence et j'ai entendu dire que Spring est bon. Je suis sûr qu'il existe des équipes Java compétentes. Je n'en ai pas encore rencontré et je ne pense pas que ce soit une coïncidence. Je pense que Sun y est pour beaucoup. Je pense aussi que diriger des équipes Web comme ou sous des services informatiques a beaucoup à voir avec cela.
Java convient parfaitement aux petits sites Web. Vous pouvez faire fonctionner les pages JSP très rapidement avec un serveur Web Java tel que Tomcat , par exemple.
Bien que d'après mon expérience, Java soit plus courant pour les grands sites Web où il y a un plus grand besoin de traitement complexe côté serveur - dans ce cas, vous trouverez des cadres Java plus sophistiqués utilisés tels que JavaServer Faces (JSF).
Il est important de noter qu'une installation complète de Java n'était historiquement pas disponible dans de nombreuses configurations d'hébergement Web bon marché, ce qui peut expliquer la prévalence d'autres langues telles que PHP dans ces environnements.
Les principales raisons d'utiliser Java dans le développement Web se résument à ce qui suit:
Techniquement parlant:
Si je commençais une application web, j'utiliserais Ruby on Rails et la conception de telle manière que les hotspots pourraient être échangés lorsque RoR atteindra ses performances) limite de mise à l'échelle.
Java a une odeur définie de COBOL et "les codeurs bas de gamme utilisent Java" qui traînent dessus, et les fiascos Oracle n'aident pas la réputation. Si vous avez le choix, choisissez une langue qui attire les meilleurs développeurs.
C'est simple: utilisez Java lorsque les performances du back-end sont une préoccupation majeure. Il y a plus de surcharge lors du codage mais le code s'exécutera au 1/200ème au 1/500ème du temps littéralement. Php, Ruby et d'autres langages typés dynamiquement seront toujours beaucoup plus lents que les serveurs Java ou .net.
La plupart des solutions pour le Web n'en auront pas besoin. Twitter n'a pas abandonné Rails jusqu'à ce qu'ils commencent à gagner en popularité par exemple.