Tengo varios años de experiencia en el desarrollo de aplicaciones web con PHP y también he trabajado extensamente con Java (pero nunca para el desarrollo de aplicaciones web). Estoy completando un gran proyecto en el que he estado trabajando durante los últimos seis meses, construido en PHP/CodeIgniter y alojado con CloudControl (proporciona aprovisionamiento y escalabilidad automáticos del servidor).Preguntas sobre Java para desarrollo web de un desarrollador de PHP
El proyecto ha ido bien, y PHP cubrió mis necesidades, pero ahora estoy en la fase inicial de desarrollo de una aplicación web que estará dirigida a usuarios empresariales y estoy considerando usar Java (posiblemente 'Grails') junto con AWS Elastic Beanstalk.
Mi primera pregunta es: multi-threading, ¿con qué frecuencia se utiliza en el desarrollo de aplicaciones web para Java? Con mi aplicación PHP, mi servidor podría haber tenido que realizar una llamada API a Facebook en respuesta a la solicitud de un usuario (por ejemplo, publicar en el muro de un usuario). Para evitar que mi proceso de PHP aguarde en la finalización de la llamada a la API antes de volver al usuario, utilicé servidores de trabajos de queros de Gearman con trabajadores para descargar el trabajo de mi servidor de aplicaciones principal a un trabajador en segundo plano.
¿Podría un desarrollador Java simplemente girar un hilo solo para manejar la llamada API y hacer que el proceso principal vuelva al usuario? ¿Es esta la mayor fortaleza del desarrollo de Java sobre PHP? ¡Gracias!
He estado alimentándome con ambos idiomas por un tiempo jeje. Mi muy humilde opinión es: la fortaleza de Java es la disponibilidad de API y bibliotecas. Para PHP es la velocidad para construir un prototipo o una versión funcional. Mírame ahora, he elegido java una vez más para un nuevo proyecto porque sabía que podía usar Apache POI en lugar de PHPExcel ... una especie de pereza. :) – Alfabravo
Sé que la capacidad de engendrar nuevos hilos es una novedad para un desarrollador PHP (como yo) y tener el poder de usar esta bonita característica que tan deficiente falta en PHP da lugar a una gran cantidad de "ooh, podría hacer esto, y esto, y estas cosas "tipo de pensamientos, pero sé respetuoso. Escuché muchas historias de desarrolladores viniendo de PHP a algún lenguaje que permite multi-threading, y entrar en una situación en la que han comenzado 100 hilos para hacer el trabajo de algo que razonablemente se podría haber hecho en 3, y luego preguntándome por qué el servidor está corriendo como un perro. – DaveRandom
He utilizado subprocesos cuando los usuarios requieren que los datos estén disponibles (¡el rendimiento es una característica!) Y reunirlos requerirá largos tiempos de espera en un solo subproceso. Estoy seguro de que hay muchos otros casos en los que resulta útil, pero no es una bala de plata o un primer pensamiento al construir algo. – Alfabravo