Java vs. C # - Perspectiva de productividad [cerrado]

34

Si tiene una experiencia de varios años trabajando con Java y una experiencia de varios años trabajando con C # y .NET, valoraría su opinión sobre las diferencias de productividad de desarrollo de software entre estos dos entornos. Uno de nuestros clientes está considerando reemplazar su solución de software existente. Como el reemplazo requerirá aprox. De 10 a 15 años de trabajo, una opción para Java o .NET, en función de las diferencias de productividad entre ellos, puede influir significativamente en la inversión requerida y el tiempo de comercialización.

¿Podría proporcionarnos una indicación de las diferencias de productividad de desarrollo de software entre Java y C # /. NET? Preferiría recibir una respuesta de la siguiente manera:

Mi experiencia se basa en X años de experiencia trabajando con Java y X años de experiencia trabajando con C # /. NET. Java es X% más productivo que C # .NET o C # /. NET es X% más productivo que Java si tiene en cuenta lo siguiente.

Edin Dazdarevic
fuente
24
Supongo que una cosa importante aquí también es lo que estás haciendo. .NET podría ser mejor para algunos tipos de proyectos y Java para otros.
Øyvind Knobloch-Bråthen
44
¿Qué tipo de proyecto es? Mucho depende de las bibliotecas disponibles para lo que intentas hacer. En cuanto al lenguaje, prefiero C #, pero no estoy afirmando que .net sea mejor que Java para todo tipo de proyectos.
CodesInChaos
77
En mi opinión, hay una decisión estratégica muy importante y no debería basarse en absoluto en la productividad del programador. Si desea una interfaz gráfica de usuario de Windows perfectamente moderna, no puede elegir Java, incluso si las estadísticas afirman que fue un 7% más productivo. Si necesita un verdadero producto multiplataforma sin las restricciones que viene con Mono, Java es su bebé, incluso si C # tiene la sintaxis más agradable.
user281377
2
@Edin: "Aplicación empresarial" no es muy descriptiva de qué tipo de aplicación es ... ¿Es solo de escritorio, configuración de cliente / servidor, servicios web, sitios web, posibles aplicaciones satelitales en dispositivos móviles, etc.?
asombro
3
Es "Java", no "JAVA"
Mahmoud Hossam

Respuestas:

17

Mi experiencia se basa en 10 años de experiencia trabajando con Java y 3 años de experiencia trabajando con C # /. NET. Java es 0% más productivo que C # .NET. Esto se basa en la escritura de aplicaciones de servicios de fondo.
C # /. NET es quizás un 5% más productivo que Java para escribir aplicaciones de usuario. Pero entonces no he hecho esto durante casi 5 años en Java y el nuevo editor de interfaz de usuario de Netbeans podría haber cerrado la brecha.

¿Quieres aumentar la productividad? CI (idealmente entrega continua) y pruebas automatizadas. La productividad obtenida por la elección de idioma / plataforma / IDE en cualquier idioma / plataforma / IDE importante es bastante pequeña.

mlk
fuente
¿Querías decir 0% para Java? ¿Quiere decir un 0% más productivo para aplicaciones basadas en servicios de fondo o Java en general? Solo revisando.
Jon Onstott
Si me pidiera que escribiera una aplicación de fondo (algunas reglas, acceso a la base de datos y lo que tiene), la estimación sería idéntica tanto para C # como para Java. Si solicitó una aplicación de usuario final de Windows, haría que mi estimación sea un poco más grande para Java que C # (WPF / XAML y su soporte MVVM a través del enlace, creo que es un poco más productivo que el enlace manual y la creación de IU en Java (como desactivado) Hace 5 años)).
mlk
+1 para "La productividad obtenida por la elección de idioma / plataforma / IDE en cualquier idioma / plataforma / IDE importante es bastante pequeña".
Adam Jaskiewicz
3
-1 para la última oración. Para cada clase de problema (del mundo real), puede elegir dos lenguajes de alto nivel de propósito general, donde el aumento de la productividad de uno a otro supera el 100%. Si elige entre C # y Java, encontrará poca diferencia (aunque yo diría que C # resultará significativamente más productivo en áreas adecuadas para la programación funcional). Si la elección es entre C y OCaml, la diferencia te deja boquiabierto.
back2dos
42

He trabajado en proyectos tanto en la universidad como en el mundo real ™ usando Java y C # durante 5 años.

Sin duda, disfruto usando C # más debido a su brevedad y al uso de azúcar de sintaxis. Raramente encontrará un Factory.GetFactory(OfFactory.GetFactory(Factory));código en C #. Es más fácil de leer y seguir porque la sintaxis es más pequeña y más sucinta.

¿Con cuál serás más productivo? Eso depende del tipo de proyecto.

¿Estás diseñando una aplicación de escritorio para Windows? Entonces C # es la mejor opción debido a su potente IDE Visual Studio y .NET Framework hace que la creación de GUI sea muy simple.

Francamente, me alegro de que ya no uso Java (hace más de un año) porque recuerdo cuán horriblemente detallado tenía que ser el código. Un ejemplo rápido es el manejo de excepciones. Si su código puede generar una excepción, debe tener en cuenta todas las excepciones posibles. Esto convierte rápidamente el código trivial en una línea 20 + monstruosidad.

C # no es como una mano, si decide dejar su código abierto, usted debe decidirlo como desarrollador.

C # también ha hecho muchas adiciones durante el año que hacen que sea un placer usarlo. Lambdas, delegados, función anónima (a la Ruby), muchas pequeñas cosas buenas que encontrarás a medida que avanzas.


fuente
3
Recuerdo que en Java desde la universidad, un punto que me alegra olvidar. Manejo de excepciones forzadas. sí, tenía un propósito, pero la documentación del código puede decirle si los métodos arrojan excepciones y le da a elegir qué hacer.
JonWillis
55
jaja, soy un programador de Java pero me gustó tu código de ejemplo.
Chuck Stephanski el
66
If your code can throw an exception you must account for every single exception possible.No veo el inconveniente de esto, al menos esto crea conciencia de los problemas ... aunque, podría ser solo yo.
Bobby
44
Las excepciones marcadas significan que usted escribe código de manejo de errores como parte de la implementación principal, en lugar de agregarlo como una ocurrencia tardía. Esto significa mucho mantenimiento.
Creo que es solo un desacuerdo sobre lo que significan las excepciones: pueden ser circunstancias esperadas (el archivo no existe) o errores inesperados (dividir por 0). Java decidió que las excepciones deberían representar a ambos y, por lo tanto, tanto las excepciones marcadas como las no marcadas. Esta es una característica sorprendentemente controvertida.
Tikhon Jelvis el
23

He trabajado extensamente con Java (desde 1996) y .Net (desde 2002) y en 2010 tomé la decisión de ir con Java en mi empresa sobre la base de que sería el entorno más productivo en general .

Tenga en cuenta que defino la productividad del desarrollo de software en términos de valor empresarial creado por unidad de costo / recurso, de principio a fin (es decir, debe analizar la productividad de todo el ciclo de vida del software, incluida la implementación y el mantenimiento, no solo el codificación inicial !!).

Aquí están los elementos clave de mi razonamiento:

  • La sintaxis es un factor menor en la productividad , aunque Java es ciertamente detallado y prefiero la sintaxis de C #, simplemente no importa mucho. Ya sea que sus desarrolladores escriban object.getSomeProperty()vs. object.SomePropertyo usen una clase interna anónima vs. una lambda, simplemente no habrá una diferencia apreciable en la ventaja competitiva de su empresa ...
  • El ecosistema de la biblioteca es crítico: al desarrollar un producto de software moderno, no querrá desarrollar muchos componentes comunes desde cero. El ecosistema de Java tiene una clara ventaja en términos de cantidad y calidad de bibliotecas de código abierto (especialmente las desarrolladas por Apache, Google, la Fundación Eclipse y RedHat / JBoss)
  • Flexibilidad de portabilidad / implementación : sé que puedo implementar una JVM en casi cualquier plataforma, incluidos los grandes y baratos clústeres de Linux. Con .Net, está restringido a entornos Windows. Con los avances en las opciones de alojamiento en la nube, consideré que esto era una ventaja bastante importante.
  • Scala y Clojure son opciones viables para el desarrollo en la JVM si desea funciones de lenguaje avanzadas. Es una opción realista para desarrollar en Java, pero mantenga abierta la opción de pasar a Scala o Clojure con el tiempo. Hasta cierto punto, estos son lenguajes de "próxima generación" que creo que están por delante de Java y C #, por lo que esto me aseguró que la plataforma Java tiene un buen futuro en términos de innovación de lenguaje. (Java 7 y 8 parecían prometedores, pero no estaba conteniendo la respiración ...)
  • Los costos de mantenimiento en realidad parecían ser bastante favorables para Java. Java tiene una sintaxis más simple que C #, lo que significa más verbosidad, pero por otro lado significa que las personas tienden a escribir código más fácil de mantener; simplemente es más difícil escribir "código inteligente". Además, el mundo Java pone mucho más peso en la compatibilidad con versiones anteriores que el mundo .Net, lo que será una ventaja en términos de costos de mantenimiento durante varios años.
  • Independencia de los proveedores : después de haber visto empresas quemadas por el bloqueo de proveedores en el pasado, sentí que era una ventaja ir con el ecosistema Java relativamente más abierto en lugar del mundo .Net dominado por Microsoft. Por ejemplo, preferiría tener la opción de bases de datos en lugar de ser empujado a usar SQL Server (y el empuje es bastante fuerte, a través del soporte de herramientas y el conjunto de habilidades típicas de los desarrolladores de .Net). En mi opinión, mantener a su proveedor principal de inversiones en productos es un movimiento inteligente a largo plazo. Juzgué (correctamente como resultado) que OpenJDK sería el futuro de Java, por lo que efectivamente estaría construyendo sobre una plataforma de código abierto.
  • Talento : esto es subjetivo, por supuesto, pero me impresionó más la capacidad técnica de los desarrolladores en el mundo Java que en el mundo .Net. Mi impresión en promedio fue que los desarrolladores de .Net tenían una tendencia a hacer lo que sea que Microsoft proporcionara herramientas o plantillas fáciles, mientras que los desarrolladores de Java tendían a preocuparse más por encontrar la solución correcta desde una perspectiva de ingeniería de software. Esto es completamente subjetivo y sin duda depende de la localidad / mercado específico y claramente hubo muchas personas que no se ajustaban a este patrón, por lo que YMMV, por supuesto.
  • Las herramientas eran de nivel. Microsoft tiene muchas herramientas excelentes y fáciles de usar que serían particularmente atractivas para desarrollar en Windows. Sin embargo, estoy trabajando principalmente en el desarrollo del lado del servidor, donde diría que las herramientas de Java tienen la ventaja. En particular, Maven ha demostrado ser una herramienta extremadamente poderosa en el ecosistema de Java que todavía no creo que tenga un equivalente decente en el mundo .Net.

Entonces, si bien hubo muchas consideraciones complejas, en general estoy bastante contento con la elección de ir a Java, y tomaría la misma decisión hoy (a principios de 2012).

Probablemente el único caso en el que iría con .Net sería si estuviera desarrollando una aplicación de escritorio solo para Windows (donde la ventaja de .Net es claramente enorme).

mikera
fuente
99
+1: ¡Gran respuesta! Resume muchos de los problemas que deben considerarse al evaluar la productividad en su conjunto. Algunos azúcares sintácticos pueden hacer que un idioma se vea genial y más "moderno", pero también hay otros factores importantes que influyen en la productividad.
Giorgio el
3
+1 para una respuesta mucho más completa que las anteriores.
NlightNFotis
1
Como mencionaste a Scala y Clojure, también podrías mencionar F # ...
Mauricio Scheffer
2
¡Excelente! Análisis exhaustivo. Justo lo que estaba buscando. :)
xebo
9

Tengo: Java 10 años, C # 8 años

Voto Java por

  1. Sin bloqueo de proveedor (puede cambiar la aplicación / servidores web de Linux a Windows a Unix)
  2. Interoperabilidad / Intercambiable de paquetes de terceros, como JasperReports JFreeChart, JSF o Spring
  3. La mayor parte de la innovación proviene de aquí (Log4j, Ant, Spring, Hibernate, y así sucesivamente)
  4. Funciona en múltiples servidores de aplicaciones (algo así como A). Tales como JBoss, Tomcat, WebSphere, GlassFish, WebLogic
palmadita
fuente
23
¿Qué tipo de "innovaciones" puede haber en un idioma sin lambdas?
SK-logic
66
Hubo otros marcos MVC antes de ASP MVC (por ejemplo, MonoRail) ...
EricSchaefer
2
Ah, por cierto: Lambdas / Closures son una característica del lenguaje, estás hablando de frameworks.
EricSchaefer
55
@ SK-logic, no necesita lambdas para escribir una capa O / R.
2
@Giorgio, las lambdas se adaptan perfectamente a cualquier idioma con GC. No hay lugar para ellos en C ++ y C, por supuesto.
SK-logic
6

Java: 5 años (no continuo)
C #: 7 años

No creo que pueda cuantificar la productividad de esa manera. Eso depende en gran medida del desarrollador individual y del proyecto. Utiliza lo que tus desarrolladores saben.

Editar:
definamos "aplicación empresarial típica" como:

  • múltiples niveles
  • Servidor de cliente
  • DB respaldado

Tanto Java como C # pueden hacer eso. No se trata tanto del lenguaje, sino del framework / runtime. Nuevamente, use lo que sus desarrolladores saben. Pueden aprender un nuevo idioma y un nuevo marco, pero lleva tiempo asimilarlo. Sería cierto para una aplicación de escritorio. Ambos lenguajes se pueden usar con numerosas herramientas / librerías GUI, pero todos tienen diferentes enfoques y filosofías.

EricSchaefer
fuente
3
"Eso depende en gran medida del desarrollador individual" ... que es exactamente por qué quería una opinión de las personas que tienen experiencia en ambos mundos ... "y el proyecto". ... que debería requerir una respuesta que indique qué tipo de proyectos se beneficiarán de las diferentes tecnologías.
asombro
44
No depende de este desarrollador (también conocido como yo), sino de los desarrolladores que deben construir el proyecto. También sería más fácil si hubiera declarado qué tipo de proyecto está a punto de construir ...
EricSchaefer
@eric es una aplicación empresarial típica
Edin Dazdarevic
@Edin, Java tiene la edición JavaEE con funciones empresariales incorporadas. Puede desarrollar rápidamente aplicaciones con este marco. Sin embargo, hace muchas cosas por Magic, debes ajustarte a sus reglas. Y si las cosas se rompen, no espere que los mensajes de excepción sean útiles, ya que el stacktrace es enorme. Al acceder a una base de datos con un nombre incorrecto o la base de datos está desactivada, el stacktrace es tan grande que no puede ver qué causó el problema inicial.
JonWillis
55
Claro que hay una "aplicación empresarial típica", tome estos datos del punto a, permita que el usuario los confunda y luego póngalos en el punto b. ;)
mezmo
6

Tengo más de 10 años de experiencia con Java (¡desde la versión 1.1, de verdad!) Y 7 años de experiencia con .NET (C # en su mayoría).

Tienes que tomar una decisión muy seria, pero sobre todo deberías tratar de dividir en un par de escenarios:

Aplicación de escritorio

Si está desarrollando una aplicación de escritorio, debe elegir la plataforma principal con la que trabajará. Si se trata de una plataforma de Microsoft, use .NET, no hay mejor solución que la plataforma desarrollada por la nave madre. Si se trata de un escenario Linux o multiplataforma, considere Java o cambie a una solución basada en web.

Aplicación basada en web

Esta es una decisión muy difícil de tomar porque cada uno tiene su propia fuerza y ​​debilidad. Aquí hay algunos:

DO#

Fortaleza: actualmente tiene más impulso para crear nuevas características en el lenguaje y la plataforma / marco. Todo proviene de un proveedor y definitivamente esta es una ventaja. También puede utilizar algunos componentes muy potentes como DevExpress, por ejemplo (Java ni siquiera se acerca a tener algo como lo que el equipo de DX ha reunido a lo largo de los años y esto representa un gran aumento de la productividad).

Debilidad: para la aplicación empresarial .NET no es tan maduro como Java. No tiene tantos proveedores que crean software empresarial en .NET como lo tiene para Java.

Java

Fortaleza: Más maduro (ya explicado) y tiene una gran comunidad con varios grandes proyectos de código abierto que pueden ayudar. Varios .NET llamados proyectos de código abierto son realmente solo una copia de proyectos de Java.

Debilidad: Oracle posee Java (lo sé, no el JCP) y definitivamente es un riesgo a tener en cuenta. Sus intenciones no son muy claras y personalmente no me gusta a dónde va el lenguaje en este momento (sé que muchos desarrolladores de Java tienen preocupaciones similares).

Aplicación del lado del servidor

Básicamente son los mismos argumentos que las aplicaciones basadas en la web, pero como no tiene que preocuparse demasiado por la interfaz de usuario, Java se fortalece en este caso. Pero, de nuevo, si la plataforma es principalmente Windows .NET, podría ser una mejor opción.

Consideraciones generales

En general, en mi opinión, .NET tiene la ventaja principalmente debido a la estrecha integración de Visual Studio 2010 (sin duda el mejor IDE disponible), MS SQL, Entity Framework, IIS, etc. Todo esto representa un gran aumento de la productividad y tengo mucha experiencia que lo demuestra. También trabajo con desarrolladores en su mayoría de Java que recurrieron a .NET y comparten básicamente la misma opinión.

Creo que también es un buen punto que Microsoft es más fuerte que nunca, lo que significa que .NET estará allí por un tiempo. Entonces, cuando veo 10-15 años por delante, me siento más seguro con .NET que Java.

Alex
fuente
4

Soy un estudiante recién graduado de la universidad, pero he tenido experiencia comercial con ambos idiomas, dando un total de aproximadamente 3 años de Java y 4 años de C # .Net (nota .net significa que puede usar C #, VB.net, C ++ CLI, y J # y F #).

Declararé ahora que mi preferencia general es C # sobre Java, mientras que ambos tienen una sintaxis similar. Me gusta el poder del marco .Net sobre la compatibilidad cruzada del sistema operativo de Java. Debe tener muy en cuenta lo que necesita para construir. ¿Es solo una aplicación de escritorio? ¿Necesita conectividad con otros clientes, por lo que otros escritorios, móviles, sitios web?

** La discusión sobre IDE se perdió cuando se cerró la pregunta en Stackoverflow. Lo esencial es que Java tiene muchos IDEs gratuitos, pero en mi opinión no se comparan con el poder y los complementos de Visual Studio. Pero tenga en cuenta los costos de Visual Studio por licencia.

Debe ver qué habilidades tiene su equipo de desarrollo, ya que esto tendrá un impacto inicial. Lo que es más rápido está aquí o allá dado un usuario experimentado en cualquier idioma / marco. Lo cual supongo que trae el punto de que no debes considerar el lenguaje, ya que el lenguaje es solo la sintaxis, sino las herramientas y el marco de trabajo que el lenguaje está utilizando.

JonWillis
fuente
11
£ 1000 por licencia para VS? Si obtiene suscripciones de MSDN, obtendrá mucho más software y herramientas disponibles por el costo. Realmente dudo que alguien pague el precio minorista de VS2010.
James Love
66
@ Michael, nunca he tratado de escribir extensiones VS. Sin embargo, uso o probé una variedad de complementos para Visual Studio. Estos incluyen Resharper, CodeRush, Gallio, VisualSVN, AnkhSVN, testDriven.Net y muchos más.
JonWillis
2
@JonWillis estuvo de acuerdo, hay una gran cantidad de extensiones por ahí. Además de esa lista, también uso (a diario) Productivity Power Tools, CKS: Dev for SharePoint y WSPBuilder. La galería (en visualstudiogallery.msdn.microsoft.com ) tiene un par de miles allí, por lo que no puede ser tan difícil escribir más extensiones para VS (en realidad se proporciona un marco completo para hacerlo, y hay un amplio apoyo de la comunidad) .
James Love
1
Para un proyecto planificado de 10 a 15 años de trabajo, el costo inicial de las licencias VS es de maní.
asombro
1
Visual Studio 2010 Professional sin MSDN cuesta $ 550.
Boris Yankov
3

Con la similitud en la sintaxis y las herramientas, las ganancias de productividad de C # o Java no son de un orden de magnitud para hacer una diferencia significativa en su proyecto de trabajo de 10 a 15 años. Miraría más de cerca cuestiones como:

  1. Cuáles son los requisitos del proyecto y qué capacidades de lenguaje cumplen con esos requisitos (por ejemplo, multiplataforma vs cliente rico de Windows).
  2. ¿Qué puedo implementar como un enfoque / metodología de proyecto que permita que mi equipo trabaje productivamente?
  3. ¿Qué puedo hacer sobre el entorno de trabajo para asegurarme de emplear, retener y utilizar al máximo el mejor equipo posible para un proyecto importante?

Sugeriría que, en mi opinión, la premisa detrás de la pregunta es que "las diferencias de productividad entre (C # y Java) pueden influir significativamente en la inversión requerida y el tiempo de comercialización" no es cierto. No dudo que habría alguna diferencia, pero no sería significativa.

AlexC
fuente
3

Cambié de un lado a otro entre Java y .NET, comenzando con Java 1.2 hasta 1.6 y .NET 1 hasta 4.0, a lo largo de aproximadamente 10 años de experiencia laboral profesional (siendo un programador C / C ++ antes de eso).

En un momento, como .NET 2.0, diría que Java y C # serían casi iguales, especialmente para el trabajo de back-end. Las construcciones del lenguaje aún eran muy similares. .NET probablemente habría ganado ventaja en la programación de IU de escritorio, debido al diseñador de WinForms en Visual Studio, y Java habría tenido ventaja en cosas de Web / Server, principalmente porque no estaba atrapado con IIS.

Ahora moviéndome a .NET 3.5 y 4, doy la ventaja de productividad a .NET, sin dudas. En mi opinión, esto se debe principalmente a que .NET es un lenguaje que evoluciona mucho más rápido, ya que MS puede tomar decisiones de lenguaje relativamente rápido, en lugar de impulsar cambios a través de la política del PCJ. Grandes mejoras son la varpalabra clave, la totalidad de LINQ, métodos de extensión, el operador nulo coalescencia ??, dynamicy probablemente mucho más grandes cosas que realmente aumenta la productividad.

Ahora, dicho esto, el lenguaje "más productivo" para un proyecto es casi siempre aquel con el que la mayoría de los desarrolladores se sienten más cómodos y experimentados. La curva de aprendizaje es siempre la principal causa de pérdida de productividad.

rally25rs
fuente
3

Una cosa que he notado es que muchas tiendas C # /. NET tienen una actitud de "no inventado aquí" y prohíben todas las bibliotecas de terceros / código abierto, mientras que muchas tiendas Java están más dispuestas a usar bibliotecas de código abierto. También parece haber más bibliotecas disponibles para Java. Incluso si observa algunas geniales bibliotecas de terceros en .NET, por ejemplo, NHibernate, NPOI, Spring.NET, etc., son puertos de las bibliotecas de Java y, por lo tanto, están detrás de ellas. Ciertamente parece que muchas de estas innovaciones llegaron primero a Java y después de un tiempo se creó un puerto .NET. Desde la perspectiva de la biblioteca, parece que Java gana en términos de nuevos descubrimientos innovadores.

Aún así, Microsoft crea algunas bibliotecas oficiales, por ejemplo, ASP MVC, LINQ, etc. Pero a menudo, al igual que con ASP MVC, las bibliotecas de terceros como Struts, Spring MVC, etc. ya estaban fuera de Java y Microsoft ingresó tarde en el paradigma web del controlador de vista de modelo.

Por supuesto, muchas de estas bibliotecas ahorran mucho tiempo y lo hacen más productivo. El lenguaje central al lenguaje central C # y Java no son tan diferentes y para mí está demasiado cerca de llamar. Agregue al ejército de bibliotecas de terceros y la escala ciertamente se inclina hacia Java. Aún con una tienda abierta, gran parte de esa inclinación se equilibra. Es solo que muchas tiendas .NET tienen la actitud de no inventar aquí, mientras que muchas tiendas Java son lo que sea necesario para hacer el trabajo ... Esto es cierto incluso dentro de la compañía en la que trabajo, el equipo .NET no obtiene mucho (debido a la gestión) mientras que el equipo de Java tiene muchas bibliotecas / utilidades de terceros aprobadas. Además, con .NET, muchas de las cosas buenas no son gratuitas (por ejemplo, antes de NPOI si quería trabajar con documentos de Office de Microsoft, la mayoría de las soluciones [sin contar la automatización de Office] no eran gratuitas.

Cervo
fuente
"No inventado aquí". ¿Con base en qué motivos? Trabajo en una combinación entre C # y Java y me parecen mayores abusos de la gente de Java, por ejemplo, creando un IConverter e implementando lógica para convertir una cadena a doble, y viceversa.
George Silva el
Por varias razones, prefiero C # sobre Java, sin embargo, prefiero las bibliotecas Java a C # "migradas" sobre C # nativo, por lo general, mejor diseñado, probado y aplicado en el mundo real.
umlcat
0

Me hice esta pregunta mucho: ¿cuál es mejor? C # o Java?

Te daré un consejo y este es la conclusión de mi investigación: ninguno de ellos es mejor, solo el idioma que conoces bien y con el que puedes hacer muchas aplicaciones fascinantes es el mejor.

Aprenda a programar y luego entrenarse mucho usando un idioma y cuando sea perfecto escribiendo código con él, piense en otros idiomas y créame, aprenderá los otros idiomas como un pedazo de pastel.

Salah
fuente