Personalmente también siento mas simpatía por c# que java, y si Linq se incluyeron desde la versión 3.5 y en java no había nada parecido, pero yo he notado que los desarrolladores de java que no conocen c# como hablan mal de c# que no es libre microsoft es el dueño etc, pero quizás no conocen del proyecto mono de .net y también hoy en día java no es tan libre Oracle es el dueño y ellos deciden que incluir y que no en el framework de java.
Ese tipo de opiniones no es exclusivo de gente que usa Java sino que de gente que simplemente no usa .NET. Mono simplemente es una implementación libre de una máquina virtual para el bytecode de .NET (Common Language Infrastructure). El problema es que cada grupo de programadores prefiere los lenguajes con los que aprendieron a programar y que les resultaron entendibles; y gente que es altamente competente en lenguajes como C, C++ o Java y toda una vida de código en estos, tendría pocos incentivos para usar tecnología .NET si no hay razones especiales.
Con el juicio que Google/Android ganó sobre Oracle, queda el precedente de que cualquiera puede implementar su propio clon del JRE, y todas las especificaciones de Java y sus bytecodes son 100% abiertas desde hace mucho tiempo, y por eso es tan válido como el CLI de .NET, pero aparentemente más popular (Java existe desde los 90's cuando el Internet del Hipertexto/WWW empezaba a popularizarse).
Pero yo pienso que ambos lenguajes se basan en el mismo concepto de programación y que no hay mejor ni peor depende de cada quien con cual se siente mas cómodo programando ya que con uno u otro se podría desarrollar cualquier tipo de aplicacion.
En lo personal, no me entusiasman los lenguajes que han sido pensados para ocultar los detalles de la plataforma por completo, porque esto es usado para cerrar todavía más la especificación de la máquina, y como resultado los programadores son fundamentalmente menos creativos. Aunque es perfectamente posible compilar código de Java o de C# a código totalmente nativo, ya que esa no es una característica inseparable del lenguaje en sí.
Yo también evaluó la demanda laboral que tiene cada lenguaje en nuestro país y las ofertas de trabajo para c# como para java tienen la misma demanda c y c++ casi no tienen demanda laboral aquí en el país pero eso no quiere decir que no sean buenos lenguajes de programación , lo que también he notado que vb.net también tiene bastante demanda laboral y a opinion personal este no tendría que usarse para desarrollo en las empresas ya que pienso que el lenguaje de la plataforma .Net que debería usarse es c# ademas creo que en casi todas las universidades para enseñar la plataforma .Net es c# no se si en alguna enseñen vb.net
Bueno esa es mi humilde opinion saludos a todos.
En este país y todos los locales, es más que sabido que los lenguajes que piden en un trabajo son SQL, los lenguajes de .NET, lenguajes web (HTML, PHP, JavaScript) y misceláneos como Ruby, Python, y tal vez Perl.
Es una lástima que no haya más opciones en las empresas. Creo que eso limita buena parte de la creatividad, pero al fin de cuentas no están desarrollando productos de software sino que dándole mantenimiento a la infraestructura informática/contable/de clientela/redes de dichas empresas. Así son también los lenguajes y el conocimiento demandado.
A mí no me molesta el hecho de que alguien use un lenguaje particular para crear aplicaciones, aunque se trate de Visual Basic (aunque usar ese tipo de lenguajes es más común que demuestre pocas habilidades de programación a grandes rasgos).
Lo que sí me molesta es que la integración de diferentes lenguajes en un mismo proyecto de código fuente no pase de combinar C y Ensamblador.
Creo que nadie debería estar obligado a usar un lenguaje que le resulta difícil, si puede hacer lo mismo en otro lenguaje.En lugar de eso, debería haber un compilador que pudiera combinar C/C++, Ensamblador, Java, JavaScript, Visual Basic/.NET, C#, Python, etc. Para esto podría destinarse sintaxis especial, aunque sea con corchetes u otras estructuras adecuadas para el lenguaje actualmente en el nivel superior de un archivo de código:
//Código C
.......
#Lang_Java{
//Código Java en código C
///
}
#Lang_CSharp{
//Código C# en código C
///
}
#Lang_JavaScript{
//Código JavaScript en código C
///
}Y si se usa ensamblador de una plataforma diferente a la real, que traduzca ese ensamblador al de la plataforma real. Todo esto es perfectamente posible a estas alturas, y es molesto que ninguna empresa, grupo de software libre o ente estandarizador se encargue.
Así casi todo el código existente podría combinarse en la misma aplicación así de fácilmente, y con un compilador así no habría restricción de lenguajes debido al conocimiento de uno u otro programador, y eso permitiría unir esfuerzo y reusar código de forma mucho más efectiva y rápida.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Hay que recordar que hay un conjunto ya existente de tareas y algoritmos para los que un lenguaje puede no expresar de forma elegante y eficiente al máximo, por más que uno lo intente. Pero hay otros lenguajes que permiten implementar esa misma tarea o algoritmo de forma breve, clara y fácil de leer.
Esa es la razón más importante por la que usar uno u otro lenguaje no debería ser a la fuerza, en este tiempo en el que se han desarrollado tantas soluciones de lengjuajes de programación, y que solo hace falta integrar más.
___________________________________________________
___________________________________________________
___________________________________________________