Hoy publiqué una pregunta preguntando qué lenguaje C # o Java sería mejor para mí estudiar. Tuve algunas respuestas geniales. Una cosa que surgió fue que quizás Java ahora está bastante por detrás de C # con nuevas características. Vi algunos enlaces web y la mayoría señaló lo que tenía C # y lo que Java no tenía.
Entonces, mi pregunta para todos ustedes es si Java volverá a ponerse al día con C #. Y si tuviera que adivinar dónde estaría dentro de 5 años. ¿Tendría todas las cosas que quizás ahora faltan? ¿Qué tal Java 7?
)
's, muchas gracias.Respuestas:
Las características del lenguaje son una parte muy pequeña de lo que hace que Java y C # funcionen. En última instancia, estas son partes de ecosistemas J2EE y .NET más grandes.
Ambos tienen sus propias fortalezas y deberían crecer más en los próximos 5 años.
fuente
Hubiera dicho que sí hasta que Oracle entró en escena. Lo cual es triste, porque realmente disfruté el salto en las funciones que Java y C # tuvieron durante los últimos seis años más o menos.
fuente
Como lenguaje, no amplío Java para agregar innovación a un ritmo significativo, principalmente porque aquellos en la comunidad de código abierto que están a la vanguardia tienen más probabilidades de centrarse en los nuevos lenguajes JVM, como Scala, Clojure, Groovy, JRuby y JPython.
Además, el compromiso de Java con la compatibilidad con versiones anteriores significa que agregar funciones de lenguaje es inherentemente más difícil que en los primeros días del lenguaje.
fuente
El gran signo de interrogación aquí es Oracle. Sun realmente ralentizó las cosas para Java en la última media década más o menos. La esperanza de muchos en la comunidad de Java era que Sun escindiera Java o lo vendiera a alguien que pondría muchos recursos y esfuerzo. Si bien Oracle ciertamente podría hacer eso, es una gran empresa con muchos grupos con sus propios intereses creados. Mi conjetura, y es solo eso, una conjetura, es que Oracle permitirá que Java se estanque y lo use principalmente como una herramienta para demandas de patentes.
Tal vez lo venderán a Google por una gran cantidad de dinero y todos estarán felices. Está en manos de salas de juntas y abogados en lugar de ingenieros y diseñadores de software.
En el lado bueno de las cosas, incluso sin mejoras, Java es un buen lenguaje y tiene un buen ecosistema a su alrededor. Aunque personalmente prefiero C # y el mundo .net, Java sigue siendo una gran opción. En el futuro, el tiempo lo dirá, pero a partir de ahora, Java no está del todo mal. (Se excluyen las bibliotecas de fecha y hora ... wow, son esas siempre feas y desordenadas)
fuente
No hay nada con lo que ponerse al día, por lo que la pregunta no tiene sentido.
El hecho de que Java no replica exactamente C # no significa que sea "inferior" de alguna manera, es simplemente diferente. También podría preguntar cuándo C # se "pondrá al día" con Cobol.
fuente
La cuestión de si C # o Java está por delante del otro está en debate, pero en lugar de centrarme en las características del lenguaje de uno u otro, preferiría centrarme en lo que implica evolucionar un lenguaje. Es un hecho con el que no creo que nadie discuta: Java es anterior a C #.
Problemas para cambiar el funcionamiento de un idioma:
Entonces, ¿C # tiene más funciones de lenguaje que Java? Creo que sí. ¿Son útiles? Creo que sí. ¿Eso significa que C # es mejor o más maduro que Java? Con lo que no estoy de acuerdo. Son diferentes, simples y simples. Java nunca tendrá todas las características de C # ya que C # nunca tendrá todas las características de Java.
Una de las características de Java, la capacidad de escribir un programa en Windows e implementarlo en Unix o Mac, nunca sucederá directamente por el soporte de Microsoft. ¿Porque preguntas? No es porque Microsoft sea malvado (si eso es cierto o no, realmente no me importa). Es porque aprendieron una lección que Sun nunca aprendió: escribir una vez que se ejecuta en cualquier lugar comercializa los sistemas operativos y el hardware. Si le interesa ganar dinero con las ventas de su sistema operativo, no desea que sea trivial cambiarlo y aún así tener una aplicación funcionando. Si lo hizo, no puede obtener ningún beneficio del sistema operativo porque siempre hay opciones más baratas.
fuente
Java realmente no necesita nuevas "características" más que C o C ++. Es un lenguaje bien diseñado para el desarrollo orientado a objetos. Las adiciones que se pueden hacer están en la creación de bibliotecas para realizar una amplia gama de tareas. Lo mismo ocurre con C #: la mayoría de las funciones se están agregando para que el lenguaje haga más cosas. Personalmente, creo que la mayoría de esas características no son necesarias: los punteros en OO realmente son muy esponjosos a menos que esté trabajando a nivel de hardware (en ese punto, probablemente sea mejor usar algo como C). Además, se supone que ejecutar en una VM dificulta el acceso directo al hardware, si no es que imposible.
Unix comenzó la tendencia de crear módulos que hacen una cosa muy bien. Creo que tanto Java como C # se están yendo un poco de las manos en el arrastre de características. Es mejor crear un núcleo fácilmente extensible que un "lenguaje" gigante multipropósito que es más como un marco. Para mí , Java cumple este requisito mejor que C #.
fuente
No hay nada malo con muchas de las características que C # está agregando, pero dada la velocidad a la que están cambiando el idioma, conscientemente hacen que Mono sea difícil, si no imposible, de mantenerse al día. Si es así, digo que estamos esperando que C # se ponga al día con Java en términos de la gama de sistemas en los que puede desplegarse. No es suficiente simplemente ejecutar en Windows.
fuente
No voy a comenzar un foro de discusión, pero creo que Java estuvo aquí mucho antes de C # y, en realidad, C # parece más una replicación que Java.
En cuanto a responder a su pregunta: Java y C # son lenguajes diferentes, por lo tanto, no puede compararlos solo por sus características. Lo que puede hacer en Java no puede hacerlo en C # y viceversa.
Finalmente, esto es como comenzar un tema de Windows vs Linux.
fuente