2009-07-29 13 views
37

Como novato de Java me pregunto: de todos los idiomas del mundo, ¿por qué Java se usa con frecuencia para aplicaciones empresariales? ¿Qué lo hace de esa manera en comparación con los otros idiomas? ¿Seguirá siendo así en los próximos años?¿Por qué Java se usa con frecuencia para aplicaciones empresariales?

Agradecería sus comentarios. Gracias de antemano :)

+2

aquí (http://stackoverflow.com/questions/213757/why-do-people-use-java) son algunos comentarios fuertes sobre la popularidad de Java, no del todo respuestas desde una perspectiva de 'empresa', pero son pertinentes. – akf

+3

Yo diría: 1. seguridad 2. estabilidad 3. solidez 4. escalabilidad 5. independencia del sistema operativo 6. independencia del otro proveedor 7. rendimiento y uso de los recursos 8. gran aceptación de la sociedad académica –

Respuesta

39

Una palabra: bibliotecas. Java tiene una amplia gama de excelentes bibliotecas para resolver la mayoría de los problemas comunes que uno necesita resolver al desarrollar aplicaciones empresariales. En muchos casos, hay más de una buena opción para abordar una necesidad particular, y muchas veces esas bibliotecas son gratuitas y de código abierto bajo una licencia favorable para las empresas.

Algunos han argumentado que, de hecho, hay demasiadas opciones en el ecosistema de Java, y que el desarrollo de software empresarial en Java requiere que los desarrolladores tomen una gran cantidad de decisiones que pueden tener un impacto de gran alcance en el producto final mejor o peor. Esto probablemente haya ayudado a impulsar la popularidad de alternativas como .NET, que tiene la reputación de ofrecer menos opciones, pero con los beneficios de una pila de aplicaciones y conjuntos de herramientas más integrados. La dirección que elijas depende, supongo, de si le das más valor a "libertad de elección" o "libertad de elección".

+4

Creo que la "libertad de elección" no se entiende realmente. Por ejemplo, conozco muchos frameworks web y no he elegido ninguno. su jefe toma la decisión y cada compañía usa diferentes conjuntos de marcos. – IAdapter

+8

+1 para "libertad de elección" o "libertad de elección" –

+0

.NET ofrece alternativas de terceros, la gente simplemente elige las API integradas porque, con mayor frecuencia que no, funcionan muy bien y tienen soporte de proveedores. Java se elige principalmente sobre .NET para mantenerse multiplataforma, lo cual es importante. – Greg

2

Es barato, RAD, multiplataforma y abundan los desarrolladores.

+0

Esto! Como CTO, elijo Java porque puedo encontrar mano de obra mucho más barata que Ruby, C++, etc. Un buen software siempre durará más que el programador, lo que la mayoría de los programadores no piensan.Suponen que siempre estarán allí para apoyar a su bebé. –

2

Desarrollar en C++ es demasiado lento y costoso y .NET no ha existido durante el tiempo suficiente. La inercia empresarial es enorme, recuerda.

Las empresas quieren tener idiomas respaldados por un proveedor profesional (es decir, una empresa como Sun) y, a menudo, se mantienen alejados de los lenguajes de código abierto por el simple hecho de que no fueron escritos por una empresa.

+1

No creo que sea justo decir ".NET no ha existido lo suficiente" - .NET tiene mucha adopción en el mundo corporativo. –

+0

C++ es demasiado lento? Me gustaría diferir (tanto en términos de escribir C++ y su velocidad de ejecución). – Shane

+5

C++ funciona extremadamente rápido, pero su desarrollador promedio podrá desarrollar aplicaciones robustas más rápidamente en Java. Es una simple cuestión de para qué está diseñado y optimizado el lenguaje. –

8

Sun se dirigió a Java para hablar desde el principio sobre las necesidades de las empresas. Impulsa estándares que promueven la independencia del proveedor en todos los niveles. Plataforma independiente, base de datos independiente, servidor de aplicaciones independiente, etc.

Además promovieron las herramientas de nivel empresarial para ella, en términos de mensajería, gestión de transacciones y otras cosas que preocupan a la empresa.

Antes de Java, las cosas de nivel empresarial solían hacerse en C++ (había muchas excepciones (¿alguien recuerda PowerBuilder?) Pero esa era la regla) y Java es un sucesor de C++ para aplicaciones comerciales, donde eso el tipo de gestión de la memoria no es algo que valga la pena pagar.

Además de todo eso, el lenguaje en sí mismo habla a las empresas en términos de evitar construcciones difíciles de encontrar que realmente pueden arruinar una base de código, como la sobrecarga del operador. Las aplicaciones de nivel empresarial tienden a ser manejadas por muchas manos diferentes, no todas ellas son los mejores programadores de línea, y tener redes seguras para evitar dispararse en el pie es algo deseable.

También llegó en el momento adecuado. Un nuevo paradigma (esto era mucho antes de que existiera .NET) que prometía combinar múltiples proveedores en una capacidad para competir con Microsoft, que logró que empresas como IBM y Oracle a bordo llegasen a llenar un nuevo agujero, que era el requisito emergente. para desarrollar aplicaciones web, donde C++ ya no era una opción obvia.

2

También para aplicaciones cliente-servidor, tiene una gran cantidad de opciones para servidores de aplicaciones de calidad de producción que tienen la misma interfaz J2EE (IBM WebSphere, BEA Weblogic, JBoss). Alternativamente, podría usar Spring Framework en cualquier servidor como Apache Tomcat que cumpla con la API de Servlet si está convencido de que no necesita EJB. A diferencia de .NET, es difícil encontrar opciones con respecto a los servidores de aplicaciones.

Hay una gran cantidad de opciones con respecto a los marcos para una tarea determinada ya sea una herramienta ORM, registro, colecciones, almacenamiento en caché, UI web, etc. No hay casi ninguna necesidad de reinventar la rueda.

Finalmente, aunque está de moda hoy en día lamentar las deficiencias muy reales del lenguaje Java, es un lenguaje donde la gente sabe cómo hacer las cosas y cómo evitar ciertos antipatrones.

+0

Esto se debe a la solidez de las especificaciones de Sun. –

7

El negocio es sobre tiempo, dinero y oportunidad.

El uso de Java significa que su número de errores en el código disminuye, simplemente porque los punteros son difíciles. Utiliza un GC e inmediatamente elimina una clase completa de errores de su código.

En segundo lugar, Java fue uno de los primeros idiomas en enviarse con una biblioteca de funciones preescritas, que realmente abarcó gran parte de la fase de desarrollo. Esto restringía la forma en que se hacían las cosas, pero significaba que las personas podían aprender más rápido, tenían más herramientas a su disposición y tenían un gran conjunto de bibliotecas para hacer cosas como red, GUI, web, cifrado, etc. Java por sí solo como lenguaje realmente no fue tan especial, pero Java más la API de Java fue.

Así que si tiene un lenguaje que tiene menos errores y más infraestructura de forma gratuita, entonces termina con más código en menos tiempo. Seguro que el código no cura el cáncer, no es tan rápido como el código C++ para lograr la misma tarea, pero logrará el objetivo del negocio de obtener una aplicación.

Si obtiene más código, por menos dinero, puede buscar más oportunidades. A continuación, introduce la inercia en términos de código que ya se implementó en Java y comienzas a ver por qué la empresa no quiere alejarse de su zona de confort.

23

Hay muchas razones por las que una empresa grande (el tipo de soluciones empresariales) elegiría Java. Tenga en cuenta que no estoy diciendo que todos estos motivos sean correctos o válidos. Pero el punto relevante es que parecen válidos para un CTO en MegaCorp.

curva de aprendizaje

Java es un lenguaje sencillo y sin gran parte de la flexibilidad de los otros miembros de la familia C, esta arma de doble filo, pero es visto como un lenguaje sencillo para su uso por un ejército de programadores . Los proyectos empresariales tienden a involucrar a un gran número de desarrolladores (correcta o incorrectamente) y es mucho más fácil conseguir un desarrollador con un nivel mínimo de competencia en Java que C++. También tienes toda una generación de graduados que probablemente hayan sido educados en Java.

elección

Java tiene una amplia gama de bibliotecas, marcos, herramientas y entornos de desarrollo, y los proveedores de servidores. Para una empresa es bueno tener opciones, incluso si eso es solo para usar como una moneda de cambio al negociar el precio. El lenguaje se presta para codificar herramientas de calidad que permiten la aplicación de estándares corporativos (y como se mencionó, hay muchas de esas herramientas).

Independencia de la plataforma

Java es escribir una vez, ejecutar (bueno, depuración) en todas partes. Sun ha fomentado activamente los estándares abiertos que permiten que múltiples proveedores implementen sus soluciones. Estos estándares brindan al cliente la comodidad de poder migrar de un proveedor a otro si un proveedor determinado se hunde o comienza a cobrar más.Por supuesto, la realidad es que cada proveedor hace todo lo posible para proporcionar algunas características de "valor agregado" que les relacionan bastante bien con el cliente.

Madurez

su estado por un largo tiempo, se ejecutan una gran cantidad de servidores. Si su aplicación web necesita ser "6 sigma" o similar y usted es el CTO de MegaCorp, no va a mirar tan amablemente a Joe, el desarrollador que quiere hacerlo en RoR.

Momento/Marketing

Java salió cuando la programación se movía hacia la web. Se posicionó inteligentemente y obtuvo una posición sólida al principio del desarrollo web. Debido a los estándares abiertos, hay algunas compañías muy grandes que producen estas plataformas y comercializan Java bastante difícil de vender esas plataformas.

inercia

grandes corporaciones avanzar a un ritmo glacial (muchos siguen utilizando Java 1.4 cinco años después fue puesto en libertad 5), por lo que una vez que se han elegido de Java, se necesita una gran inversión para mover a otra plataforma. Con cada día que pasa están produciendo más Java que necesitarían migrar. La mayoría de estas compañías no son principalmente tiendas de codificación, por lo que es una venta difícil convencer al negocio de gastar unas pocas decenas de millones reescribiendo toda su base de códigos sin ningún beneficio comercial inmediato.

9

Otra razón podría ser el cuidado que Sun ha tomado para mantener Java compatible con versiones anteriores. La gran mayoría del código de Java se puede ejecutar en la última versión de la JVM sin ningún problema. Eso es todo un logro, dada la edad de Java. Por otro lado, podría argumentar que Java no ha cambiado tanto en todos estos años.

Empresas como la estabilidad en una plataforma.

2

Las otras respuestas son todas buenas. Deben agregarse dos cosas, los estándares corporativos y el efecto del carro. Si desea construir un sistema empresarial, necesita tener argumentos muy sólidos para no utilizar los estándares arraigados de su empresa, y esto es principalmente JavaEE. Y si necesita recurrir a un proyecto, es mucho más fácil contratar un programador Java que, digamos, Erlang.

3

Personalmente, creo que una razón importante es el problema multiplataforma.

Los programas Java escritos "correctamente" (sin suposiciones del sistema operativo subyacente) pueden ejecutarse en cualquier JVM. Esto significa que no estás vinculado a una plataforma en particular, a diferencia de .NET que te casa con Windows.

He visto el código de Java ejecutarse en mainframes, enrutadores de Linux, dentro de la base de datos Oracle y, naturalmente, en las PC.

+0

Sí, te casa con Windows. –

7

no debería decir esto, pero ...

La verdadera razón es porque es el nombre de café!

Cuestiones relacionadas