Soy un programador que ha hecho C++, Java y C# ahora el desarrollo.
Aquí es mi respuesta a la pregunta inicial:
WCF = EJB/servidor J2EE (por ejemplo, JBoss)
JBoss = no creo necesidades WCF WPF = Swing (JavaFX) un servidor, simplemente se ejecuta en el tiempo de ejecución .net. Sin embargo, no estoy seguro de esto, sigo aprendiendo. JVM vs CLR: CLR puede hacer todo lo que JVM puede, pero CLR también puede: ejecutar código no administrado, separar un proceso en varios lógicos (AppDomains). Tiene muy buena integración de C++ en comparación con Java, CLR es simplemente mejor. El lenguaje C# también es mejor que java (Lambda, delegetes, árboles de expresiones, referencias, estructuras, métodos de extensión, clases parciales, genéricos sin boxeo. ¡Hicieron un muy buen trabajo aquí!) Pero solo se ejecuta en Windows.
WF = no saben si existen, puede
LINQ = Actualmente no puede ser implementado en Java porque es necesario: Lambda, árboles de expresión y métodos de extensión
DataServices ADO.NET: I don' Conozco algo simular en Java, pero esto podría implementarse fácilmente. Probablemente existe en algún proyecto de opensourse.
Habiendo hecho tanto esta es mi conclusión acerca de cómo se relacionan:
.net es más fácil de aprender, y mucho, pero igualmente poderoso. La razón de esto es porque los nombres de los métodos en las API son más consistentes, las soluciones están mejor integradas y algunas api se diseñan mucho mejor (WPF es un ejemplo de esto, no puede decir esto para otras API, todavía está aprendiendo). Debido a esto, los programadores .net costarán menos.
Desarrollar una aplicación en C# será 1.5 a 2 veces más rápido que en Java. Allí IDE (visual studio) se siente mejor. Puedes extenderlo en 20 minutos, ¡no mierda! ¡Intentar comprender los mecanismos de extensión de eclypse no es una tarea fácil! La funcionalidad de refactorización del código Eclipse gana una pierna. Visual Studio gana en muchos otros. (Los complementos comerciales pueden estar disponibles?)
Al usar .Net, es posible que tenga que pagar licencias, para el sistema operativo y para IIS. Para la base de datos, puede escaparse con MySQL.
Para Java, no tendrá que pagar licencias. Sin embargo, en realidad ustedes todavía tienen que hacerlo. Las aplicaciones serias ejecutan un Redhad u otro SO ninguno libre. El servidor web puede ser completamente gratuito. Además, estos sistemas son más difíciles de administrar, por lo que su administrador probablemente le cueste más.
Soy un desarrollador certificado por Java (92%), también tengo certificación de servicios web (JSP, servlets, 87%) y soy desarrollador de componentes web (EJB, 82%). También soy un desarrollador certificado de microsoft (90%) y un desarrollador certificado de WPF (90%). Los exámenes de Java son más difíciles que los exámenes de Microsoft. Esto se debe a que los exámenes de Java hacen muchas preguntas infantiles irrelevantes.Como cuál es el nombre correcto del método para persistir un objeto: SaveChanges(), PersistChanges(), EmitChanges() o SendChangesToDatabase(). Cualquiera sabe que conocer el nombre del método no es útil. IDE te proporcionará el nombre correcto. ¡Y si realmente tienes nombres de métodos tan simétricos entre ellos, entonces tienes una API muy mala y confusa! ¡Lo que importa es que usted sepa por qué lo llama! Los exámenes de Microsoft se enfocan más en el porqué del cómo. En mi opinión, los exámenes de Microsoft realmente te ayudan a ser un mejor programador. Los exámenes de Java también son útiles, pero más como estudiar una guía telefónica; es muy duro pero inútil.
En resumen, creo que C# es técnicamente superieur (sería lógico ya que aprendieron mucho de Java y compraron las personas más inteligentes del mundo para escribirlo). Pagará más en licencias pero probablemente menos en personas.
Es tarde, estoy cansado y no tengo ganas de volver a leer. Debería, lo sé. Pero no lo hará. No tengo un corrector ortográfico aquí, por lo que puede haber muchos errores tipográficos. Mi primer idioma es el holandés, el segundo francés y el tercero el inglés (vivo en Bélgica, somos complicados), así que supongo que me permiten algunos errores tipográficos ¿no? :)
Espero que esto proporcione algo de claridad para usted.
Grandes enlaces, gracias por publicarlos. – duffymo