Pourquoi Java est-il fréquemment utilisé pour les applications d'entreprise? [fermé]


En tant que débutant en Java, je me demande: de toutes les langues du monde, pourquoi Java est-il fréquemment utilisé pour les applications d'entreprise? Qu'est-ce qui le rend ainsi par rapport aux autres langues? Continuera-t-il d'en être ainsi dans les années à venir?

J'apprécierais vos idées. Merci d'avance :)

Author: alimango, 2009-07-29

11 answers

Un mot: bibliothèques. Java dispose d'une vaste gamme d'excellentes bibliothèques pour résoudre la plupart des problèmes que l'on doit résoudre lors du développement d'applications d'entreprise. Dans de nombreux cas, il y a plus d'un bon choix pour répondre à un besoin particulier, et souvent ces bibliothèques sont libres et open source sous une licence favorable aux entreprises.

Certains ont fait valoir qu'il y a, en fait, trop de choix dans l'écosystème Java, et que le développement de logiciels d'entreprise en Java nécessite les développeurs de prendre un grand nombre de décisions qui peuvent avoir un impact de grande portée sur le produit final pour le meilleur ou le pire. Cela a probablement contribué à propulser la popularité d'alternatives comme.NET, qui a la réputation d'offrir moins de choix, mais avec les avantages d'une pile d'applications et d'un ensemble d'outils plus bien intégrés. La direction que vous choisissez dépend, je suppose, de la valeur que vous accordez à la "liberté de choix" ou à la "liberté de choix".

 39
Author: Rob H, 2009-07-29 13:39:57

Il y a beaucoup de raisons pour lesquelles une grande entreprise (le type à utiliser pour les solutions d'entreprise) choisirait Java. Notez que je ne dis pas que toutes ces raisons sont correctes ou valides. Mais le point pertinent est qu'ils semblent valables pour un CTO chez MegaCorp.

La Courbe D'Apprentissage

Java est un langage simple sans beaucoup de flexibilité des autres membres de la famille C, cela coupe dans les deux sens, mais il est considéré comme un langage simple à utiliser par une armée de programmeurs. Des projets d'entreprise ont tendance à impliquer un grand nombre de développeurs (à tort ou à raison) et il est beaucoup plus facile d'obtenir un développeur à un niveau minimum de compétence en Java que C++. Vous avez également toute une génération de diplômés qui ont probablement été en grande partie scolarisés à Java.

Choix

Java a une vaste gamme de bibliothèques, de frameworks, d'outils et d'Es, et de fournisseurs de serveurs. Pour une entreprise il est bon d'avoir le choix, même si c'est juste pour l'utiliser comme monnaie d'échange lors de la négociation des prix. Le le langage se prête à des outils de qualité de code qui permettent l'application des normes de l'entreprise (et comme mentionné, il y a beaucoup de ces outils).

Indépendance de la plateforme

Java est écrit une fois, exécuté (enfin, déboguer) partout. Sun a activement encouragé les normes ouvertes qui permettent à plusieurs fournisseurs de mettre en œuvre leurs solutions. Ces normes donnent au client le confort qu'ils peuvent migrer d'un fournisseur à un autre si un fournisseur donné va sous ou commence à charger plus. De bien sûr, la réalité est que chaque fournisseur fait de son mieux pour fournir des fonctionnalités de "valeur ajoutée" qui lient le client à eux très bien.

La Maturité

Il existe depuis longtemps, exécutant beaucoup de serveurs. Si votre application Web doit être "6 sigma" ou similaire et que vous êtes le CTO de MegaCorp, vous n'allez pas regarder cela gentiment sur Joe le développeur qui veut le faire dans RoR.

Calendrier/Marketing

Java est sorti lorsque la programmation se déplaçait vers le web. Il a été positionné intelligemment et a obtenu une position forte au début du développement Web. En raison des normes ouvertes, il y a de très grandes entreprises qui produisent ces plates-formes et elles commercialisent Java assez difficile à vendre ces plates-formes.

L'Inertie

Les grandes entreprises avancent à un rythme glacial (beaucoup utilisent encore Java 1.4 cinq ans après la sortie de 5), donc une fois qu'elles ont choisi Java, il faut un investissement massif pour passer à une autre plate-forme. Avec chaque le jour qui passe, ils sortent plus de Java qui aurait besoin d'être migré. La plupart de ces entreprises ne sont pas principalement des magasins de codage, il est donc très difficile de convaincre l'entreprise de dépenser quelques dizaines de millions pour réécrire toute leur base de code sans aucun avantage commercial immédiat.

 24
Author: Rich Seller, 2009-07-29 03:27:55

Une autre raison pourrait être le soin que Sun a pris pour garder Java rétrocompatible. La grande majorité du code Java peut être exécuté sur la dernière version de la JVM sans problème. C'est tout un exploit, étant donné l'âge de Java. D'un autre côté, vous pourriez dire que Java n'a pas beaucoup changé au cours de toutes ces années.

Les entreprises aiment la stabilité dans une plate-forme.

 9
Author: Jeroen van Bergen, 2009-07-29 06:10:55

Sun a ciblé Java pour répondre aux besoins des entreprises dès le début. Il pousse les normes qui favorisent l'indépendance des fournisseurs à tous les niveaux. Plateforme indépendante, base de données indépendante, serveur d'applications indépendant, etc.

En outre, ils ont promu des outils informatiques au niveau de l'entreprise, en termes de messagerie, de gestion des transactions et d'autres choses qui inquiètent l'entreprise.

Avant Java, les choses au niveau de l'entreprise avaient tendance à être faites en C++ (il y avait beaucoup d'exceptions (fait quelqu'un se souvient de PowerBuilder?) mais c'était la règle) et Java convient bien comme successeur de C++ pour les applications métier, où ce type de gestion de la mémoire ne vaut pas la peine d'être payé.

En plus de tout cela, le langage lui-même parle aux entreprises en termes d'éviter les constructions difficiles à obtenir qui peuvent vraiment gâcher une base de code, comme la surcharge de l'opérateur. Les applications au niveau de l'entreprise ont tendance à être gérées par de nombreuses mains différentes, qui ne sont pas toutes au sommet de les programmeurs de ligne, et avoir des filets de sécurité pour éviter de se tirer dans le pied est une chose souhaitable.

Il est également arrivé au bon moment. Un nouveau paradigme (c'était bien avant l'existence de.NET) qui promettait de combiner plusieurs fournisseurs dans une capacité à rivaliser avec Microsoft, qui a obtenu les goûts d'IBM et Oracle à bord, qui est arrivé à combler un nouveau trou, qui était l'exigence émergente pour développer des applications Web, où C++ n'était plus un choix évident.

 8
Author: Yishai, 2009-07-29 03:00:19

Les affaires sont une question de temps, d'argent et d'opportunités.

Utiliser Java signifie que votre nombre d'erreurs dans le code diminue, simplement parce que les pointeurs sont difficiles. Vous utilisez un GC et vous supprimez instantanément toute une classe d'erreurs de votre code.

Deuxièmement, Java a été l'un des premiers langages à être livré avec une bibliothèque de fonctions pré-écrite, ce qui a vraiment couvert une grande partie de la phase de développement. Cela limitait la façon dont les choses étaient faites, mais cela signifiait que les gens pouvaient apprendre plus rapidement, avaient plus d'outils à leur disposition et avaient un grand ensemble de bibliothèques pour faire des choses comme le réseau, l'interface graphique, le Web, le cryptage, etc. Java en soi en tant que langage n'était vraiment pas si spécial, mais Java plus l'API Java l'était.

Donc, si vous avez un langage qui a moins d'erreurs et plus d'infrastructure gratuitement, vous vous retrouvez avec plus de code en moins de temps. Bien sûr, le code ne guérit pas le cancer, il n'est pas aussi rapide que le code C++ pour réaliser la même tâche, mais il atteindra l'objectif de l'entreprise d'obtenir un application.

Si vous faites plus de code, pour moins d'argent, vous pouvez poursuivre plus d'opportunités. Vous apportez ensuite l'inertie à la table en termes de code qui a déjà été implémenté en Java et vous commencez à voir pourquoi l'entreprise ne veut pas s'éloigner de sa zone de confort.

 7
Author: Spence, 2009-07-29 02:56:13

Je ne devrais pas dire ça, mais...

La vraie raison est parce qu'il est nommé d'après le café!

 7
Author: Powerlord, 2009-07-29 13:45:32

Personnellement, je crois que l'une des principales raisons est le problème multiplateforme.

Les programmes Java écrits "correctement" (sans hypothèses du système d'exploitation sous-jacent) peuvent s'exécuter sur n'importe quelle JVM. Cela signifie que vous n'êtes pas lié à une plate-forme particulière, contrairement à.NET qui vous marie à Windows.

J'ai vu du code Java s'exécuter sur les mainframes, les routeurs Linux, dans la base de données Oracle, et naturellement sur les PC.

 3
Author: Thorbjørn Ravn Andersen, 2009-07-29 09:09:18

C'est pas cher, RAD, multi-plateforme, et les développeurs abondent.

 2
Author: Ehtyar, 2009-07-29 02:34:00

Le développement en C++ est trop lent et coûteux et.NET n'existe pas depuis assez longtemps. L'inertie des entreprises est énorme, rappelez-vous.

Les entreprises veulent des langues qui sont soutenues par un fournisseur professionnel (ie. une entreprise comme Sun) et souvent rester à l'écart des langages Open Source pour la simple raison qu'il n'a pas été écrit par une entreprise.

 2
Author: Leonard Ehrenfried, 2009-07-29 02:41:49

Également pour les applications client-serveur, vous avez une abondance de choix pour les serveurs d'applications de qualité production qui ont la même interface J2EE (IBM WebSphere, BEA Weblogic, JBoss). Alternativement, vous pouvez utiliser le framework Spring sur n'importe quel serveur comme Apache Tomcat conforme à l'API Servlet si vous êtes convaincu que vous n'avez pas besoin d'EJBs. Contrairement à.NET, il est difficile de trouver des choix en ce qui concerne les serveurs d'applications.

Il y a une abondance de choix en ce qui concerne les cadres pour un étant donné la tâche que ce soit un outil ORM, la journalisation, les collections, la mise en cache, les interfaces Web, etc. Il n'y a pas de peine besoin de réinventer la roue.

Enfin, bien qu'il soit à la mode de nos jours de déplorer les défauts bien réels de Java le langage, c'est un langage où les gens savent comment faire avancer les choses et comment éviter certains anti-patterns.

 2
Author: Alan, 2009-07-29 02:53:04

Les autres réponses sont toutes bonnes. Deux choses doivent être ajoutées, les normes d'entreprise et l'effet de train en marche. Si vous voulez construire un système d'entreprise, vous devez avoir des arguments assez solides pour ne pas utiliser les normes enracinées de votre entreprise et c'est principalement JavaEE. Et si vous avez besoin de ressources pour un projet, il est beaucoup plus facile de recruter un programmeur Java que, disons, Erlang.

 2
Author: Paul McKenzie, 2009-07-29 08:03:42