Si te gusta Java, ¿por qué te gusta?

Tipo de seguridad : Java está fuertemente tipado. Te obliga a precisar. Debe definir el tipo de las variables que está utilizando, no hay magia involucrada. Lo que al principio parece difícil para los principiantes, te hará la vida mucho más fácil: no habrá ninguna sorpresa oculta. Una manzana es una manzana y sigue siendo una manzana. Una manzana nunca será una pera.

Orientación a objetos : Java es un lenguaje orientado a objetos. Esto le permite modelar, diseñar su código de una manera que se relacione estrechamente con el mundo real. Puede hablar con su cliente acerca de su código “Hay un árbol de manzanas y una manzana se está cayendo”, y sin ningún conocimiento de programación, el cliente comprenderá de qué está hablando.

Rendimiento : Java tiene un rendimiento increíble, y con los nuevos compiladores y JVM está mejorando cada año.

Garbage Collection : Java fue mi primer lenguaje de programación, por lo que para mí tenía sentido que creara objetos y nunca tuviera que preocuparme por la asignación y la desasignación de memoria. Me pareció tan intuitivo, tan normal, que no me di cuenta de lo genial fue – hasta que comencé a aprender algo de C. Debes hacerlo todo por tu cuenta – obtén algo de memoria libre, úsala, asegúrate de liberarla después de que hayas terminado, o pronto tendrás problemas, eso es un problema ¡Gran desafío por sí solo! No hay mucho tiempo para el problema real que quería resolver en primer lugar.

Bibliotecas : Java es masivo. Hay código para casi todo lo que pueda desear, ya sea de forma nativa en el JDK, o disponible como código abierto.

Empleos : nunca tuve que buscar mucho trabajo, por ejemplo, después de la universidad, recibí más ofertas de las que estaba dispuesto a tomar entrevistas. Tomé alrededor de 10, y luego elegí la mejor opción de las 10.

Me gustaría hablar sobre por qué me gusta Java (u otras variantes de JVM como scala)

  1. Tipo de seguridad : Esto es lo que me gusta llamar un mal necesario, en Python o Ruby debido a la falta de tipo de seguridad, es difícil saber en cualquier punto dado el tipo de variable. Este es un problema más difícil cuando tienes más de 2 personas trabajando en la misma base de código. Obviamente, esto no incluye problemas de puntero nulo, pero Scala lo mitiga con su patrón de opción. Creo que en una de las bibliotecas de Google se expone un patrón similar. Creo que la verbosidad de la seguridad de tipos también se reduce por la inferencia de tipos de scala.
  2. Concurrencia : la concurrencia de Java es significativamente mejor que la de Ruby o Python porque tienen GIL que hacen que las operaciones concurrentes multiproceso sean menos eficientes de lo que deberían ser.
  3. Recolección de basura : no es necesario administrar manualmente la memoria como en C ++ o encontrarse con pérdidas de memoria debido a referencias cíclicas. Java atraviesa todo el gráfico de objetos para eliminar la memoria sin referencia. Obviamente, esta es una espada de doble filo, ya que el costo de GC puede ralentizar el programa. Pero si esto es un gran problema, siempre puede asignar memoria fuera del montón y administrarla manualmente. Creo que con futuras mejoras del recolector de basura, como el recolector G1, mejorará esta situación.
  4. Ecosistema maduro : Java tiene un montón de bibliotecas realmente bien escritas y probadas, algunas de las cuales incluyen: Apache Commons – Apache Commons, Google Core Libraries for Java 1.6+ – Google Project Hosting y muchos otros marcos importantes escritos como Netty, Hadoop, etc.
  5. Rendimiento : si bien Java no se compara con el código escrito en C ++ (Comparación de Java y C ++), funciona bastante bien. Netty es un ejemplo sorprendente de lo eficaz que puede ser Java bien escrito (pago: Netty 4 en Twitter: Gastos generales reducidos de GC | Blogs de Twitter)

Estoy seguro de que hay otros lenguajes que lo hacen tan bien o igualmente bien, pero esto es lo que personalmente me gusta de Java.

Prefiero no usar la palabra “me gusta” porque me gusta Lisp. 🙂 pero no lo usaré para ninguna aplicación real que construya.

Java tiene beneficios que ayudan inmensamente a las aplicaciones de red a gran escala (¡básicamente cualquier aplicación creada en los últimos 20 años!)

  1. La escritura estática ayuda a detectar grandes clases de errores. Puede exponer una interfaz y permitir a miles de personas sentadas en cualquier parte del mundo, crear clases o tipos exactamente como lo desearía.
  2. Hay un increíble soporte de reflexión que permite algunos escenarios muy interesantes. Seguro que un “lenguaje funcional puro” probablemente los tendría de todos modos, pero Java es uno de los pocos lenguajes principales que permite la reflexión, la generación de proxies de tiempo de ejecución, la programación orientada a aspectos e incluso la generación de código (proyecto Lombok).
  3. El GC está diseñado para niveles ridículos de cargas de trabajo. En el pico, ejecuté cargas de producción que asignaban y recolectaban 5 gigas por segundo, y la JVM funcionó bien.
  4. Increíble y profunda capacidad de depuración. Debido a que todo se ejecuta en una JVM, puede haber “actores externos” que pueden observar todo el tiempo de ejecución, sin causar errores (donde su propia herramienta de depuración contamina el tiempo de ejecución por su existencia). Puede descompilar la mayoría de los códigos de bytes y comprender lo que está tratando de hacer. Puede introspectar, pausar y reproducir partes y piezas.
  5. Puede personalizar componentes profundos; por ejemplo, puede suministrar por completo su propio recolector de basura, o su propio cargador de clases, o sus propios complementos de seguridad y autenticación, o su propio serializador, o su propia biblioteca de red.
  6. La filosofía central está muy bien fundamentada: solo una forma de hacer algo. Sin sobrecarga del operador. No hay funciones “no virtuales”. Todo subclases de “Objeto”.
  7. Su amplio uso le garantiza que, incluso si no se han resuelto todos los problemas, hay suficientes personas invertidas en la plataforma para solucionarlos o publicar soluciones alternativas bien conocidas y probadas. Raramente se encuentra solo sin nadie que lo guíe o lo ayude.
  8. Las secuencias, referencias de funciones y cierres recientemente agregados son bastante útiles.

Recuerde que Java ya no es un lenguaje romántico. Tiene 20 años y muestra signos de edad. Ha tomado algunas direcciones que tenían sentido hace 10 años, pero hoy nos molestan. Oracle está mostrando un valor increíble para romper la compatibilidad con versiones anteriores cuando sea necesario.

Para ser justos, las respuestas a las otras preguntas son realmente buenas. @GarryTaylor para uno se ha programado en más contextos de los que puedes meter, solo lee sus respuestas.

Entonces mi opinión es esta. Pero no lo presento para convencerte de nada. No uses Java si no te gusta. Las guerras lingüísticas son para niños y aficionados.

No amo ningún idioma en absoluto. Todos son una molestia a su manera. Ellos cierran la brecha entre los sueños y la realidad en los sistemas informáticos, eso es todo.

Para sistemas integrados en pequeñas aplicaciones de control, C es el mejor. Entonces uso eso.

Java es mi lenguaje OO preferido para uso general. Me gustó mucho C ++. Java me ayudó a escribir mejores objetos debido a su gestión automática de memoria y a su semántica de referencia. Evita usar modismos RAII en todas partes.

Lo que me hizo cambiar de C ++ a Java fue un proyecto para administrar varias computadoras con una interfaz web. En 2005, Java tenía muchas bibliotecas de código abierto que me ayudaron a hacer esto. Nuestro equipo no tenía equivalentes disponibles en C ++

Escuché que C # es un poco mejor si puedes vivir con todo Microsoft.

JavaScript es infinitamente peor en todos los sentidos.

Ruby y Clojure parecen estar bien. Python decente excepto por ningún sistema de tipos y espacios en blanco extraños

Pascal, Fortran, COBOL no, gracias.

Entonces Java sigue siendo un lenguaje viable y decente. Puede escribir programas elegantes en él, si sabe cómo diseñar código. Los ejemplos que veo en el campo de odio de Java son simplemente código mal estructurado. Es un pensamiento roto, no un lenguaje roto

Para ser justos, realmente no creo que Java sea el mejor lenguaje.

Sin embargo, Java y la plataforma Java EE tienen algunas características que siempre coinciden para mí, y realmente terminan siendo lo que elijo para mis proyectos.

Algunos motivos:

  • Mecanografía estática. En parte una elección personal, pero:
  • Prefiero comprobar las cosas en tiempo de compilación. El tiempo de ejecución es potencialmente producción.
  • Trae refactorizaciones poderosas.
  • El lenguaje es más que correcto:
    • C # tiene más funciones, pero no mucho de lo que me estoy perdiendo. No estoy seguro de que tengan razón, por cierto.
    • Hay lenguajes geniales (por ejemplo, funcionales) que creo que serían mejores o más geniales, pero no tienen ninguna fracción de la base de usuarios.
  • Toda la plataforma es de código abierto. Desde la máquina virtual hasta las bibliotecas de la plataforma y el servidor de aplicaciones (al menos las que elijo), puede inspeccionar todas las fuentes y depurar cualquier cosa.
  • Multiplataforma. De Verdad. Utilizo Windows para desarrollo y Linux para producciones. He trabajado con desarrolladores en Windows, Mac y Linux, y realmente no nos importa. Solo usaremos los mismos binarios.
  • Basada en el estándar. Esto es mucho más que una palabra de moda:
    • Java EE es una especificación general para muchas especificaciones, como JAX-RS para servicios web REST, JAXB para XML (o incluso JSON) a / desde mapeo de objetos Java, JPA para persistencia, …
    • Todas las especificaciones han sido decididas por múltiples socios (JCP, lo que lleva a JSR). Hay algunas advertencias, pero es un proceso inclusivo. Oracle no es realmente el único en decidir.
    • Deben tener una implementación de referencia y un kit de prueba.
    • Si codifica el estándar frente a su implementación, simplemente puede cambiar la implementación. Y también funciona en la práctica 🙂 Utilizo múltiples servidores de aplicaciones y sus implementaciones estándar todo el tiempo, dependiendo del contexto (cliente, licencias, etc.). Y he cambiado las bibliotecas de implementación que son centrales para mis aplicaciones, sin tener que cambiar el código.
  • Compatibilidad con versiones anteriores: aunque tiendo a actualizar mi código siempre que sea posible, lo que me permite tener menos código personalizado y usar más cosas estándar, es bastante reconfortante saber que solo puedo actualizar mi servidor de aplicaciones, la versión jvm, etc.
  • Ahora, mucho de esto solo funciona si codifica para estándares. Poner un código específico de implementación dará como resultado actualizaciones difíciles, bloqueo del proveedor (no se puede cambiar de biblioteca fácilmente), etc. Esto requiere un poco de disciplina, lo que considero bueno. Con el tiempo, esto no es más difícil.
  • No veo muchas plataformas que coincidan con esos criterios. .NET se acerca hoy en día, pero no es tan específico y mucho menos gratuito.

    Debido a que Java dirige una buena parte del mundo empresarial y me gana una vida cómoda. Como en “bien en seis cifras” cómodo. Casarme con eso con habilidades de Datapower y nunca voy a estar desempleado.

    Java es dominante en el centro de datos que ejecuta empresas. Los marcos y la madurez del lenguaje le permiten ejecutarse en todo, a cualquier precio, con niveles de rendimiento desde la aplicación de aficionado o el sitio web hasta la ejecución de finanzas, seguros o salud. Otras soluciones que se avecinan podrían ser más modernas, pero Java se acerca a los 20 años de evolución y mejora. Y sigue yendo fuerte. Los idiomas no logran un poder de permanencia así si fueran malos en lo que hicieron.

    Java es el mejor para el trabajo transaccional distribuido, aplicaciones web a gran escala, manejo de datos, programación de red y middleware. También ejecuta la mitad del mundo móvil en forma de Android. ¡Entonces no puede ser tan malo!

    Disfruto programando en Java porque:
    1) Hay tantas bibliotecas de calidad para dibujar.
    2) Es lo suficientemente rápido para el tipo de programación que hago para vivir (aplicaciones comerciales)
    3) Es ampliamente compatible con software de terceros con el que normalmente tengo que integrar
    4) Me gusta el modelo de cinturones y tirantes para protegerme de mí mismo (mecanografía estática, etc.)
    5) El código que escribo en mi MacBook se ejecuta en micro plataformas basadas en ARM hasta nuestras mini computadoras y mainframes sin tener que volver a compilar.
    6) Tiene un buen soporte de varios métodos de programación de comunicación desde sockets hasta JMS (esta es una clara ventaja para mí ya que un número creciente de aplicaciones tienen componentes distribuidos)
    8) La sintaxis está bien,
    9) La herencia única es más fácil de asimilar que la herencia múltiple.
    10) Raramente tengo que bajar a C y ensamblar debido a que el compilador de puntos de acceso hace un buen trabajo.

    Definitivamente no es necesario que te guste Java. O Python o C o JavaScript para el caso. Son simplemente herramientas. Herramientas que se utilizan para expresar sus ideas. Los lenguajes de programación y los lenguajes de comunicación de uso general como inglés, español, etc. tienen el mismo uso. Oh, cuánto me encanta filosofar esto.

    Al igual que hablar en un idioma no tiene ningún beneficio real (excepto que dos personas deben saber el mismo idioma), la programación en Java, etc., puede no tener mucho beneficio.

    Sí, hay una gran diferencia en los idiomas de tipo estático y de tipo dinámico, pero supongo que es un nivel bastante alto para usted, supongo (lo siento si no lo es: P).

    Tomará tiempo para comprender la belleza de cualquier lenguaje de programación. No te darás cuenta haciendo programas de “Hola Mundo”. Entonces, dale algo de tiempo.

    Por ahora, puedo decirle el siguiente uso para Java, que es donde es la mejor opción:

    • Para cualquier dispositivo de pequeña escala. Como un decodificador, interfaz de TV, etc. Hay una razón por la que se usa allí desde hace algunas décadas.
    • Para construir aplicaciones nativas de Android. Google recomienda esto oficialmente. Aquí hay algunos que hice.

    Aquí hay algunas aplicaciones que hice. Y en mi humilde opinión, todos se ven mejor que la mayoría de los applets.

    Diwali Quiz: Diwali Quiz-Illuminate Within – Aplicaciones de Android en Google Play

    Juego de matemáticas: Mejora tus habilidades de matemáticas mientras corres contra el tiempo para obtener la mayor cantidad de respuestas correctas posible

    Puzzle Game-Mejore su cerebro – Aplicaciones de Android en Google Play

    Mensaje secreto: envíe mensajes cifrados que caduquen a medianoche. Todos tus secretos permanecen seguros 😀

    Secret Message-Stay Secured – Aplicaciones de Android en Google Play

    Juego de Tronos Quiz: ¿Eres un verdadero fanático de GoT?

    Fan made Game of Thrones Quiz – Aplicaciones de Android en Google Play

    Soy un muy buen desarrollador de Java. He usado el idioma durante varios años profesionalmente. Soy como el típico desarrollador senior de Java que comenzó desde c, luego a c ++ y finalmente a Java. Siempre me han gustado las diversas API principales asociadas con Java y también la forma en que Java expone la programación de estilo OO. También felicito a Java por la facilidad con la que puede explotar sistemas multinúcleo a través de su API de concurrencia. Además, para estar al día con los modismos de programación modernos, felicito a Java por adoptar su nuevo estilo de programación funcional a través de expresiones lambda, streams et al. Y también aprecio la lista cada vez mayor de bibliotecas escritas para extender el lenguaje java de muchas maneras y direcciones.

    Ahora … con todo lo dicho, creo que Java está alcanzando ciertos límites en lo que es capaz de lograr sin reescribir completamente el idioma y convertirlo en un idioma completamente diferente. Y esto me lleva a decir algo que no pensé que diría durante mi carrera como desarrollador de Java. Hace poco descubrí un nuevo lenguaje JVM que creo que es mejor que Java. En realidad es un superconjunto de Java. Estoy en los primeros días de aprender este nuevo idioma en este momento. Ese idioma es Scala. Actualmente me parece muy difícil comprenderlo, pero lo poco que he logrado entender me hace sentir muy entusiasmado con las posibilidades.

    _

    Los dos grupos de personas que he conocido que aman profundamente Java pueden clasificarse de la siguiente manera:

    1. Las personas que aprendieron Java primero y piensan que es la única forma de programar correctamente.
    2. Personas que provienen de un entorno C o C ++.

    Las personas en la segunda categoría generalmente citan la recolección de basura de Java como algo grandioso. Y tienen razón: no tener que recolectar explícitamente su propia basura se deshace de una cantidad absolutamente enorme de formas en las que puede volar su programa y / o computadora al infierno. Que parezca C / C ++ hace que sea bastante fácil de aprender. Tampoco hace daño que la biblioteca estándar sea extensa y que todos y sus madres (o eso parece) tengan marcos escritos y herramientas de código abierto para hacer lo que sea que quieran hacer en Java.

    Dicho esto, en este punto, creo que el lenguaje Java es casi la peor parte de la plataforma Java. ¿Quieres programar en Python pero tienes bibliotecas Java? Ve con Jython. Ruby más tu estilo? JRuby ¿Quieres un dialecto Lisp bien soportado? Clojure o Kawa. Y Scala también es una muy buena opción, es mucho más compacta, entre otras cosas.

    En mi experiencia, las personas en la primera categoría también señalarán que la escritura estática es una gran cosa. El argumento de escritura estática / escritura dinámica no es más que una guerra santa en este momento, pero bueno, a algunas personas les encanta.

    Soy bastante nuevo en Java. Estuve en tu lugar todo el tiempo que puedo recordar. Después de haber estudiado C ++ durante dos años en la escuela secundaria, tampoco encontré una razón para cambiar durante los cuatro años de graduación. Es un lenguaje inteligente, pero más que eso, estaba cómodo. Java, con toda su jerga y verbosidad, me repelió.

    Pero mi trabajo ahora implica trabajar en Java y, aunque todavía estoy aprendiendo, me ha gustado más que el lenguaje con el que me fastidiaba.

    Fuera de mi cabeza, aquí hay algunas razones que a usted también le gustaría tener en cuenta:

    1. Salga de los punteros, ingrese las referencias : Algunas personas argumentan que las referencias siguen siendo punteros que funcionan debajo de la manta, pero mientras esté ‘debajo de la manta’, no me importa. Java no me da ningún puntero para trabajar y cuida la memoria internamente. Me gusta eso. Siempre odié la aritmética de punteros. No tenía sentido para mí. Usando combinaciones de asteriscos y símbolos para confundirse, ¿por qué? Es peligroso. Es torpe. Es confuso. Es impuro.

    2. OOP puro : seamos realistas, nunca se puede apreciar realmente la verdadera belleza de OOP trabajando solo con C ++. Escribe algunas clases como si fuera solo por ello, además de que gran parte del código entra en la función del controlador. Malo. Dado que C ++ no es esencialmente un lenguaje OO, hace que el uso de características OO sea secundario, opcional. Java parece haber sido diseñado para alentar y conducir la mayor cantidad de OOP posible, lo que nos ayuda a ver por nosotros mismos cómo OO está allí para facilitar la vida. Puede ver cómo pensar completamente en términos de clases y objetos no solo brinda un diseño mejor y más limpio, sino que también lo ayuda a hacer uso completo de conceptos como reutilización, herencia, polimorfismo y, lo más importante, modularidad, ya que fomenta el diseño más pequeño y componentes más específicos y colocando poca o ninguna lógica en main (), lo que también facilita el recorrido por el código y la depuración.

    3. Recolección de basura : suficiente.

    4. Las bibliotecas estándar de Java tienen muchas más funciones (y, por lo tanto, son útiles) que las de C ++ : proporciona más funciones listas para usar que solo los bloques de construcción. La API de Reflection es un ejemplo. Las anotaciones (Java 5+) hacen uso de esta API y permiten no solo inspeccionar el código en tiempo de ejecución, sino incluso describir y obtener / establecer valores. El hecho de que Java sea más dinámico por naturaleza ayuda.

    5. Menos libertad, más orientación : el diseño de Java restringe al desarrollador al asumir la mayoría de las responsabilidades en sí mismo. Algunos dicen que hace que el programador sea más dependiente, creo que está destinado a desviar la atención de los detalles de implementación y dirigirlo más hacia el diseño lógico. Permitir solo la herencia de un solo nivel, pero proporcionar interfaces, restringir el acceso a la memoria, rechazar la sobrecarga del operador (y ugh, goto), proporcionar la verificación de límites, etc. puede ser una bendición disfrazada.

    Puede ser correcto decir que Java puede no estar tan cerca del hardware como C ++, pero C ++ no está tan cerca del diseño como lo está Java.

    6. Escribe una vez, usa en cualquier lugar : increíblemente útil.

    Tipos estáticos

    Básicamente, los tipos estáticos son:

    Nombre de cadena = getName ();

    y los tipos dinámicos son:

    nombre = getName ()

    Claro, parece una molestia decir ‘Cadena’ en todas partes donde quiera usar una cadena, pero entrar en bases de código grandes y tipos distintos de los obvios, entonces los tipos estáticos son lo mejor que le ha pasado.

    JavaFX

    JavaFX es un kit de herramientas GUI realmente genial, y me sorprende que no reciba más atención de lo que lo hace, a veces creo que hacer aplicaciones de escritorio con JavaFX está cerca de hacer trampa en comparación con otros kits de herramientas. JavaFX puede verse bien:

    Código armónico

    Y es increíblemente fácil trabajar con él. Es como tener WPF / XAML disponible en plataformas que no son de Windows, y eso es una gran cosa.

    Soy muy flojo

    Eso significa que si un IDE puede proporcionar asistencia, la tomaré. Los tipos estáticos de Java significan que la finalización automática puede ser extraordinariamente buena. Simplemente escriba ‘implements MyInterface’ o lo que sea, y haga clic en la pequeña bombilla amarilla y haga que NetBeans coloque stubs de método para todos los métodos en la interfaz. ¿Mecanografía? ¿Quién puede ser molestado?

    Fácil de depurar

    Algo sale mal, NetBeans le ofrece un enlace para hacer clic que lo llevará a la línea exacta en la que salió mal. Me encanta C y otros lenguajes compilados como Swift, pero el tipo de depuración que le dan los lenguajes VM le habría parecido impensable cuando comencé a programar. Este realmente viene bajo perezoso también, supongo.

    Fácil de empaquetar como una aplicación nativa

    Con JavaFX y NetBeans puedo empaquetar mi aplicación como un paquete nativo ‘.app’ de Mac, o un instalador MSI de Windows, el usuario no necesita tener Java instalado. Eso es genial porque el usuario no solo no tiene que tener Java instalado, sino que significa que puedo proporcionar la última versión de Java con todas mis aplicaciones.

    JNI tiene sus verrugas, pero también me permite usar fácilmente cosas nativas de Mac en Java, como cuadros de diálogo, hojas, menús, selectores de color, impresión nativa, cosas así.

    Creo que una vez que evalúe todos los beneficios de Java, como los tipos estáticos, la VM sólida como una roca, el soporte moderno para subprocesos, el encantador kit de herramientas de interfaz de usuario, la integración nativa y el excelente soporte IDE, en realidad hay muy poco más. El que viene a la mente es C # /. NET, pero tan bueno como es, en este momento el soporte multiplataforma no es tan bueno como Java.

    Lo único que me gusta de Java es que las tangentes se generan automáticamente y generan todo el exceso de código. Nunca perderé el tiempo escribiendo. Siempre termino haciendo eso para evitar y distraerme del pozo interminable de embotamiento sofocante, aburrimiento y monotonía aturdidora que es todo lo que tiene que ver con el lenguaje. También me gusta leer el código (tan limpio y uniforme, a veces). Todo lo demás sobre el lenguaje es lento (lento para compilar, lento para escribir, lento para cambiar, lento para hacer que todo funcione, ralentiza mi cerebro hasta arrastrarse, lento en todas partes), molesto y una pérdida de tiempo, especialmente todos los pobres pensado, las mejores prácticas basadas en la política que mágicamente siempre se imponen a todos, a pesar de que está claro que todas son estúpidas.

    Siempre se puede saber cuándo se escribe algo en Java, porque siempre termina siendo lento, aburrido y lleno de contenido, incluso tan rápido como se supone que es Java. Cada vez. Y eso también es lo que son la mayoría de los desarrolladores de Java (personas que prefieren Java para el desarrollo). Es un milagro.

    Incluso C #, la famosa copia Java de Microsoft , es muy superior y está a la altura de Python y LUA por ser fácil de aprender y usar. Java es un fracaso, una broma, y ​​es la cara y la encarnación de la política y las tonterías corporativas del viejo mundo. Es la basura que esperarías que a los dinosaurios les encantara.

    ¡Java es asombroso!

    La sintaxis, no puede encontrar nada en eso, a menos que tenga una filosofía sólida, sin cosas extravagantes, puede escribir más pero nunca se confundirá.

    POO completo (los tipos primitivos tienen envoltorios que puedes considerarlos como objetos), es una buena característica, te hace programar de una manera muy ordenada, algo que no puedes encontrar en C ++, PHP, Scala, etc.

    OOP estándar, no hay nada malo como las funciones de amigo en C ++, no hay herencia múltiple problemática, no hay extensiones miopes que puedes encontrar en otros idiomas.

    ¡Todo está donde crees que debería estar!

    Los tipos estáticos nunca le permiten perder ningún dato o desordenar su código con una declaración condicional para los parámetros de entrada (con los que debe caminar en lenguajes de tipo dinámico).

    Es confiable! Si funciona, te prometo que funcionará para siempre.

    ¡Escribe una vez y corre a cualquier lugar!

    La razón más importante, te hace programar de manera estándar, te alienta a seguir arquitecturas y mejores prácticas.

    Me gusta Java porque en muchos casos donde tienes que tomar decisiones difíciles en otros lenguajes (C ++), Java es una opción casi óptima para ti, haciéndote la vida mucho más fácil.

    Ejemplos:

    Instrumentos de cuerda. En C ++, he visto unos 10 tipos de cadenas diferentes. Como char *, std :: string, CString y tipo de cadena personalizada en casi todos los grandes proyectos. ¡En Java es String y eso es todo! Y tampoco tiene que decidir si quiere usar Unicode.

    Ponga objetos en la pila / memoria estática / dinámica: ¡Java utiliza una variante casi óptima de la memoria dinámica y esa es la única opción! (este es un problema en GO donde debe decidir si usa puntero o clase)

    Función o método: solo escribe métodos, y la clase / métodos de patrones forzados proporcionan documentación útil.

    Nombre de archivos / clases: no puede diseñar esquemas de nombres sofisticados con diferentes nombres y ubicaciones de archivos fuente de clases.

    Valores devueltos / excepciones. – Java utiliza firmemente las excepciones e hizo su uso fácil y algo forzado al forzar la declaración de excepciones. También se hacen muy útiles mediante la impresión sencilla de trazas de pila. Es el único idioma en el que es fácil y sencillo usar excepciones.

    Se eliminó la necesidad de decidir si usa tipos enteros con o sin signo.

    Además, Java es bastante rápido (en una clase diferente de la mayoría de los lenguajes de ‘scripting’ dinámicos), los tipos estáticos a menudo ayudan y proporcionan documentación fácil y útil y ayudan a refactorizar, fácilmente portados a diferentes sistemas operativos, compilación rápida, detecta muchos errores (variables no definidas / no inicializadas) ) temprano, detecta fácilmente todos los errores de memoria, etc.

    Casi toda la biblioteca está escrita en Java más o menos estándar y es de fácil acceso.

    He estado trabajando con PHP durante más de 15 años, y el año pasado comencé a usar Java en algunas aplicaciones web. Ya había estado usando OOP en PHP, por lo que la teoría de la programación se transfirió a Java, como supondría también para la mayoría de los otros lenguajes. Tenía algo de experiencia (hace años) con C # que ayudó.

    La razón por la que me gusta Java es los tipos estáticos. Los lenguajes que no usan tipos estáticos son geniales para armar algo rápidamente, pero pronto te molestan los pequeños errores que se introducen en una aplicación, errores que no notas hasta el tiempo de ejecución porque no hay un compilador que te lo haga saber De antemano. Es especialmente peor en una aplicación grande, ya que el error podría estar en una parte de la aplicación que no usa con frecuencia.

    Java se siente como un lenguaje de programación adecuado, sé que esto es subjetivo, pero así es como me siento al respecto.

    Java es más difícil de aprender, para mí eso es algo bueno, ya que ayuda a reducir la cantidad de malos desarrolladores que existen. PHP es muy fácil de aprender, pero la cantidad de código terriblemente malo que he encontrado como resultado es impactante.

    Como mencionó Pratik Tandel, la seguridad de tipografía es una buena razón por la cual muchas personas lo usan. Aquí se menciona por qué es importante. ¿Qué es la seguridad tipo? – El entusiasta de PL

    La razón principal por la que me gusta Java es porque tiene muchas bibliotecas y no tengo que pasar mucho tiempo para resolver problemas que ya están resueltos. Algunas personas no entienden que la mayoría de los “no programadores”, que desean aprender programación solo para utilizarla en su trabajo o en su vida, están buscando lenguajes que sean tan populares que puedan obtener apoyo fácilmente y que tengan tutoriales para aquellos que no están familiarizados con los fundamentos básicos de la informática.

    Es por eso que Java es un lenguaje perfecto y yo fui uno de ellos antes de comenzar mis estudios de informática. Sin embargo, ya no uso Java, lo cambié a C # y Python.

    Amo Java porque:
    – Hay una barrera de entrada relativamente baja.

    – El hecho de que Java es plataforma cruzada + se usa en todas partes.

    – Miles de materiales para apoyar su aprendizaje.

    – Alta demanda de desarrolladores de Java en el mercado laboral.

    En palabras de Churchill:

    Muchas formas de gobierno han sido probadas, y serán probadas en este mundo de pecado y aflicción. Nadie pretende que la democracia sea perfecta o que lo sea todo. De hecho, se ha dicho que la democracia es la peor forma de gobierno, excepto todas las otras formas que se han probado de vez en cuando …

    Java es similar Es probablemente el peor idioma, a excepción de todos los otros idiomas que se han probado de vez en cuando …

    1. Corre por todas partes
    2. Interfaz nativa de Java: puede ejecutar programas C / C ++
    3. Enterprise Ready
    4. Rendimiento sabio bastante rápido como C ++.
    5. Gran ecosistema
    6. 1er rango en el índice TIOBE para lenguajes de programación