2009-09-28 5 views
7

He estado investigando para llevar mi experiencia en programación y moverme al mercado de programación java, debido a una combinación de interés personal y fuerzas del mercado local. Como se puede recoger desde el título, la gran mayoría de mi experiencia ha sido en la construcción de sitios basados ​​en la web y aplicaciones, y me gustaría pasar la mayor cantidad de mi experiencia anterior como sea posible.Cuando Java es la elección correcta para aplicaciones basadas en web

Una cosa que no he podido encontrar es una respuesta concreta para cuándo debe un sitio web o un diseñador de aplicaciones basado en la web usar una solución basada en Java, sobre otras opciones actualmente en el mercado. ¿Qué opciones de Java sería disponer que tendría un diseñador seleccione Java como lenguaje de codificación básica para basar un proyecto sobre?

Gracias por todas las respuestas constructivas que se deriven del presente investigación.

EDITAR: Debería haber incluido la advertencia de si otros factores son iguales, por ejemplo, si el hardware, el software, la habilidad del desarrollador en Java está donde deberían estar para tales proyectos, y así sucesivamente.

Respuesta

4

Considere lo siguiente también: Java tiende a ejecutarse en servidores de aplicaciones donde se ejecuta un programa global persistente y se separan hilos/procesos separados para atender solicitudes individuales. Sin embargo, si la máquina virtual global principal falla por alguna razón, toda su aplicación puede caer. El beneficio, por supuesto, es que obtiene recursos de nivel de aplicación/sistema que puede inicializar y usar de manera continua en todas las solicitudes

Otros entornos como PHP básicamente destruyen y reconstruyen todo el entorno para cada solicitud. Puede codificar en persistencia de datos a nivel de aplicación utilizando una base de datos, pero no la obtiene de forma gratuita. Por otro lado, si un proceso php croa mientras procesa datos de la aplicación, no matará a todo el sistema, ya que todo el entorno se acaba de derribar/reconstruir para la próxima solicitud.

2

Creo que la sabiduría convencional sobre este tema es que Java es más adecuado para sistemas muy grandes que necesitan la disciplina del tipado estático. Además, en sitios muy concurridos, Java puede usar menos memoria y ejecutar más rápido que la mayoría de los intérpretes.

(Nada más sacarlo de la caja, Java quiere mucha memoria. Pero en un sistema ocupado Java tiene sólo una copia de todo el código en ejecución.)

También hay ciertas razones prosaicas seguir con Java, por específica sitios. Pueden necesitar integración de back-office o alguna otra pieza grande del código existente.

+5

Una aplicación mal escrita fallará en cualquier idioma. Al usar Perl y memcached, brindamos servicio a más de 9 millones de visitas por mes, no porque Perl sea el schwa, sino porque la arquitectura y la infraestructura de nuestro sitio están bien diseñadas. – BryanH

+0

Ciertamente estoy de acuerdo. – DigitalRoss

+0

@DigitalRoss, edité tu publicación para eliminar algunos errores tipográficos, parece que tu edición los ha restaurado –

13

El factor principal es en lo que sus desarrolladores son expertos. Si tiene un grupo de desarrolladores de Java, vaya con Java.

+6

Tan cierto. Java y .Net están a la par en este aspecto, ambos pueden hacer el trabajo bastante bien y solo depende de quién tenga disponible, los costos de hardware y software disminuyen en comparación con el costo del equipo de desarrollo. – Spence

+2

si le importa en qué idioma son expertos sus desarrolladores, entonces probablemente no tenga tantos desarrolladores. Un gran desarrollador encontrará la herramienta adecuada para el trabajo correcto y lo usará. – Zak

2

Asegúrese de incluir una curva de aprendizaje en el tiempo de desarrollo si los desarrolladores no están familiarizados con el idioma elegido.

+1

Incluye tiempo para arreglar gallos. –

1

Usaría Java si hubiera una biblioteca o un marco que proporcionara características específicas que ningún otro lenguaje tenía (o no).

Por ejemplo, si tuviera un sentido en la casa construida Biblioteca de Java para el funcionamiento de nuestra trituradora Gruntmaster roca, entonces, naturalmente, tendría que utilizar Java para crear una aplicación que necesita para controlar el Gruntmaster.

Algunos podrían decir que cualquiera que sea el idioma oficial de la tienda es el que se debe usar. No estoy de acuerdo con esa regla, ya que, según mi experiencia, un buen desarrollador puede aprender cualquier idioma.

No hay ninguna regla dura y rápida de lo contrario; cada idioma tiene sus propias fortalezas y debilidades. El hecho de que estés haciendo esta pregunta sobre Java me dice que no estás tan familiarizado con ella.

Te sugiero que vayas y crees una aplicación o tres en Java, entonces sabrás. :)

2

En su mayor parte, la mejor tecnología es la que ya está utilizando.

Si tiene programadores que conocen Java, tienen administradores de sistema que pueden configurar aplicaciones Java y saben qué hacer cuando una aplicación Java deja de funcionar, y gerentes de proyecto que saben cómo programar y planificar con precisión una implementación Java, necesitaría una razón muy, muy convincente para recoger otra cosa, como .NET para un nuevo proyecto, incluso si .NET es "mejor" (lo que significa).

Existen, por supuesto, excepciones; si está utilizando algo obsoleto y/o no va a ser compatible en el futuro (como ASP clásico), o si no tiene sistemas heredados, entonces es hora de usar algo nuevo.

1

Hay muy poca separación entre las capacidades de las diversas tecnologías disponibles actualmente para la programación web.

Java a la vez fue la opción predeterminada ya que superó con creces las capacidades de las tecnologías de la competencia, pero eso ya no es cierto.

La respuesta de Microsoft ha madurado rápidamente; los días del ASP clásico han desaparecido con .Net ahora brinda todas las capacidades y la facilidad de programación que Java ha ofrecido.

Los nuevos lenguajes como PHP y Ruby han llegado o se han vuelto mucho más convencionales, y también son elecciones válidas en función de sus necesidades de programación.

Así como muchos otros dicen que se reduce a qué idioma usted o sus desarrolladores están familiarizados.

+4

Uno de los principales inconvenientes de la pila de Microsoft es que está vinculado exclusivamente a los sistemas operativos de Microsoft. Uno puede o no gustarle a Windows, pero la capacidad de ejecutar en diferentes sistemas operativos es casi siempre una ventaja. –

3

De acuerdo con muchos de los carteles anteriores, pero una posible consideración es la velocidad del tiempo de ejecución.

Si está utilizando un servidor de pilas LAMP muy básico, ejecutando PHP4 o versiones anteriores, Python o Perl, si no establece la compilación previa, todas las secuencias de comandos tendrán que volver a compilarse en tiempo de ejecución. Esto puede causar una tensión inmensa en el servidor para aplicaciones de alta intensidad. Si se encuentra en una situación en la que no puede habilitar la precompilación para LAMP, pero puede hacerlo para Java (la mayoría de los servidores de Java lo requieren), entonces esto debería ser motivo de preocupación. La desventaja es que es posible que tenga que volver a compilar grandes porciones de su aplicación web cada vez que la edite. Me doy cuenta de que esto se está convirtiendo cada vez menos en un problema hoy en día, pero es algo que hay que controlar.

1

Otro aspecto a considerar, es la capacidad de utilizar un vasto ecosistema de librerías de código abierto.

Los idiomas como PHP, Perl o Ruby tienen tales mercados de lib (casi) integrados. Net está bastante cerrado en ese sentido. Java, por otro lado, tiene un ecosistema de bibliotecas de gran tamaño, de grado empresarial, para elegir y de las que las comunidades también pueden aprender.

1

Prácticamente estoy de acuerdo con los muchachos sobre el aprovechamiento de la infraestructura humana existente.

Tecnológicamente, Java es bastante bueno para cosas web no estándar, como el uso intensivo de AJAX (GWT, DWR, Comet spring mind), móvil (donde generalmente se necesitan muchos datos de sesión y menos bling inicial) , cosas realmente simples que se someterán a una carga inmensa (definitivamente superará a Apache mod_XXX todo el tiempo, lo único más rápido en el uso generalizado es el código nativo).

Cuestiones relacionadas