Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Comparativa De Lenguajes

Iniciado por erchus, 15 de Marzo de 2006, 09:37:00 AM

« anterior - próximo »

erchus

 Saludos a todos...  :)

Dentro de un tiempo, y si nada lo remedia (y espero que no  :lol: ) tendré que desarrollar una aplicación web que tal vez sea de "gran alcance", vamos que con la aplicación trabajarán MUCHOS usuarios y debe ser MUY estable.

Después de dar unas cuantas vueltas para elegir un lenguaje de desarrollo me he quedado con dos PHP o JAVA.

El caso es que no sé cuál seleccionar de los dos, y me gustaría hacer algunas preguntillas:

¿Conocéis alguna comparativa que indique en que casos es más conveniente utilizar uno u otro lenguaje (considerando el número de usuarios del sistema, robustez,...)?
¿Quién ofrece mejor servicio de hosting para el caso de JAVA o para el de PHP? He tratado con Arsys, YA.COM,... Pero me gustaría conocer más opiniones.
Teniendo en cuenta que la pareja PHP + MySQL  funciona bastante bien, ¿qué servidor de base de datos va mejor con JAVA?

Bueno, alguna pregunta me dejaré por ahí...pero ya irán saliendo :D

Gracias

Ruben

 Hi,
si es una aplicación grande, con mucha funcionalidad  y necesitais mantenerla olvidaros de php+mysql. Yo creo que lo mejor seria usar struts(podeis elegir usar el mvc2x o con jsp) + oracle.

Si por el contrario, es algo para hacer rapido, no os importa mantenerla, la funionalidad es limitada ir por php y mysql.

De servicios de hosting, ni idea.

Un saludo,
Rubén

josepzin

 Un par de enlaces interesantes:

PHP VS JAVA
CitarEl Miércoles, 4 de Febrero de 2004 18:37, Gorka escribió:
> Luchando por mantener mi servidor Linux en la empresa he descartado las
> páginas ASP para el desarrollo de la web. Por ello he de decidir entre JSP
> (sobre apache-tomcat) y PHP (sobre apache) Me gustaría saber las ventajas e
> inconvenientes de una y otra tecnología, velocidades de carga de las
> páginas, ...
>
>

Mi opinión es totalmente favorable a Java.

En mi opinión las dos venajas te Java sobre PHP son las siguientes:

Java es compilado, a código de la máquina virtual eso sí, pero compilado a fin
de cuantas. Lado la compilación da una serie de errores que la interpretación
puede no capturar. Imagina un troco de código que contiene un error, un
compilador es capaz de detectar ese error y un intérprete hasta que no lo
ejecuta no. Si ese trozo de código se ejecuta rara vez a lo mejor no te das
cuenta del error hasta que es demasiado tarde. Es un ejemplo demasiado
exagerado pero imagina que tienes una central nuclar y pones
if (se llega al punto de fusión) {
  Apagar el reactor nuclear
}
¿Quien es capaz de llevar el reactor al punto de fusión para comprobar que el
código de dentro está bien? Es exagerado, pero es un ejemplo.

El otro punto favorable a Java es la disciplina de tipos. Una variable tiene
un tipo o clase determinada y eso limita los valores que puede tomar, los
atributos que tiene, etc. Con PHP una variable puede tener un entero, lugo
una cadena de caracteres, eso en mi opinión puede dar lugar a código bastante
oscuro.

Además, en Java no se puede usar una variable hasta que no tiene un valor
asignado, y eso se comprueba en tiempo de compilación. Eso que parece una
tontería hace que se produzcan menos errores de programación.

Otra ventaja de Java sobre PHP es que creo que permite una separación más
clara entre lo que son los algoritmos en sí y la salida en HTML. Utilizando
filtros de forma sencilla se puede hacer que la salida del programa sea XML y
luego usando hojas de transformación XSL, generar HTML o cualquier otro
lenguaje de marcado. En realidad no se si eso se puede hacer en PHP.

La principal ventaja de PHP es que su instalación es más sencilla, al menos
usando debian, es más eficiente, y para una aplicación sencilla es más rápida
su implementación. Luego el mantenimiento dudo que sea tan sencillo.


Y aqui Una discusión sobre el tema PHP VS JAVA

erchus

 Gracias a los dos, tener varios puntos de vista siempre es interesante.

Por cierto Ruben, con mvc2x,  ¿te refieres a modelo-vista-controlador? es que el 2x no se muy bien que significa...

Un saludo

Ruben

Cita de: "erchus"Gracias a los dos, tener varios puntos de vista siempre es interesante.

Por cierto Ruben, con mvc2x,  ¿te refieres a modelo-vista-controlador? es que el 2x no se muy bien que significa...

Un saludo
Hi,
si, con mvc quiero decir modelo-vista-controlador.

Además, me refiero a que con struts tienes varias posibilidades para separar la logica, control y vista. La mas habitual es jsp: la ventaja es que tienes todas las funcionalidades que te da a la hora de recoger la información de formularios, control de errores, etc... la desventaja es que si no eres metodico vas a perder facilmente el mvc.

La otra posibilidad es usar la pareja xslt y xml. Pierdes las ventajas que tenias con jsp (o por lo menos no hemos sabido como sacarlas) pero ganas en que por narices tienes que seguir el mvc. Al uso de esta pareja se le llama mvc 2x.

De todas formas te pongo un enlace de un articulo donde te lo explica mucho mejor que yo... :rolleyes:

http://www.javaworld.com/javaworld/jw-02-2...strutsxslt.html

Un saludo,
Rubén

erchus

 ok, ahora todo mucho más claro...muchas gracias

Sólo me queda conocer algo más sobre temas de alojamiento...en particular para JAVA, que tengo entendido que es más dificil (y más caro) encontrar un buen servidor en España.

Un saludo  (ole)  

Grugnorr

 Si no tienes experiencia ni predilección sobre ninguna opción, te recomiendo que como buen profesional analices también lo que ASP.NET ( especialmente 2.0 ) te puede ofrecer.

hat the hells!

TheWind

 
Citar
Java es compilado, a código de la máquina virtual eso sí, pero compilado a fin
de cuantas. Lado la compilación da una serie de errores que la interpretación
puede no capturar.
La mayoria de errores a los que se refiere son errores de "sintaxis", pero la forma de trabajar de php es muy partiocular: cada archivo php es tokenizado y transformado en codigo intermedio que es ejecutado por el interprete, en este proceso si hay un error de sintaxis, el archivo no se ejecuta y se informa del error.
En todo caso el unico error , y es relativo, es que PHP al ser un sistema debilmente tipado errores de tipos q se podrian detectar en compilacion no se ven.

Citar
Otra ventaja de Java sobre PHP es que creo que permite una separación más
clara entre lo que son los algoritmos en sí y la salida en HTML. Utilizando
filtros de forma sencilla se puede hacer que la salida del programa sea XML y
luego usando hojas de transformación XSL, generar HTML o cualquier otro
lenguaje de marcado. En realidad no se si eso se puede hacer en PHP.
Lo que hace la ignorancia.... eso se puede hacer en php, en c o en el lenguaje que quieras es una cuestión metodologica, no del lenguaje. otra cosa es que hay mucho inutil haciendo cosas en PHP y "perliza" el PHP encasquetandolo en medio de codigo html a lo asp... una guarrada inmantenible la hagas en el lenguaje q la hagas.
Personalmente, yo uso un motor de plantillas y una capa de abstraccion de bbdd, con lo que mi logica de negocio esta muy separada tanto de la logica de acceso a bbdd, como de la logica de presentación: a las plantillas solo les paso los datos q necesitan mostrar, la logica de acceso se encarga de interactuar con la abstraccion de bbdd para recoger los datos q necesita la logica de negocio... mas separacion creo q no es posible...

CitarLa principal ventaja de PHP es que su instalación es más sencilla,
Entrando en detalles, PHP tiene varias ventajas más y más importantes:

* ubiquidad. Practicamente no hay host que no tenga php instalado
* Velocidad y recursos. Es mucho mas ligero que java, y tiene un mayor rendimiento, solo superado por aplicaciones CGI. (Perl es la que le sigue, coldfusion, python y ruby, ASP.NET y java empatadas en los puestos de cola)
* Sencillez, es mucho mas sencillo como lenguaje y como entorno q java.

Y en cuanto a problemas, también tiene los suyos: falta de normalizacion de algunas apis, ausencia de soporte de UTF-8...

Vicente

 Yo tendría en cuenta lo que ha dicho Grugnorr (ASP.NET 2.0). No conozco PHP y no me meto, pero si he currado con JSP y ASP.NET y se desarrolla doscientas mil veces mejor en ASP.NET que en JSP. Sobre todo porque es muuucho más fácil encontrar los errores y depurar (que es al final lo que te come el tiempo).

No me meto en temas de rendimiento ni cosas de esas, solo que para depurar a mi me ha sido mucho más cómodo ASP.NET que los JPS. Un saludo!

Vicente

Ruben

 
Cita de: "TheWind"Y en cuanto a problemas, también tiene los suyos: falta de normalizacion de algunas apis, ausencia de soporte de UTF-8...
Hi,
yo añadiria que php tiene la desventaja de que el codigo resultante, a menos que seas muy metodico, es muy dificil de mantener. Además de que el desarrollo, si es una aplicacion muy grande, como no hayas seguido estrictamente un patron de diseño, es un infierno.

Para hacer cosas rapidas y relativamente sencillas, php.

Si quieres hacer algo mas complejo y no morir en el intento, te aconsejaria un framework como struts.

Estuve diseñando y desarrollando una aplicación web de manejo de cursos para una universidad, en php. Al principio me parecia muy sencillo y muy rapido en el desarrollo. Pero al cabo de 5 meses, se hacia muy tedioso modificar cualquier cosa, a pesar de haber seguido mvc.

Sin embargo hace poco estuve desarrollando tres o cuatro modulos de un portal-aplicacion-web para un ministerio en struts. La verdad es que al principio aprender la dinamica de struts es mucho mas complejo que php. Pero en cuanto te haces con ello, el desarrollar se hace muy sencillo: programas en java (yo lo hacia bajo eclipse), te generas tus beans con la logica de empresa (modelo), insertas las llamadas a los beans y todo lo que haga falta en el controlador y luego, te vas a un fichero xsl (io lo hacia con 2x)  para modificar la vista.

Como ves, se tocan tres cosas bien diferenciadas y te dejas de lios de tocar mil ficheros en php y de mezclar la vista con el modelo.

Un saludo,
Rubén.

FANatiko

 
Cita de: "TheWind"* Velocidad y recursos. Es mucho mas ligero que java, y tiene un mayor rendimiento, solo superado por aplicaciones CGI. (Perl es la que le sigue, coldfusion, python y ruby, ASP.NET y java empatadas en los puestos de cola)
TheWind, las aplicaciones CGI tienen un problema (y mira que a mi Perl me gusta) pero en un host que no te dejen configurartelo bien, en pocos sitios te arrancan el mod_perl, sino que te dan permisos de ExecCGI y eso hace que la eficiencia baje si hay muchos accesos.

Ahora, verdad es que el PHP es más ligero que Java. Quizas yo me plantearia echarle un ojo a PHP5 que trae unas cuantas nuevas features que estan aprovechandolas una cantidad de frameworks MVC (symfony, p.ej) o orientado a eventos (no recuerdo el nombre, pero riete tu de la web de Python, que esta parecia el Super Mario). Aunque tardaras un poco en tenerlo disponible de forma extendida y por poco precio. Pero creo que en unos meses ya se podrá pedir.

TheWind

 
Citar
yo añadiria que php tiene la desventaja de que el codigo resultante, a menos que seas muy metodico, es muy dificil de mantener.
Todo depende del enfoque que le des, puedes hacer codigo muy mantenible -hice un motor para una empresa hace 3 años y siguen utilizandolo para todas sus webs- o puedes hacer un desastre -solo hay que mirar oscommerce, claroline, o php-nuke- todo depende del enfoque y las intenciones.
CitarAdemás de que el desarrollo, si es una aplicacion muy grande, como no hayas seguido estrictamente un patron de diseño, es un infierno.
Eso, con perdon, es un mito: el gran secreto de la mantenibilidad es ese viejo dicho de kung-fu "hay que ser duro y flexible como el bambu", estructuras rigidas lo unico que conducen es a un periodo -breve por cierto- de mantenimiento relativamente sencillo seguido de una pronta reescritura, estructuras flexibles te permiten prolongar el periodo entre reescrituras mucho mas.

CitarEstuve diseñando y desarrollando una aplicación web de manejo de cursos para una universidad, en php. Al principio me parecia muy sencillo y muy rapido en el desarrollo. Pero al cabo de 5 meses, se hacia muy tedioso modificar cualquier cosa, a pesar de haber seguido mvc.
Yo he escrito varios proyectos (una plataforma web para un ISP, un erp/crm integral para una empresa del sector de la construccion, etc..) entorno a 1 - 1.5 ML en php y no he muerto en el intento, hay que saber hasta donde aplicar un patron, hasta donde aplicar una metodologia y sobre todo, no liarse la existencia.

TheWind

 
CitarTheWind, las aplicaciones CGI tienen un problema (y mira que a mi Perl me gusta) pero en un host que no te dejen configurartelo bien, en pocos sitios te arrancan el mod_perl, sino que te dan permisos de ExecCGI y eso hace que la eficiencia baje si hay muchos accesos.
Cuando me refiero a aplicaciones CGI, me refiero a C, C++ no a perl, ya que su rendimiento es inferior a PHP.

CitarQuizas yo me plantearia echarle un ojo a PHP5 que trae unas cuantas nuevas features que estan aprovechandolas una cantidad de frameworks MVC (symfony, p.ej) o orientado a eventos (no recuerdo el nombre, pero riete tu de la web de Python, que esta parecia el Super Mario). Aunque tardaras un poco en tenerlo disponible de forma extendida y por poco precio. Pero creo que en unos meses ya se podrá pedir.
PHP5.1 te ofrece bastantes mejoras, pero tampoco son determinantes a la hora de escribir codigo y Zope tiene el problema de que es casi tan pesado como Java, y para eso, ya directamente uso java.

Ruben

 Hi,
yo estoy explicando mi experiencia, de la cual he sacado la conclusión de que en php seguir el mvc es mas dificil que por ejemplo, con struts (que es lo que conozco) que si usas xslt y xml lo tienes que seguir por narices.

Si dices que en php se pueden hacer macro aplicaciones me lo creo, porque yo lo he hecho, aunque no tengo tanta experiencia como tu.Para mi, es más facil desarrollar en un marco de trabajo como struts que hacerlo en php.

Despues de tener en cuenta las necesidades del proyecto, para mi lo mas importante es la rapidez/facilidad en el desarrollo, si puedo elegir algo que me hace mas facil la vida y encaja dentro de las necesidades, genial :) .

No intento hacer una guerra php vs el resto, ni ir de listo ni nada por el estilo, solo pretendo aportar mi experiencia a quien la necesite a ver si le ayuda :) .

Un saludo,
Rubén

PD: cito struts, todo el rato porque es lo que he usado recientemente.

FANatiko

 
CitarCuando me refiero a aplicaciones CGI, me refiero a C, C++ no a perl, ya que su rendimiento es inferior a PHP.

Aunque con un Apache bien configurado, el mod_perl y una buena politica de uso de mod_fcgi puedes conseguir una eficiencia bastante respetable...

Ademas Perl es un lenguaje mas bonico que el PHP, ademas de tener el CPAN que es la caña de españa :P






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.