2009-07-29 3 views
37

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

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

+2

ici (http://stackoverflow.com/questions/213757/why-do-people-use-java) sont quelques commentaires forts sur la popularité de Java - pas tout à fait des réponses d'une perspective «entreprise», mais ils sont pertinents. – akf

+3

Je dirais: 1. la sécurité 2. la stabilité 3. la robustesse 4. l'évolutivité 5. l'indépendance du système d'exploitation 6. l'indépendance d'autres fournisseurs 7. la performance et l'utilisation des ressources 8. l'acceptation de la société académique –

Répondre

39

Un mot: bibliothèques. Java a une vaste gamme d'excellentes bibliothèques pour résoudre la plupart des problèmes courants 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 soutenu qu'il y avait, en fait, trop de choix dans l'écosystème Java, et que le développement de logiciels d'entreprise en Java exige que les développeurs prennent un grand nombre de décisions qui peuvent avoir un impact considérable sur le produit final pour mieux ou pire. Cela a probablement contribué à propulser la popularité d'alternatives telles que .NET, qui a la réputation d'offrir moins de choix, mais avec les avantages d'une pile d'applications et d'outils mieux intégrés. La direction que vous choisissez dépend, je suppose, de la valeur que vous accordez à la «liberté de choix» ou à «l'absence de choix».

+4

Je pense que la «liberté de choix» n'est pas vraiment comprise. Je connais par exemple de nombreux frameworks web et je n'en ai choisi aucun. votre patron prend la décision et chaque entreprise utilise un ensemble différent de cadres. – IAdapter

+8

+1 pour "la liberté de choix" ou "l'absence de choix" –

+0

.NET offre des alternatives tierces, les gens choisissent simplement les API intégrées car, plus souvent qu'autrement, elles fonctionnent très bien et bénéficient du support du fournisseur. Java est principalement choisi sur .NET pour rester multi-plateforme ce qui est important. – Greg

2

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

+0

This! En tant que CTO, je choisis Java parce que je peux trouver beaucoup moins de travail que Ruby, C++, etc. Un bon logiciel durera toujours plus longtemps que le programmeur, ce à quoi la plupart des programmeurs ne pensent pas.Ils supposent qu'ils seront toujours là pour soutenir leur bébé. –

2

Le développement en C++ est trop lent et coûteux et .NET n'a pas existé depuis assez longtemps. L'inertie des affaires est énorme, rappelez-vous. Les entreprises recherchent des langues soutenues par un fournisseur professionnel (par exemple, une entreprise comme Sun) et restent souvent à l'écart des langues Open Source pour la simple raison qu'elles n'ont pas été écrites par une entreprise.

+1

Je ne pense pas qu'il soit juste de dire ".NET n'a pas été assez longtemps" - .NET a beaucoup d'adoption dans le monde de l'entreprise. –

+0

C++ est trop lent? Je voudrais différer (à la fois en termes d'écriture C++ et sa vitesse d'exécution). – Shane

+5

C++ fonctionne extrêmement vite, mais votre développeur moyen sera capable de développer des applications robustes plus rapidement en Java. C'est une question simple de ce que le langage est conçu et optimisé. –

8

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

En outre, ils ont promu des outils de niveau entreprise pour cela, en termes de messagerie, de gestion des transactions et d'autres choses qui inquiètent l'entreprise. Avant Java, les tâches de niveau entreprise avaient tendance à être effectuées en C++ (il y avait beaucoup d'exceptions (est-ce que quelqu'un se souvient de PowerBuilder?), Mais c'était la règle) et Java remplace bien le C++ pour les applications métier. genre de gestion de la mémoire n'est pas quelque chose qui vaut 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 à corriger 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 manipulées par de nombreuses mains différentes, qui ne sont pas toutes des programmeurs haut de gamme, et avoir des filets de sécurité pour éviter de se tirer une balle dans le pied est une chose souhaitable.

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

2

De même, pour les applications client-serveur, vous avez l'embarras du choix pour des serveurs d'applications de qualité production ayant la même interface J2EE (IBM WebSphere, BEA Weblogic, JBoss). Alternativement, vous pouvez utiliser Spring Framework sur n'importe quel serveur comme Apache Tomcat conformément à l'API Servlet si vous êtes convaincu que vous n'avez pas besoin d'EJB. 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 frameworks pour une tâche donnée que ce soit un outil ORM, la journalisation, les collections, la mise en cache, les interfaces web, etc. Il n'y a pas vraiment besoin de réinventer la roue. Enfin, alors qu'il est à la mode ces jours-ci de se lamenter sur les véritables lacunes du langage Java, c'est un langage où les gens savent comment faire les choses et comment éviter certains anti-patterns.

+0

Ceci est dû à la solidité des spécifications Sun. –

7

Les affaires concernent le temps, l'argent et les opportunités. L'utilisation de Java signifie que le nombre d'erreurs dans le code diminue, simplement parce que les pointeurs sont durs. Vous utilisez un GC et vous supprimez instantanément une classe entière d'erreurs de votre code.En second lieu, Java a été l'une des premières langues à être livrée avec une bibliothèque de fonctions pré-écrite, 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 vite, disposer de plus d'outils et disposer d'un grand nombre de bibliothèques pour faire des choses comme le réseau, l'interface graphique, le web, le cryptage etc. n'était pas si spécial, mais Java plus l'API Java était. Donc, si vous avez un langage qui a moins d'erreurs et plus d'infrastructure gratuitement, alors vous finissez 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 accomplir la même tâche, mais il permettra d'atteindre l'objectif de l'entreprise d'obtenir une application.

Si vous faites plus de code, pour moins d'argent, vous pouvez rechercher plus d'opportunités. Vous apportez ensuite de 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.

23

Il y a beaucoup de raisons qu'une grande entreprise (le type de solutions d'entreprise) choisirait Java. Remarque 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.

Learning Curve

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

Choix

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

Plate-forme Indépendance

Java est d'écrire une fois, exécuter (bien, debug) partout. Sun a activement encouragé les normes ouvertes qui permettent à plusieurs fournisseurs d'implémenter leurs solutions. Ces normes donnent au client le confort qu'il peut migrer d'un fournisseur à un autre si un fournisseur donné fait faillite ou commence à facturer davantage.Bien sûr, la réalité est que chaque fournisseur fait de son mieux pour fournir des fonctionnalités «à valeur ajoutée» qui lient le client à eux très bien.

maturité

Son été autour depuis longtemps, en cours d'exécution d'un grand nombre 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 avec bienveillance 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 existe de très grandes entreprises qui produisent ces plates-formes et elles commercialisent assez difficilement Java pour vendre ces plates-formes.

Inertie

Les grandes entreprises aller de l'avant à un rythme glaciaire (beaucoup utilisent encore Java 1.4 cinq ans après 5 a été libéré), donc une fois qu'ils ont cueillies Java, il faut un investissement massif pour se déplacer à une autre plate-forme. Avec chaque jour qui passe, ils lancent 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 de dollars pour réécrire l'ensemble de sa base de code sans bénéfice commercial immédiat.

9

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

Des entreprises comme la stabilité dans une plate-forme.

2

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

3

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

Les programmes Java écrits «correctement» (sans suppositions du système d'exploitation sous-jacent) peuvent être exécutés sur n'importe quelle machine virtuelle Java. Cela signifie que vous n'êtes pas lié à une plate-forme particulière, contrairement à .NET qui vous marie à Windows.

J'ai vu le code Java s'exécuter sur des mainframes, des routeurs Linux, à l'intérieur de la base de données Oracle, et naturellement sur des PC.

+0

Oui, vous marie aux fenêtres. –

7

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

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

Questions connexes