Java vs. C # - perspectiva de produtividade [fechada]

34

Se você tem vários anos de experiência no trabalho com Java e vários anos no trabalho com C # e .NET, eu valorizaria sua opinião sobre as diferenças de produtividade no desenvolvimento de software entre esses dois ambientes. Um de nossos clientes está pensando em substituir sua solução de software existente. Como a substituição exigirá aprox. O trabalho de 10 a 15 homens-homem, uma opção para Java ou .NET, com base nas diferenças de produtividade entre eles, pode influenciar significativamente o investimento necessário e o tempo de colocação no mercado.

Você poderia nos fornecer uma indicação das diferenças de produtividade no desenvolvimento de software entre Java e C # / .NET? Eu preferiria receber uma resposta da seguinte maneira:

Minha experiência é baseada em X anos de experiência trabalhando com Java e X anos de experiência trabalhando com C # / .NET. Java é X% mais produtivo que C # .NET ou C # /. NET é X% mais produtivo que Java se você levar o seguinte em consideração.

Edin Dazdarevic
fonte
24
Eu acho que uma coisa importante aqui também é o que você está fazendo. O .NET pode ser melhor para alguns tipos de projetos e o Java para outros.
Øyvind Knobloch-Bråthen
4
Que tipo de projeto é esse? Depende muito das bibliotecas disponíveis para o que você está tentando fazer. Em termos de idioma, prefiro fortemente o C #, mas não estou afirmando que o .net é melhor que o java para todos os tipos de projetos.
CodesInChaos
7
Na IMO, existe uma decisão estratégica muito importante e não deve ser baseada na produtividade do programador. Se você deseja uma GUI do Windows moderna e perfeitamente agradável, não poderá escolher o Java, mesmo que as estatísticas afirmem que ela é 7% mais produtiva. Se você precisa de um verdadeiro produto de plataforma cruzada sem as restrições que o Mono vem, Java é o seu bebê, mesmo que o C # tenha a sintaxe mais agradável.
user281377
2
@Edin: "Aplicativo corporativo" não é muito descritivo de que tipo de aplicativo é ... É apenas para desktop, configuração de cliente / servidor, serviços da web, sites, possíveis aplicativos de satélite em dispositivos móveis etc.?
temor
3
É "Java" não "JAVA"
Mahmoud Hossam

Respostas:

17

Minha experiência é baseada em 10 anos de experiência trabalhando com Java e 3 anos de experiência trabalhando com C # / .NET. Java é 0% mais produtivo que C # .NET. Isso se baseia na gravação de aplicativos baseados em serviço de back-end.
C # /. NET é talvez 5% mais produtivo que Java para escrever aplicativos de usuário. Mas não faço isso há quase cinco anos em Java e o novo editor de interface do usuário do Netbeans poderia ter fechado a lacuna.

Você quer aumentar a produtividade? CI (idealmente entrega contínua) e testes automatizados. A produtividade obtida pela escolha de idioma / plataforma / IDE em qualquer idioma / plataforma / IDE principal é bastante pequena.

mlk
fonte
Você quis dizer 0% para Java? Você quer dizer 0% mais produtivo para aplicativos baseados em serviços de back-end ou Java em geral? Apenas checando.
Jon Onstott
Se você me pedir para escrever um aplicativo de back-end (algumas regras, acesso ao banco de dados e o que tiver), a estimativa será idêntica para C # e Java. Se você solicitasse um aplicativo de usuário final do Windows, eu faria minha estimativa um pouco maior para Java que C # (WPF / XAML e seu suporte MVVM via ligação, acho que é um pouco mais produtivo do que a ligação mais manual e a criação de UI em Java (como fora 5 anos atrás)).
Mlk
+1 em "A produtividade obtida pela escolha de idioma / plataforma / IDE em qualquer idioma / plataforma / IDE principal é bastante pequena".
Adam Jaskiewicz
3
-1 para a última frase. Para cada classe de problemas (do mundo real), você pode escolher duas linguagens de alto nível para uso geral, em que o aumento da produtividade de uma para a outra ultrapassa 100%. Se você escolher entre C # e Java, encontrará pouca diferença (embora eu argumente que o C # se mostrará significativamente mais produtivo em áreas adequadas para programação funcional). Se a escolha for entre C e OCaml, a diferença ficará para você.
back2dos
42

Trabalho em projetos na faculdade e no mundo real usando Java e C # há 5 anos.

Sem dúvida, eu gosto de usar C # mais por causa de sua sucessão e uso de açúcar de sintaxe. Você raramente encontrará um Factory.GetFactory(OfFactory.GetFactory(Factory));código em C #. É mais fácil ler e acompanhar, porque a sintaxe é menor e mais sucinta.

Com qual deles você será mais produtivo? Isso depende do tipo de projeto.

Você está criando um aplicativo de desktop para Windows? Então, o C # é a melhor opção por causa do poderoso IDE Visual Studio e o .NET Framework facilita a criação de GUI.

Sinceramente, fico feliz por não usar mais o Java (já faz mais de um ano) porque lembro o quão horrivelmente detalhado o código deveria ser. Um exemplo rápido é o tratamento de exceções. Se seu código pode gerar uma exceção, você deve considerar todas as exceções possíveis. Isso rapidamente transforma o código trivial em uma monstruosidade de 20 linhas +.

O C # não é tão fácil de segurar, se você optar por deixar seu código aberto, que cabe a você como desenvolvedor decidir.

O C # também fez muitas adições ao longo do ano, o que o torna um prazer de usar. Lambdas, delegados, função anônima (a la Ruby), muitas pequenas coisas boas que você encontrará à medida que avança.


fonte
3
Lembro-me que em Java da uni, um ponto que fico feliz em esquecer. Tratamento de exceção forçada. sim, ele tinha um propósito, mas a documentação do código pode dizer se os métodos lançam exceções e oferece uma escolha do que fazer.
22411 JonWillis
5
haha, eu sou um programador java, mas gostei do seu código de exemplo.
Chuck Stephanski
6
If your code can throw an exception you must account for every single exception possible.Não vejo a desvantagem disso, pelo menos isso aumenta a conscientização dos problemas ... porém, pode ser apenas eu.
Bobby
4
As exceções verificadas significam que você escreve o código de tratamento de erros como parte da implementação principal, em vez de aplicá-lo como uma reflexão tardia. Isso significa bastante manutenção.
Eu acho que é apenas um desacordo sobre o que as exceções significam - elas podem ser circunstâncias esperadas (o arquivo não existe) ou erros inesperados (divida por 0). Java decidiu que as exceções deveriam representar as duas e, portanto, as exceções foram verificadas e não verificadas. Esta é uma característica surpreendentemente controversa.
Tikhon Jelvis
23

Trabalhei extensivamente com Java (desde 1996) e .Net (desde 2002) e, em 2010, tomei a decisão de ir com Java em minha empresa, com base em que seria o ambiente mais produtivo em geral .

Observe que eu defino a produtividade do desenvolvimento de software em termos de valor comercial criado por unidade de custo / recurso, de ponta a ponta (ou seja, você precisa observar a produtividade de todo o ciclo de vida do software, incluindo implantação e manutenção, e não apenas o codificação inicial !!).

Aqui estão os principais elementos do meu raciocínio:

  • A sintaxe é um fator menor na produtividade - enquanto o Java é certamente detalhado e eu prefiro a sintaxe do C #, simplesmente não importa muito. Se seus desenvolvedores digitam object.getSomeProperty()vs. object.SomePropertyou usam uma classe interna anônima vs. lambda simplesmente não fará nenhuma diferença significativa na vantagem competitiva da sua empresa ...
  • O ecossistema de bibliotecas é fundamental - desenvolvendo um produto de software moderno, você não deseja desenvolver muitos componentes comuns a partir do zero. O ecossistema Java possui uma clara vantagem em termos de número e qualidade de bibliotecas de código aberto (especialmente aquelas desenvolvidas por Apache, Google, Eclipse Foundation e RedHat / JBoss)
  • Portabilidade / flexibilidade de implantação - Eu sei que posso implantar uma JVM em praticamente qualquer plataforma, incluindo grandes clusters baratos de Linux. Com .Net, você está restrito aos ambientes Windows. Com os avanços nas opções de hospedagem na nuvem, julguei que essa era uma vantagem muito importante.
  • Scala e Clojure são opções viáveis ​​para desenvolvimento na JVM, se você desejar recursos avançados de linguagem. É uma opção realista para desenvolver em Java, mas mantenha aberta a opção de mudar para Scala ou Clojure ao longo do tempo. Até certo ponto, essas são linguagens de "próxima geração" que eu acho que estão à frente do Java e do C #, então isso me garantiu que a plataforma Java tem um bom futuro em termos de inovação de linguagem. (Java 7 e 8 pareciam promissores, mas eu não estava exatamente prendendo a respiração ...)
  • Os custos de manutenção pareciam ser bastante favoráveis ​​ao Java. O Java tem uma sintaxe mais simples que o C #, o que significa mais verbosidade, mas por outro lado significa que as pessoas tendem a escrever um código mais sustentável - é simplesmente mais difícil escrever um "código inteligente". Além disso, o mundo Java coloca muito mais peso na compatibilidade com versões anteriores do que o mundo .Net, o que será uma vantagem em termos de custos de manutenção ao longo de vários anos.
  • Independência do fornecedor - tendo visto empresas sendo queimadas pelo aprisionamento de fornecedores no passado, senti que era uma vantagem ir com o ecossistema Java relativamente mais aberto do que com o mundo .Net dominado pela Microsoft. Por exemplo, eu preferiria ter a opção de bancos de dados em vez de usar o SQL Server (e o push é bastante forte, através do suporte à ferramenta e do conjunto de habilidades típico dos desenvolvedores de .Net). Manter seu fornecedor principal de investimentos em produtos independentes é, a meu ver, uma jogada inteligente de longo prazo. Eu julguei (corretamente, como se vê) que o OpenJDK seria o futuro do Java, então eu estaria efetivamente construindo uma plataforma de código aberto.
  • Talento - isso é subjetivo, é claro, mas fiquei mais impressionado com a capacidade técnica dos desenvolvedores no mundo Java do que no mundo .Net. Minha impressão, em média, foi de que os desenvolvedores de .Net tendiam a fazer tudo o que a Microsoft fornecia ferramentas ou modelos fáceis, enquanto os desenvolvedores de Java tendiam a se preocupar mais em encontrar a solução certa do ponto de vista da engenharia de software. Isso é completamente subjetivo e, sem dúvida, depende da localidade / mercado específico, e havia claramente muitos indivíduos que não se encaixavam nesse padrão, então é claro que o YMMV.
  • As ferramentas estavam niveladas. A Microsoft possui muitas ferramentas excelentes e fáceis de usar que seriam particularmente atraentes para o desenvolvimento no Windows. No entanto, estou trabalhando principalmente no desenvolvimento do lado do servidor, onde eu argumentaria que as ferramentas Java têm vantagem. Em particular, o Maven provou ser uma ferramenta extremamente poderosa no ecossistema Java, que ainda não acho que tenha um equivalente decente no mundo .Net.

Portanto, embora houvesse muitas considerações complexas, no geral, estou muito feliz com a opção de ir com Java e faria a mesma escolha hoje (no início de 2012).

Provavelmente, o único caso agora em que eu iria com o .Net seria se eu estivesse desenvolvendo um aplicativo de desktop somente para Windows (onde a vantagem do .Net é claramente enorme).

Mikera
fonte
9
+1: Ótima resposta! Ele resume muitos dos problemas que devem ser considerados ao avaliar a produtividade como um todo. Algum açúcar sintático pode fazer uma linguagem parecer legal e mais "moderna", mas também existem outros fatores importantes que influenciam a produtividade.
Giorgio
3
+1 para uma resposta muito mais abrangente do que as anteriores.
N
1
Desde que você mencionou Scala e Clojure, você também pode mencionar o F # ... #
Mauricio Scheffer
2
Ótimo! Análise completa. É mesmo o que eu procurava. :)
xebo
9

Eu tenho: Java 10 anos, C # 8 anos

Voto em Java para

  1. Nenhum bloqueio de fornecedor (você pode alterar os servidores de aplicativos / web do linux para o windows para o Unix)
  2. Interoperabilidade / Intercambiável de pacotes de terceiros, como JasperReports JFreeChart, JSF ou Spring
  3. A maioria das inovações vem daqui (Log4j, Ant, Spring, Hibernate e assim por diante)
  4. Funciona em vários servidores de aplicativos (tipo A). Como JBoss, Tomcat, WebSphere, GlassFish, WebLogic
tapinha
fonte
23
Que tipo de "inovações" pode existir em um idioma sem lambdas?
SK-logic
6
Havia outros frameworks MVC antes ASP MVC (por exemplo MonoRail) ...
EricSchaefer
2
Oh BTW: Lambdas / Closures são um recurso de linguagem, você está falando sobre frameworks.
precisa saber é o seguinte
5
@ SK-logic, você não precisa de lambdas para escrever uma camada de O / R.
2
@Giorgio, lambdas se encaixam perfeitamente em qualquer idioma do GC. Não há lugar para eles em C ++ e C, é claro.
SK-logic
6

Java: 5 anos (não contínuo)
C #: 7 anos

Não acredito que você possa quantificar a produtividade dessa maneira. Isso depende muito do desenvolvedor individual e do projeto. Use o que seus desenvolvedores sabem.

Editar:
Vamos definir "aplicativo corporativo típico" como:

  • multicamada
  • servidor cliente
  • DB suportado

Java e C # podem fazer isso. Não se trata tanto da linguagem, mas da estrutura / tempo de execução. Novamente, use o que seus desenvolvedores sabem. Eles podem aprender um novo idioma e uma nova estrutura, mas leva tempo para entender. Isso seria verdadeiro para um aplicativo de desktop. Ambos os idiomas podem ser usados ​​com inúmeras ferramentas / bibliotecas de GUI, mas todos eles têm abordagens e filosofias diferentes.

EricSchaefer
fonte
3
"Isso depende muito do desenvolvedor individual" ... e é exatamente por isso que ele queria uma opinião de pessoas com experiência nos dois mundos ... "e no projeto". ... que exige uma resposta que indique que tipo de projetos se beneficiará das diferentes tecnologias.
temor
4
Não depende desse desenvolvedor (também conhecido como eu), mas dos desenvolvedores que deveriam criar o projeto. Também seria mais fácil se ele tivesse declarado que tipo de projeto ele está prestes a construir ...
EricSchaefer
@eric é um aplicativo corporativo típico
Edin Dazdarevic
@Edin, o Java tem a edição JavaEE com recursos empresariais incorporados. Você pode desenvolver aplicativos rapidamente com essa estrutura. No entanto, ele faz muita coisa pelo Magic, você deve estar em conformidade com suas regras. E se as coisas quebrarem, não espere que as mensagens de exceção sejam úteis, pois o rastreamento de pilha é enorme. O acesso a um banco de dados com nome errado ou DB está desativado, o rastreamento de pilha é tão grande que você não pode ver o que causou o problema inicial.
22411 JonWillis
5
Certamente, existe um "aplicativo corporativo típico", pegue esses dados do ponto a, permita que o usuário estrague tudo e coloque-os no ponto b. ;)
mezmo 25/02
6

Tenho mais de 10 anos de experiência com Java (desde a versão 1.1, realmente!) E 7 anos de experiência com .NET (principalmente C #).

Você ainda tem uma decisão a tomar, mas principalmente deve tentar dividir-se em alguns cenários:

Aplicativo de desktop

Se você estiver desenvolvendo um aplicativo de desktop, precisará usar a plataforma principal com a qual trabalhará. Se é uma plataforma da Microsoft que usa o .NET, não há solução melhor do que a plataforma desenvolvida pela própria mãe. Se for um cenário Linux ou de várias plataformas, considere Java ou mude para uma solução baseada na Web.

Aplicativo baseado na Web

Esta é uma decisão muito difícil de tomar, porque cada um tem sua própria força e fraqueza. Aqui estão alguns:

C #

Força: Atualmente, há mais impulso para criar novos recursos no idioma e na plataforma / estrutura. Tudo vem de um fornecedor e, definitivamente, isso é uma vantagem. Você também pode usar alguns componentes muito poderosos, como o DevExpress (por exemplo, o Java não chega nem perto de ter algo parecido com o que a equipe do DX montou ao longo dos anos e isso representa um enorme aumento de produtividade).

Fraqueza: para aplicativos corporativos, o .NET não é tão maduro quanto o Java. Você não tem tantos fornecedores criando software corporativo no .NET quanto o Java.

Java

Força: Mais madura (já explicada) e tem uma grande comunidade com vários ótimos projetos de código aberto que podem ajudar. Vários projetos de código-fonte aberto do .NET são realmente apenas uma cópia dos projetos do Java.

Fraqueza: a Oracle possui Java (eu sei, não o JCP) e esse é definitivamente um risco a ser considerado. Suas intenções não são muito claras e, pessoalmente, não gosto de onde a linguagem está indo agora (sei que muitos desenvolvedores de Java têm preocupações semelhantes).

Aplicativo do lado do servidor

São basicamente os mesmos argumentos que os aplicativos baseados na Web, mas como você não precisa se preocupar muito com a interface do usuário, o Java fica mais forte nesse caso. Mas, novamente, se a plataforma é principalmente o Windows .NET, pode ser uma escolha melhor.

Considerações gerais

No geral, na minha opinião, o .NET tem a vantagem principalmente por causa da forte integração do Visual Studio 2010 (sem dúvida o melhor IDE existente), MS SQL, Entity Framework, IIS e assim por diante. Tudo isso representa um enorme aumento de produtividade e tenho muita experiência comprovando isso. Também trabalho principalmente com desenvolvedores Java que se voltaram para o .NET e compartilham basicamente a mesma opinião.

Eu acho que também é um bom argumento que a Microsoft esteja mais forte do que nunca, o que significa que o .NET estará lá por um tempo. Portanto, ao olhar 10 a 15 anos à frente, me sinto mais seguro com o .NET do que com o Java.

Alex
fonte
4

Sou um estudante recém-formado na universidade, mas tenho experiência comercial com os dois idiomas, oferecendo um total de aproximadamente 3 anos em java e 4 anos em C # .Net (observe .net significa que você pode usar C #, VB.net, C ++ CLI, e J # e F #).

Vou declarar agora que minha preferência geral é C # sobre Java, enquanto ambas têm sintaxe semelhante, eu gosto do poder da estrutura .Net sobre a compatibilidade entre sistemas operacionais de Java. Você deve considerar fortemente o que precisa construir? Isso é apenas um aplicativo de desktop? Você está precisando de conectividade com outros clientes, para outros computadores, celulares, sites?

** A discussão sobre o IDE perdida quando a pergunta no Stackoverflow foi encerrada. O ponto principal disso é que o Java tem muitos IDEs gratuitos, mas eles não se comparam na minha opinião ao poder e aos complementos do visual studio. Mas observe que o Visual Studio custa mais por licença.

Você precisa analisar quais habilidades sua equipe de desenvolvimento já possui, pois isso terá um impacto inicial. O que é mais rápido, aqui e ali, dado um usuário experiente em qualquer idioma / estrutura. O que eu acho traz o ponto de que você não deve considerar a linguagem, pois a linguagem é apenas sintaxe, mas as ferramentas e a estrutura que a linguagem está usando.

JonWillis
fonte
11
1000 libras por licença para o VS? Se você estiver recebendo assinaturas do MSDN, terá muito mais software e ferramentas disponíveis pelo custo. Eu realmente duvido que alguém pague o preço de varejo do VS2010.
James Love
6
@ Michael, eu nunca tentei escrever extensões VS. No entanto, eu uso ou tentei uma variedade de plugins para o Visual studio. Isso inclui Resharper, CodeRush, Gallio, VisualSVN, AnkhSVN, testDriven.Net e muito mais.
22411 JonWillis
2
@ JonWillis concordou, há uma infinidade de extensões por aí. No topo dessa lista, também uso (diariamente) as Ferramentas Elétricas de Produtividade, CKS: Dev for SharePoint e WSPBuilder. A galeria (em visualstudiogallery.msdn.microsoft.com ) tem alguns milhares por lá, então não pode ser tão difícil escrever mais extensões para o VS (a estrutura completa é realmente fornecida para isso, e há amplo suporte da comunidade) .
James Love
1
Para um projeto planejado para 10 a 15 anos de trabalho, um custo inicial para licenças do VS é o amendoim.
temor
1
O Visual Studio 2010 Professional sem MSDN custa US $ 550.
Boris Yankov
3

Com a semelhança na sintaxe e nas ferramentas, os ganhos de produtividade do C # ou do java não são de ordem de magnitude para fazer uma diferença significativa no seu projeto de trabalho de 10 a 15 homens / ano. Eu examinaria mais de perto questões como:

  1. Quais são os requisitos do projeto e quais recursos de idioma atendem a esses requisitos (por exemplo, cliente multiplataforma versus cliente Windows avançado).
  2. O que posso implementar como uma abordagem / metodologia de projeto que permitirá que minha equipe trabalhe produtivamente.
  3. O que posso fazer sobre o ambiente de trabalho para garantir que empregue, retenha e utilize totalmente a melhor equipe possível para um projeto significativo.

Eu sugeriria que, na minha opinião, a premissa por trás da pergunta, que "diferenças de produtividade entre (C # e Java) podem influenciar significativamente o investimento necessário e o tempo de colocação no mercado" não é verdade. Não duvido que haja alguma diferença, mas isso não seria significativo.

AlexC
fonte
3

Eu alternei entre Java e .NET, começando com Java 1.2 até 1.6 e .NET 1 até 4.0, em cerca de 10 anos de experiência profissional (sendo um programador C / C ++ antes disso).

Ao mesmo tempo, como o .NET 2.0, eu diria que Java e C # seriam praticamente os mesmos, especialmente para o trabalho de back-end. As construções de linguagem ainda eram muito semelhantes. O .NET provavelmente ganhou a vantagem na programação da interface do usuário da área de trabalho, por causa do designer WinForms no Visual Studio, e o Java teria a vantagem no material da Web / Server, principalmente porque você não estava preso ao IIS.

Agora, migrando para o .NET 3.5 e 4, dou a vantagem de produtividade ao .NET, sem esforço. Isso é principalmente, na minha opinião, porque o .NET é uma linguagem de evolução muito mais rápida, já que a MS pode tomar decisões de linguagem de forma relativamente rápida, em vez de promover mudanças nas políticas do JCP. Grandes melhorias são a varpalavra-chave, a totalidade de Linq, Métodos de extensão, o operador coalescentes nulo ??, dynamice, provavelmente, muito mais grandes coisas que realmente aumenta a produtividade.

Agora, dito isso, a linguagem "mais produtiva" para um projeto é quase sempre aquela com a qual a maioria dos desenvolvedores se sente mais confortável e experiente. A curva de aprendizado é sempre a maior causa de morte na produtividade.

rally25rs
fonte
3

Uma coisa que notei é que muitas lojas C # /. NET têm uma atitude "não inventada aqui" e banem todas as bibliotecas de terceiros / código aberto, enquanto muitas lojas Java estão mais dispostas a usar bibliotecas de código aberto. Também parece haver mais bibliotecas disponíveis para Java. Mesmo se você olhar para algumas bibliotecas legais de terceiros no .NET, por exemplo, NHibernate, NPOI, Spring.NET, etc., elas são portas das bibliotecas Java e, portanto, estão por trás delas. Certamente parece que muitas dessas inovações vieram primeiro para Java e, depois, uma porta .NET foi criada. Do ponto de vista da biblioteca, certamente parece que o Java vence em termos de novas descobertas inovadoras.

Ainda assim, a Microsoft cria algumas bibliotecas oficiais, por exemplo, ASP MVC, LINQ, etc. Mas, muitas vezes, como as bibliotecas de terceiros do ASP MVC, como Struts, Spring MVC, etc. já estavam disponíveis para Java e a Microsoft estava atrasada para entrar no paradigma da web do controlador de exibição de modelo.

Obviamente, muitas dessas bibliotecas economizam muito tempo e tornam você mais produtivo. Linguagem central para linguagem central C # e Java não são tão diferentes e, para mim, é muito difícil chamar isso. Jogue no exército de bibliotecas de terceiros e a escala certamente se inclina para Java. Ainda com uma loja aberta, grande parte dessa inclinação se equilibra. É apenas um monte de lojas .NET que não inventaram a atitude aqui, enquanto muitas lojas Java são necessárias para realizar o trabalho ... Isso é verdade na empresa em que trabalho, a equipe .NET não recebe muito (devido ao gerenciamento), enquanto a equipe Java possui muitas bibliotecas / utilitários de terceiros aprovados. Também com o .NET, muito mais coisas boas não são gratuitas (por exemplo, antes da NPOI, se você queria trabalhar com documentos do Microsoft Office, a maioria das soluções [sem contar a automação do escritório] não era gratuita.

Cervo
fonte
"Não inventado aqui". Com base em que motivos? Eu trabalho em uma mistura entre C # e Java e pareço maiores abusos do pessoal de Java, por exemplo, criando um IConverter e implementando lógica para converter uma string em dupla e vice-versa.
George Silva
Por várias razões, prefiro o C # ao Java, ainda assim, prefiro as bibliotecas Java ao C # "migradas" ao C # nativo, geralmente melhor projetadas, testadas e aplicadas no mundo real.
Umlcat 27/10/14
0

Eu me perguntei muito: qual é o melhor? C # ou Java?

Vou dar um conselho e esse conselho é a conclusão da minha pesquisa: nenhum deles é melhor, apenas o idioma que você conhece bem e você pode fazer muitas aplicações fascinantes com o melhor.

Aprenda a programar e, em seguida, treine-se muito usando um idioma e, quando você se tornar perfeito ao escrever código com ele, pense em outros idiomas e acredite, você aprenderá os outros idiomas como um pedaço de bolo.

Salah
fonte