2010-10-19 9 views
7

Estoy creando una aplicación web que implica mucho acceso a bases de datos y analizar y analizar datos, Java es el idioma con el que me siento más cómodo, pero recientemente me dijeron que debería considerar usar PHP, ya que hace que los protocolos de acceso a bases de datos sean más simple.Aplicación web Java o PHP Server Side y ¿Por qué?

No tengo ningún gran conocimiento de PHP, pero estaría dispuesto a aprender a utilizarlo si fuera a ser la mejor opción en cuanto a funcionalidad, portabilidad ect.

La aplicación web se ejecutará contra un Oracle DB y usará Flex para la GUI, por favor, cualquier experiencia de proyectos similares y lo que hizo que su enfoque elegido sea mejor ayudaría o solo opiniones de cualquier tipo.

+0

¿Qué quiere decir con "protocolos de acceso DB"? Todos los idiomas usan API, no protocolo sin formato. –

+0

lo siento, mi error solo me refiero a los procedimientos de acceso general – Chris

Respuesta

30

Si te sientes cómodo con Java, no veo la necesidad de aprender/usar PHP. No hay nada que PHP pueda hacer que Java no pueda.

Es cierto que, en general, PHP es un lenguaje mucho más permisivo, y algunas tareas se pueden cumplir más rápidamente y con menos código. PHP ciertamente tiene menos abstracción incorporada que Java. Pero si te sientes cómodo con Java, yo diría que síguelo.

(que digo esto como un desarrollador de PHP.)

+3

+1. Soy un desarrollador de PHP y un buen amigo mío desarrolla aplicaciones web con Java que son igualmente eficientes. – Stephen

+20

@jjnguy si hubiera un emoticón de "dedo medio", lo estaría usando ahora;) –

+1

ja, ja, gracias chicos, la eficiencia era un punto que me preocupaba, pero eso es tranquilizador. Gracias por su ayuda – Chris

6

mi humilde opinión, si usted sabe de Java, utilice la APP.

Si desea aprender algo nuevo y crear prototipos rápidamente, use python/django.

+0

Gracias Paulo eche un vistazo a Hibernate. – Chris

+0

Reemplace la palabra Hibernate por JPA, ya que debe ver la API y no en una de las implementaciones específicas. – Kdeveloper

+0

@kdeveloper: hecho, gracias. –

0

Bueno, el verdadero problema aquí es que necesita bibliotecas para facilitar su trabajo. JVM como plataforma tiene muchas más opciones que PHP, solo porque puede hibridar su aplicación con lenguajes incrustados. Además, Hibernate es fantástico como ORM (mapeo relacional de objetos), básicamente toma tus tablas y las ve como POJO.

Si está haciendo muchas cosas "crudas", en realidad me gusta usar Sequel, que es una biblioteca de Ruby y funciona muy bien en JRuby. En general, me parece que el código concisa/tipado de patos que a las personas les gusta de PHP es absolutamente replicable en Ruby a través de JRuby (o Jython para los tipos de entusiastas de Python).

La mejor biblioteca estará dictada por la inestabilidad del esquema con el que está trabajando, además del tipo de trabajo que está realizando. ¿Necesita hacer muchas consultas complicadas, obtener columnas de varias tablas a la vez? ¿O se trata más bien de "Necesito obtener todas las órdenes para un cliente determinado y mostrarlas en un cuadro de historial de pedidos"? Los ORM se adaptan mejor a este último, que es lo que tienden a ser las aplicaciones web, pero su mención de analizar y analizar hace que me pregunte si es más lo primero.

Hibernate le da la mayor flexibilidad, me parece. No es una buena idea usar material autogenerado sin revisarlo, pero si usa Eclipse, hay un complemento que generará las clases por usted.

Otra razón para ir con Java: si observa el contenedor de Glassfish para su aplicación web, ha creado pools JDBC para usted y puede consultar las estadísticas y la administración del grupo. Si tiene mucho acceso a la base de datos, esto podría ser bastante útil.

+0

Me parece absurda su afirmación de que "JVM como plataforma tiene muchas más opciones que PHP". Estoy de acuerdo en que J2EE, o J2ME, aborda muchas áreas que PHP no tiene, pero no la JVM. – symcbean

+0

La JVM tiene lenguajes incrustados. ¿Me estás diciendo que el poder combinado de J2EE, Ruby, Python, Groovy, JavaScript, Scala y Clojure NO tiene más opciones que PHP? – jcalvert

+0

Cree que con PHP no es posible invocar e interactuar con Ruby, Python. Javascript, C, Perl, Prólogo, adelante, BÁSICO, Smalltalk, awk, cobol, comal, pascal, fortran, lisp, mono, eiffel, ir, Algol, Oberon, haskell, pascal, esquema, Java, SQL ..... la diferencia es que estos se encuentran fuera del tiempo de ejecución de PHP ** y no están limitados por el entorno de tiempo de ejecución invocante ** – symcbean

0

Creo que no hay necesidad de PHP, puedes simplemente ir con Java. Si consideras que la aplicación es una aplicación web, entonces puedes usar PHP.Para que pueda acceder desde cualquier lugar

2

PHP le permite hacer muchas cosas web con menos esfuerzo y menos líneas de código que Java, creo (y solo estoy hablando de mi propia experiencia, siempre hay algunos Quien te dice "Usa Java, PHP es una porquería" y habrá quienes te digan "PHP es mucho mejor que Java". No nos escuches, ¡simplemente pruébalo o nunca lo sabrás! Hago muchas cosas sobre Java, pero en lo que respecta a las aplicaciones web, no estoy contento con eso. Para la mayoría de nuestros clientes, no es posible usar Java también, así que no tengo tantas opciones, de todos modos.

Existen algunos buenos frameworks PHP (Yii, por ejemplo, que me gusta más) y muy buenos orms como doctrina o registro activo. Si tiene que aprender el idioma y está interesado en el desarrollo ágil, también piense en Ruby (Ruby on Rails) o Python (Django) ya que estos son los chicos geniales de la ciudad :)

0

¿Por qué no utilizar ambos? Quercus ejecutará PHP en Java. Puede llamar al código Java como si fuera funciones nativas de PHP. Obtienes lo mejor de ambos. Y tu PHP realmente se ejecutará más rápido que bajo Apache.

Soy programador PHP, y aunque los protocolos de acceso PHP DB pueden ser "más simples" (discutibles), no diría que son mejores. Java puede usar la agrupación de conexiones DB y puede "persistir" datos, códigos y objetos.

+1

No desea usar ambos porque es posible que no desee agregar riesgo y complejidad a su proyecto si lo usa no es necesario – Kdeveloper

4

Existe una gran diferencia entre la sintaxis, la filosofía y la implementación de los 2 idiomas. Sugeriría que "hace que los protocolos de acceso a bases de datos sean mucho más simples" no es una razón particularmente buena de forma aislada para elegir un idioma sobre otro.

Mi experiencia es como programador PHP, pero actualmente soporto varias aplicaciones web grandes de Java. Si comenzaras desde el mismo punto con ambos idiomas, definitivamente preferiría PHP sobre Java, pero una discusión completa de las razones por las cuales tomaría mucho más tiempo y espacio que aquí. Sin embargo, si ya tiene sólidas habilidades de Java, debe sopesar los costos de adquirir el nivel de habilidad correcto en PHP: debido a las diferencias en la forma en que funcionan estos sistemas, encontrará sus conocimientos de Java tanto de un obstáculo como un beneficio para lograr el dominio de PHP.

Otros factores que sugeriría que echar un vistazo a son:

1) la arquitectura - PHP requiere mucho mejor comprensión de los protocolos subyacentes que Java (donde una gran cantidad de funcionalidad es proporcionada por libs/marcos)

2) facilidad de despliegue

consideraciones 3) rendimiento - el uso de una caché de código de operación significa la diferencia entre los programas sencillos escritos en Java y PHP es pequeño, ya que el primero se escriben normalmente dentro de marcos muy complejos, PHP a menudo puede tener la borde. Ciertamente, no tiene la misma complejidad para la memoria mngmnt

4) TCO - La facilidad de uso de los PHP es una espada de doble filo: usted necesita saber mucho sobre Java solo para ejecutar un programa, pero el mundo y su perro Creo que pueden escribir un buen código en PHP. IME es más difícil de encontrar programadores PHP competentes que los programadores de Java.

3

Para mí esto se reduce al rendimiento. Cuando nos fijamos en PHP, ciertamente se ha implementado en plataformas extremadamente grandes (Facebook lo usó casi exclusivamente al principio), pero en general se usa en plataformas más pequeñas. Java, para mí, cuando observa sus beneficios de escalabilidad es superior, pero solo cuando sabe que va a escalar.

Comprender el ciclo de vida subyacente de una solicitud es muy importante.Es decir, saber qué es un contenedor de Java y cómo se ejecuta un servidor Tomcat me ayudó a entender tremendamente las implicaciones de rendimiento.

No intente elegir una sobre la otra en atributos individuales como "facilidad de codificación" o "conectividad de base de datos": son lo suficientemente diferentes como para enfocarse solo en un par de cosas "importantes". esencialmente seleccionando basado en información sesgada. Es decir, PHP hace que sea más fácil conectarse a un DB si los miras en un nivel superficial: "¡Uf! Tengo que instalar un JDBC, ¿qué es eso?", Etc., pero esa es la excusa del perezoso. No hay nada que Java no pueda hacer que PHP pueda (que yo sepa).

Para mí la pregunta es ¿cómo realista (Leer: realista) véase su aplicación trabajadora usted planea en conseguir miles de visitas por hora o estás hablando de un centenar de visitas al día como el gran mayoría de los pequeños proyectos por ahí?

Las ventajas de PHP en proyectos más pequeños, especialmente para el programador que no comprende por completo la arquitectura OOP, son enormes, pero no se ponga flojo y simplemente tome PHP porque es más fácil de usar. Java es extremadamente poderoso y, simplemente al aprender, puede enseñarte más de lo que creías que no sabías sobre OOP y buenas prácticas de programación en general (si vienes del mundo de la autodidacta como yo).

Básicamente, yo diría que analiza su carga de proyecto estimada más tiempo de aceleración si tiene que aprender una u otra, medir sus requisitos de eficiencia y escalabilidad, seguir haciendo preguntas y luego decidir qué plataforma es mejor.

Espero que ayude ....!

Cuestiones relacionadas