Java vs. C # - Perspective de productivité [fermé]

34

Si vous disposez de plusieurs années d’expérience Java et de C # et .NET, votre opinion sur les différences de productivité en matière de développement de logiciels entre ces deux environnements est précieuse. Un de nos clients envisage de remplacer leur solution logicielle existante. Comme le remplacement nécessitera env. 10 à 15 années-personnes de travail, un choix pour Java ou .NET, basé sur des différences de productivité entre eux, peut influer considérablement sur l'investissement requis et le délai de mise sur le marché.

Seriez-vous en mesure de nous fournir une indication des différences de productivité en développement logiciel entre Java et C # / .NET? Je préférerais recevoir une réponse comme suit:

Mon expérience est basée sur X années d'expérience de travail avec Java et X années d'expérience de travail avec C # / .NET. Java est X% plus productif que C # .NET ou C # / .NET est X% plus productif que Java si vous tenez compte des éléments suivants.

Edin Dazdarevic
la source
24
Je suppose qu’une chose importante ici est aussi ce que vous faites. .NET peut être préférable pour certains types de projets et Java pour d’autres.
Øyvind Knobloch-Bråthen Le
4
Quel genre de projet est-ce? Beaucoup dépend des bibliothèques disponibles pour ce que vous essayez de faire. En ce qui concerne la langue, je préfère fortement le C #, mais je ne prétends pas que .net est meilleur que Java pour tous types de projets.
CodesInChaos
7
OMI, la décision stratégique est très importante et ne devrait en aucun cas être basée sur la productivité du programmeur. Si vous souhaitez une interface graphique Windows ultramoderne et parfaitement adaptée, vous ne pouvez pas choisir Java, même si les statistiques indiquent qu'il était 7% plus productif. Si vous avez besoin d'un véritable produit multi-plateformes sans les restrictions dont Mono est livré, Java est votre bébé, même si C # a la syntaxe la plus élégante.
user281377
2
@Edin: "Application d'entreprise" n'est pas très descriptif du type d'application utilisé ... S'agit-il uniquement du bureau, de la configuration client / serveur, de services Web, de sites Web, d'applications satellites possibles sur des appareils mobiles, etc.?
étonnement
3
C'est "Java" pas "JAVA"
Mahmoud Hossam

Réponses:

17

Mon expérience repose sur 10 ans d’expérience Java et de 3 ans sur C # / .NET. Java est 0% plus productif que C # .NET. Ceci est basé sur l'écriture d'applications basées sur des services back-end.
C # /. NET est peut-être 5% plus productif que Java pour l'écriture d'applications utilisateur. Mais cela fait près de 5 ans que je n’ai pas fait cela en Java et le nouvel éditeur d’interface utilisateur Netbeans aurait pu combler l’écart.

Vous voulez augmenter la productivité? IC (idéalement, livraison continue) et tests automatisés. La productivité gagnée par le choix de langue / plate-forme / IDE sur n'importe quelle langue / plate-forme / IDE majeure est relativement faible.

mlk
la source
Vouliez-vous dire 0% pour Java? Voulez-vous dire 0% plus productif pour les applications basées sur le service d'arrière-plan, ou Java en général? Je vérifie juste.
Jon Onstott le
Si vous me demandiez d’écrire une application d’arrière-plan (quelques règles, un accès à la base de données et quoi encore), l’estimation serait identique pour C # et Java. Si vous demandiez une application utilisateur final Windows, mon estimation serait légèrement plus grande pour Java que pour C # (WPF / XAML et son support, MVVM, via la liaison), ce qui est légèrement plus productif que la liaison plus manuelle et la construction d’UI en Java (à il y a 5 ans)).
mlk
+1 pour "La productivité gagnée par le choix de langue / plate-forme / IDE sur n'importe quelle langue / plate-forme / IDE majeure est relativement petite."
Adam Jaskiewicz
3
-1 pour la dernière phrase. Pour chaque classe de problèmes (dans le monde réel), vous pouvez choisir deux langages de haut niveau à usage général, où l'augmentation de la productivité d'un à l'autre dépasse 100%. Si vous choisissez entre C # et Java, vous verrez peu de différence (bien que je dirais que C # se révélera beaucoup plus productif dans les domaines appropriés à la programmation fonctionnelle). Si le choix est entre C et OCaml, la différence vous ouvre les yeux.
back2dos
42

J'ai travaillé sur des projets à la fois au collège et dans le Monde Réel ™ utilisant Java et C # depuis 5 ans maintenant.

J'aime utiliser C # more en raison de sa brièveté et de l’utilisation du sucre de syntaxe. Vous trouverez rarement un Factory.GetFactory(OfFactory.GetFactory(Factory));code en C #. Il est plus facile à lire et à suivre car la syntaxe est plus petite et plus succincte.

Avec lequel serez-vous le plus productif? Cela dépend du type de projet.

Concevez-vous une application de bureau pour Windows? C # est alors le meilleur choix en raison de son puissant IDE Visual Studio et .NET Framework facilite la création d'interface graphique.

Franchement, je suis heureux de ne plus utiliser Java (cela fait maintenant plus d'un an) car je me souviens à quel point le code devait être horriblement prolixe. Un exemple rapide est la gestion des exceptions. Si votre code peut générer une exception, vous devez rendre compte de toutes les exceptions possibles. Cela transforme rapidement un code trivial en 20 lignes + monstruosité.

C # ne tient pas la main, si vous choisissez de laisser votre code ouvert, c'est à vous de décider.

C # a également fait beaucoup d’additions au cours de l’année, ce qui en fait un plaisir à utiliser. Lambdas, délégués, fonction anonyme (à la Ruby), plein de bonnes petites choses que vous trouverez au fur et à mesure.


la source
3
Je me souviens de cela à Java à partir de l'université, un point que je suis heureux d'oublier. Traitement forcé des exceptions. oui, cela avait un but, mais la documentation de code peut vous dire si les méthodes jettent des exceptions et vous donne le choix de ce que vous voulez faire.
JonWillis
5
haha, je suis un programmeur java mais j'ai aimé votre exemple de code.
Chuck Stephanski
6
If your code can throw an exception you must account for every single exception possible.Je ne vois pas les inconvénients de cela, du moins cela sensibilise-t-il aux problèmes ... mais peut-être juste moi
Bobby
4
Les exceptions cochées signifient que vous écrivez du code de traitement des erreurs dans le cadre de la mise en œuvre principale, au lieu de le verrouiller après coup. Cela signifie beaucoup de maintenance.
Je pense que c'est simplement un désaccord sur la signification des exceptions - elles peuvent être des circonstances attendues (le fichier n'existe pas) ou des erreurs inattendues (division par 0). Java a décidé que les exceptions devaient représenter les deux et a donc les exceptions cochées et non cochées. C'est une caractéristique étonnamment controversée.
Tikhon Jelvis
23

J'ai beaucoup travaillé avec Java (depuis 1996) et .Net (depuis 2002) et, en 2010, j'ai décidé d'utiliser Java dans mon entreprise, car ce serait globalement l'environnement le plus productif .

Notez que je définis la productivité du développement logiciel en termes de valeur métier créée par unité de coût / ressource, sur une base de bout en bout (c’est-à-dire que vous devez prendre en compte la productivité de tout le cycle de vie du logiciel, y compris le déploiement et la maintenance, codage initial !!).

Voici les éléments clés de mon raisonnement:

  • La syntaxe est un facteur mineur de productivité - bien que Java soit certes prolixe et que je préfère la syntaxe de C #, peu importe. Que vos développeurs object.getSomeProperty()tapent object.SomePropertyou utilisent une classe interne anonyme par rapport à un lambda ne fera tout simplement pas une différence appréciable pour l’avantage concurrentiel de votre entreprise ....
  • L'écosystème de la bibliothèque est essentiel - en développant un logiciel moderne, vous ne voulez pas développer beaucoup de composants communs à partir de zéro. L’écosystème Java présente un net avantage en termes de nombre et de qualité des bibliothèques open source (notamment celles développées par Apache, Google, Eclipse Foundation et RedHat / JBoss).
  • Portabilité / flexibilité de déploiement - Je sais que je peux déployer une machine virtuelle sur pratiquement toutes les plates-formes, y compris les grands clusters Linux bon marché. Avec .Net, vous êtes limité aux environnements Windows. Compte tenu des avancées dans les options d’hébergement en nuage, j’ai jugé que c’était un avantage assez important.
  • Scala et Clojure sont des options viables de développement sur la machine virtuelle Java si vous souhaitez utiliser des fonctionnalités linguistiques avancées. Développer en Java est une option réaliste, mais conservez l'option permettant de passer progressivement à Scala ou à Clojure. Dans une certaine mesure, il s’agit de langages «de nouvelle génération» qui, à mon avis, ont une longueur d’avance sur Java et le C #. C’est pourquoi je suis rassuré sur le fait que la plate-forme Java a un bel avenir en termes d’innovation linguistique. (Java 7 et 8 semblaient prometteurs, mais je ne retenais pas vraiment ma respiration ....)
  • Les coûts de maintenance semblaient en fait assez favorables vis-à-vis de Java. Java a une syntaxe plus simple que C #, ce qui signifie plus de verbosité, mais sur le revers, les gens ont tendance à écrire du code plus facile à gérer - il est simplement plus difficile d'écrire du "code intelligent". En outre, le monde Java accorde beaucoup plus d'importance à la compatibilité en amont que le monde .Net, ce qui constitue un avantage en termes de coûts de maintenance sur plusieurs années.
  • Indépendance des fournisseurs - après avoir déjà vu des entreprises incendiées bloquées par des fournisseurs, je pensais qu'il était avantageux de choisir un écosystème Java relativement plus ouvert que le monde .Net dominé par Microsoft. Par exemple, je préférerais avoir le choix de bases de données plutôt que de devoir utiliser SQL Server (et le push est assez puissant, grâce à la prise en charge des outils et aux compétences typiques des développeurs .Net). Garder votre fournisseur de produits de base indépendant, est, à mon avis, une initiative intelligente à long terme. J’ai jugé (à juste titre, comme il se trouve) que OpenJDK serait l’avenir de Java, donc je m’appuierais efficacement sur une plate-forme open source.
  • Talent - c’est subjectif bien sûr, mais j’ai été plus impressionné par les capacités techniques des développeurs du monde Java que du monde .Net. Mon impression moyenne était que les développeurs .Net avaient tendance à faire ce que Microsoft fournissait pour les outils simples ou les modèles, alors que les développeurs Java avaient tendance à se préoccuper davantage de trouver la bonne solution du point de vue du génie logiciel. Ceci est totalement subjectif et dépend sans doute de la localité / du marché spécifique et il y avait clairement beaucoup d'individus qui ne correspondaient pas à cette tendance, donc YMMV bien sûr.
  • Les outils étaient à niveau. Microsoft propose de nombreux outils simples à utiliser qui seraient particulièrement intéressants pour le développement sous Windows. Cependant, je travaille principalement sur le développement côté serveur, où je dirais que les outils Java ont l'avantage. En particulier, Maven s’est révélé être un outil extrêmement puissant dans l’écosystème Java qui, selon moi, n’a toujours pas d’équivalent dans le monde .Net.

Donc, bien qu'il y ait eu beaucoup de considérations complexes, dans l'ensemble, je suis assez satisfait du choix d'utiliser Java et je ferais le même choix aujourd'hui (à partir de début 2012).

Le seul cas où je choisirais maintenant .Net serait probablement si je développais une application de bureau uniquement Windows (où l'avantage de .Net est clairement énorme).

Mikera
la source
9
+1: bonne réponse! Il résume de nombreuses questions à prendre en compte lors de l’évaluation de la productivité dans son ensemble. Certains sucres syntaxiques peuvent donner l'impression qu'une langue est cool et plus "moderne", mais d'autres facteurs importants influent sur la productivité.
Giorgio
3
+1 pour une réponse plus complète que les précédentes.
NlightNFotis
1
Puisque vous avez mentionné Scala et Clojure vous pourriez aussi bien parler de F # aussi ...
Mauricio Scheffer
2
Génial! Analyse approfondie. Exactement ce que je cherchais. :)
xebo
9

J'ai: Java 10 ans, C # 8 ans

Je vote Java pour

  1. Aucun fournisseur bloqué (vous pouvez changer les serveurs d'applications / Web de Linux à Windows en Unix)
  2. Interopérabilité / Interchangeable de packages tiers, tels que JasperReports JFreeChart, JSF ou Spring
  3. La plupart des innovations viennent d'ici (Log4j, Ant, Spring, Hibernate et ainsi de suite)
  4. Fonctionne sur plusieurs serveurs d'applications (un peu comme A). Tels que JBoss, Tomcat, WebSphere, GlassFish, WebLogic
tapoter
la source
23
Quel genre d'innovations peut être dans une langue sans lambdas?
SK-logic
6
Il y avait d'autres frameworks MVC avant l'ASP MVC (par exemple, MonoRail) ...
EricSchaefer
2
Oh, BTW: Lambdas / Closures est une fonctionnalité de langage, vous parlez de frameworks.
EricSchaefer
5
@ SK-logic, vous n'avez pas besoin de lambdas pour écrire une couche O / R.
2
@Giorgio, les lambdas conviennent parfaitement à toutes les langues avec GC. Il n'y a pas de place pour eux en C ++ et C, bien sûr.
SK-logic
6

Java: 5 ans (non continu)
C #: 7 ans

Je ne crois pas que vous puissiez quantifier la productivité de cette façon. Cela dépend fortement du développeur et du projet. Utilisez ce que vos développeurs savent.

Edit:
Définissons "application d'entreprise typique" comme suit:

  • multi-niveaux
  • serveur client
  • DB soutenu

Java et C # peuvent le faire. Ce n'est pas tellement une question de langage, mais de framework / runtime. Encore une fois, utilisez ce que vos développeurs savent. Ils peuvent apprendre un nouveau langage et un nouveau cadre, mais il faut du temps pour le maîtriser. Le serait vrai pour une application de bureau. Les deux langues peuvent être utilisées avec de nombreuses bibliothèques / outils graphiques, mais elles ont toutes une approche et une philosophie différentes.

EricSchaefer
la source
3
"Cela dépend énormément de chaque développeur" ... c'est pourquoi il souhaitait l'opinion de personnes ayant une expérience des deux mondes ... "et du projet". ... ce qui nécessiterait une réponse indiquant quel type de projet bénéficiera des différentes technologies.
respect
4
Cela ne dépend pas de ce dev (aka moi), mais des devs qui sont supposés construire le projet. Ce serait aussi plus facile s'il avait déclaré quel genre de projet il était sur le point de construire ...
EricSchaefer
@eric, c'est une application d'entreprise typique
Edin Dazdarevic
@Edin, Java dispose de l'édition JavaEE avec des fonctionnalités d'entreprise intégrées. Vous pouvez développer rapidement des applications avec ce cadre. Cependant, il y a beaucoup de choses dans Magic, vous devez vous conformer à ses règles. Et si les choses se cassent bien, ne vous attendez pas à ce que les messages d'exception soient utiles car le stacktrace est énorme. L'accès à une base de données avec un nom incorrect ou si la base de données est désactivée, le stacktrace est si grand que vous ne pouvez pas voir la cause du problème initial.
JonWillis
5
Bien sûr, il y a une "application d'entreprise typique", prenez ces données à partir du point a, laissez l'utilisateur le désordre, puis mettez-les au point b. ;)
mezmo
6

J'ai plus de 10 ans d'expérience avec Java (depuis la version 1.1, vraiment!) Et 7 ans d'expérience avec .NET (principalement en C #).

Vous avez une décision très difficile à prendre, mais vous devez surtout essayer de décomposer en quelques scénarios:

Application de bureau

Si vous développez une application de bureau, vous devez utiliser la plate-forme principale avec laquelle vous allez travailler. S'il s'agit d'une plate-forme Microsoft utilisant .NET, il n'y a pas de meilleure solution que la plate-forme développée par le vaisseau mère lui-même. S'il s'agit d'un scénario Linux ou multi-plateforme, envisagez Java ou passez à une solution Web.

Application basée sur le Web

C'est une décision très difficile à prendre car chacun a sa force et sa faiblesse. En voici quelques unes:

C #

Force: a actuellement plus de dynamisme en créant de nouvelles fonctionnalités dans le langage et la plateforme / structure. Tout vient d'un seul vendeur et c'est définitivement un avantage. Vous pouvez également utiliser des composants très puissants comme DevExpress par exemple (Java n’est pas proche de ce que l’équipe DX a mis au point au fil des ans et cela représente un énorme gain de productivité).

Point faible: pour les applications d’entreprise, .NET n’est pas aussi mature que Java. Vous n’avez pas autant de fournisseurs qui construisent des logiciels d’entreprise dans .NET que vous en avez pour Java.

Java

Force: Plus mature (déjà expliqué) et a une grande communauté avec plusieurs grands projets open source qui peuvent aider. Plusieurs projets Open Source .NET ne sont en réalité que des copies de projets Java.

Point faible: Oracle appartient à Java (je sais, pas au JCP) et cela constitue certainement un risque à prendre en compte. Leurs intentions ne sont pas très claires et personnellement, je n'aime pas le sens du langage (je sais que beaucoup de développeurs Java ont des préoccupations similaires).

Application côté serveur

Ce sont fondamentalement les mêmes arguments que les applications basées sur le Web, mais parce que vous n'avez pas à vous soucier de l'interface utilisateur, Java devient plus fort dans ce cas. Mais encore une fois, si la plate-forme est principalement Windows .NET pourrait être un meilleur choix.

Considérations générales

Globalement, à mon avis, .NET a principalement l'avantage en raison de l'intégration étroite de Visual Studio 2010 (le meilleur IDE du marché), de MS SQL, de Entity Framework, de IIS, etc. Tout cela représente un énorme gain de productivité et j'ai beaucoup d'expérience à prouver. De plus, je travaille principalement avec des développeurs Java qui se sont tournés vers .NET et qui partagent essentiellement le même avis.

Je pense que le fait que Microsoft soit plus fort que jamais signifie également que .NET sera là pendant un certain temps. Ainsi, lorsque je regarde dans 10 ou 15 ans, je me sens plus en sécurité avec .NET qu'avec Java.

Alex
la source
4

Je suis un étudiant récemment diplômé de l'université, mais j'ai une expérience commerciale des deux langues, soit un total d'environ 3 ans java et 4 ans en C # .Net (note .net signifie que vous pouvez utiliser C #, VB.net, C ++ CLI, et J # et F #).

Je dirai maintenant que ma préférence générale va à C # plutôt qu'à Java, alors que les deux ont une syntaxe similaire. J'aime la puissance du framework .Net par rapport à la compatibilité entre systèmes d'exploitation de Java. Vous devez considérer sérieusement ce que vous devez construire. Est-ce juste une application de bureau? Avez-vous besoin de connectivité avec d'autres clients, donc avec d'autres ordinateurs de bureau, mobiles, sites Web?

** La discussion sur l'IDE a été perdue car la question de Stackoverflow était close. En fin de compte, Java a de nombreux IDE gratuits, mais ils ne se comparent pas, à mon avis, à la puissance et aux addons de Visual Studio. Mais notez que Visual Studio coûte plus par licence.

Vous devez examiner les compétences de votre équipe de développement, car cela aura un impact initial. Ce qui est plus rapide est ici, ni donné à un utilisateur expérimenté dans les deux langages / framework. Ce qui, je suppose, fait ressortir le fait que vous ne devez pas considérer le langage, car le langage n’est qu’une syntaxe, mais les outils et le cadre qu’il utilise.

JonWillis
la source
11
1000 £ par licence pour VS? Si vous recevez des abonnements MSDN, vous aurez beaucoup plus de logiciels et d'outils disponibles à un prix avantageux. Je doute vraiment que quiconque paie le prix de détail de VS2010 au détail.
James Love
6
@ Michael, je n'ai jamais essayé de créer des extensions VS. Cependant, j'utilise ou ai essayé une variété de plugins pour Visual studio. Ceux-ci incluent Resharper, CodeRush, Gallio, VisualSVN, AnkhSVN, testDriven.Net et bien d’autres.
JonWillis
2
@ JonWillis est d'accord, il existe une pléthore d'extensions. En plus de cette liste, j'utilise également (quotidiennement) des outils de productivité, CKS: Dev pour SharePoint et WSPBuilder. La galerie (sur visualstudiogallery.msdn.microsoft.com ) en compte quelques milliers, il n’est donc pas difficile d’écrire davantage d’extensions pour VS (un framework complet est fourni pour le faire, et la communauté bénéficie d’un soutien important) .
James Love
1
Pour un projet devant durer 10 à 15 années-hommes, le coût initial des licences VS est constitué d’arachides.
respect
1
Visual Studio 2010 Professional sans MSDN est de 550 $.
Boris Yankov
3

Avec la similarité de la syntaxe et des outils, les gains de productivité de C # ou de Java ne sont pas d'un ordre de grandeur suffisant pour faire une différence significative dans votre projet de travail de 10 à 15 années-hommes. J'examinerais de plus près des questions telles que:

  1. Quelles sont les exigences du projet et quelles capacités linguistiques répondent à ces exigences (par exemple, multiplate-forme par rapport à un client Windows riche).
  2. Que puis-je mettre en place comme approche / méthodologie de projet pour permettre à mon équipe de travailler de manière productive?
  3. Que puis-je faire au sujet de l'environnement de travail pour m'assurer d'employer, de conserver et d'utiliser pleinement la meilleure équipe possible pour un projet important?

Je pense que, selon moi, le postulat de la question, selon lequel "les différences de productivité entre (C # et Java) peuvent influer considérablement sur l'investissement requis et le délai de mise sur le marché", n'est pas vrai. Je ne doute pas qu'il y aurait une différence, mais ce ne serait pas significatif.

AlexC
la source
3

J'ai basculé entre Java et .NET, en commençant par Java 1.2 à 1.6, et .NET 1 à 4.0, sur environ 10 ans d'expérience professionnelle (en tant que programmeur C / C ++ auparavant).

À un moment donné, comme .NET 2.0, je dirais que Java et C # seraient à peu près les mêmes, en particulier pour le travail en arrière-plan. Les constructions de langage étaient encore très similaires. .NET aurait probablement pris l'avantage dans la programmation d'interface utilisateur de bureau, à cause du concepteur WinForms de Visual Studio, et Java aurait eu l'avantage dans Web / Server, principalement parce que vous n'étiez pas coincé avec IIS.

Passant maintenant à .NET 3.5 et 4, je donne haut la main à la productivité de .NET. C’est principalement, à mon avis, parce que .NET est une langue qui évolue beaucoup plus rapidement, car MS peut prendre des décisions linguistiques relativement rapidement, au lieu de faire évoluer la politique par le biais du JCP. De grandes améliorations sont le varmot - clé, l'ensemble des Linq, Méthodes d' extension, l'opérateur Null-coalescent ??, dynamicet probablement beaucoup plus grandes choses qui vraiment stimule la productivité.

Cela dit, le langage "le plus productif" d'un projet est presque toujours celui avec lequel les développeurs sont le plus à l'aise et le plus expérimenté. La courbe d'apprentissage est toujours le principal facteur de perte de productivité.

rallye25rs
la source
3

Une chose que j’ai remarquée, c’est que de nombreux magasins C # / .NET adoptent une attitude «non inventé ici» et interdisent toutes les bibliothèques tierces / open source, alors que de nombreux magasins Java sont plus disposés à utiliser des bibliothèques open source. De plus, il semble y avoir plus de bibliothèques disponibles pour Java. Même si vous regardez des bibliothèques tierces intéressantes dans .NET, par exemple NHibernate, NPOI, Spring.NET, etc., elles sont des ports des bibliothèques Java et sont donc derrière eux. Il semble bien que bon nombre de ces innovations ont été mises au point pour la première fois en Java, puis un port .NET a été créé. Du point de vue des bibliothèques, il semble bien que Java gagne en termes de nouvelles découvertes innovantes.

Pourtant, Microsoft crée certaines bibliothèques officielles, telles que ASP MVC, LINQ, etc. Mais souvent, comme avec ASP MVC, des bibliothèques tierces telles que Struts, Spring MVC, etc. étaient déjà disponibles pour Java et Microsoft était en retard pour entrer dans le paradigme Web du contrôleur de vue de modèle.

Bien sûr, bon nombre de ces bibliothèques vous permettent d’économiser beaucoup de temps et d’accroître votre productivité. Langage de base à langage de base C # et Java ne sont pas si différents et pour moi, c'est trop proche pour être appelé. Ajoutez à l’armée des bibliothèques tierces et la balance basculera certainement vers Java. Toujours avec un magasin ouvert beaucoup de cette inclinaison s'équilibre. C’est juste que beaucoup de magasins .NET ont l’attitude qui n’a pas été inventée ici, alors que beaucoup de magasins Java ont tout ce qu’il faut pour faire leur travail ... C’est même vrai dans l’entreprise dans laquelle je travaille, l’équipe .NET n’obtient pas grand chose. (pour des raisons de gestion) alors que l’équipe Java dispose de nombreuses bibliothèques / utilitaires tiers approuvés. De plus, avec .NET, de nombreuses autres choses intéressantes ne sont pas gratuites (par exemple, avant de NPOI, si vous vouliez travailler avec des documents Microsoft Office, la plupart des solutions [sans compter la bureautique] n'étaient pas gratuites.

Cervo
la source
"Pas inventé ici". Basé sur quels motifs? Je travaille dans un mélange de C # et de Java et je semble avoir de plus en plus de problèmes de la part de Java, par exemple en créant un IConverter et en implémentant une logique pour convertir une chaîne en double, et vice versa.
George Silva
Pour plusieurs raisons, je préfère C # à Java, mais je préfère les bibliothèques "migrées" Java To C # au C # natif, généralement mieux conçu, testé et appliqué dans le monde réel.
Umlcat
0

Je me suis souvent posé cette question: quelle est la meilleure? C # ou Java?

Je vais vous donner un conseil et ce conseil est la conclusion de ma recherche: aucun d’entre eux n’est meilleur, seul le langage que vous connaissez bien et vous pouvez faire beaucoup d’applications fascinantes est le meilleur.

Apprenez à programmer et à vous entraîner beaucoup en utilisant une seule langue. Lorsque vous maîtriserez parfaitement le code, réfléchissez à d’autres langues et, croyez-moi, vous apprendrez les autres langues comme un morceau de gâteau.

Salah
la source