Foros - Stratos

Stratos => General => Mensaje iniciado por: erchus en 15 de Marzo de 2006, 09:37:00 AM

Título: Comparativa De Lenguajes
Publicado por: erchus en 15 de Marzo de 2006, 09:37:00 AM
 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
Título: Comparativa De Lenguajes
Publicado por: Ruben en 15 de Marzo de 2006, 09:43:02 AM
 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
Título: Comparativa De Lenguajes
Publicado por: josepzin en 15 de Marzo de 2006, 09:53:14 AM
 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
Título: Comparativa De Lenguajes
Publicado por: erchus en 15 de Marzo de 2006, 10:30:00 AM
 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
Título: Comparativa De Lenguajes
Publicado por: Ruben en 15 de Marzo de 2006, 10:42:39 AM
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
Título: Comparativa De Lenguajes
Publicado por: erchus en 15 de Marzo de 2006, 12:10:10 PM
 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)  
Título: Comparativa De Lenguajes
Publicado por: Grugnorr en 15 de Marzo de 2006, 07:30:33 PM
 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.

Título: Comparativa De Lenguajes
Publicado por: TheWind en 17 de Marzo de 2006, 12:50:20 PM
 
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...
Título: Comparativa De Lenguajes
Publicado por: Vicente en 17 de Marzo de 2006, 01:06:40 PM
 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
Título: Comparativa De Lenguajes
Publicado por: Ruben en 17 de Marzo de 2006, 01:24:29 PM
 
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.
Título: Comparativa De Lenguajes
Publicado por: FANatiko en 17 de Marzo de 2006, 03:58:30 PM
 
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.
Título: Comparativa De Lenguajes
Publicado por: TheWind en 28 de Marzo de 2006, 11:04:43 AM
 
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.
Título: Comparativa De Lenguajes
Publicado por: TheWind en 28 de Marzo de 2006, 11:07:56 AM
 
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.
Título: Comparativa De Lenguajes
Publicado por: Ruben en 28 de Marzo de 2006, 01:27:35 PM
 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.
Título: Comparativa De Lenguajes
Publicado por: FANatiko en 28 de Marzo de 2006, 04:26:41 PM
 
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
Título: Comparativa De Lenguajes
Publicado por: TheWind en 30 de Marzo de 2006, 11:52:15 AM
Cita de: "FANatiko"Ademas Perl es un lenguaje mas bonico que el PHP, ademas de tener el CPAN que es la caña de españa :P
Cuantas rayas de colacao te has metido para decir semejante animalada???
Perl si tiene algo, es fealdad, es muy potente, etc.. pero feo con avaricia, tb se le conoce como lenguaje de solo escritura en algunos circulos por su ilegibilidad pasado un tiempo -tb he portado varias cosas de perl a php... y si puedo evitarlo, nunca, nunca mas!-
Título: Comparativa De Lenguajes
Publicado por: TheWind en 30 de Marzo de 2006, 12:00:01 PM
 
Citaryo 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.
Eso, con perdon, es de entrada comparar peras con pechugas de pollo, las dos cosas son comida, pero una es carne y la otra fruta; struts es un framework sobre java y php es un lenguaje "desnudo" asi que como base de argumentacion, no me vale pq son cosas diferentes. Distinto seria que me dijeses q has usado php+phpmvc y q prefieres struts. Por otro lado yo me he hartado de usar XSLT + XML y cuando me ha convenido he usado MVC, en otras ocasiones -las mas, es matar mosquitos con bombas nucleares y eso es un gravisimo error.

CitarDespues 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 :) .
eso es de cajón, pero seguir modelos rigidos no lo veo yo mas q como una trampa, al final te complicas la vida innecesariamente en muchos puntos solo por seguir un patron o una metodologia: son meras herramientas no son un fin en si mismo, el fin de todo desarrollo es hacerlo bien, rapido y barato, si adicionalmente se obtienen otros beneficios ok, pero complicarse la existencia en pos de un uso de patrones, metodologias, etc... no gracias
Título: Comparativa De Lenguajes
Publicado por: josepzin en 30 de Marzo de 2006, 01:09:41 PM
Cita de: "TheWind"Cuantas rayas de colacao te has metido para decir semejante animalada???
:D  :D  :D  :D  :D  :D  :lol:  :lol:  :lol:  
Título: Comparativa De Lenguajes
Publicado por: FANatiko en 30 de Marzo de 2006, 02:04:22 PM
Cita de: "TheWind"Cuantas rayas de colacao te has metido para decir semejante animalada???
Pues estuve 1 año programando en Perl y la verdad no tuvimos excesivos problemas leyendo el codigo del otro programador (ni a la inversa). Que TIMTOWTDI (haya mil formas de hacer lo mismo) no quiere decir que tengas que escoger la mas complicada. Y muchas veces toda la flexibilidad hacia que el codigo fuera bastante mas legible que en sintaxis C-like (sobretodo si te podias ahorar if-else complicados). A todo esto, nuestra aplicacion necesitaba procesar bastante texto y para esto, el Perl era muuucho mas interesante. Para la parte de Vista, utilizamos un modulo construido a partir de CGI.pm, para que fuera XHTML y usase intensivamente CSS (el otro programador sabia más que yo de estas dos tecnologias). Yo estuve con la parte interna, programando el robot con LWP y el parser. Y utilizando herramientas del CPAN nos resulto todo relativamente facil. De la conexion con BDD no puedo hablar demasiado, porque tampoco teniamos unos requisitos demasiado exigentes, pero el DBI se comporto bastante bien.

Claro que, te lo dice uno que se ha leido entero el Programming Perl y aprendió PHP con el tutorial de php.net y ojeando codigo opensource...  
Título: Comparativa De Lenguajes
Publicado por: Ruben en 30 de Marzo de 2006, 02:53:51 PM
 Hi,

Citar
Citar
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.
Eso, con perdon, es de entrada comparar peras con pechugas de pollo, las dos cosas son comida, pero una es carne y la otra fruta; struts es un framework sobre java y php es un lenguaje "desnudo" asi que como base de argumentacion, no me vale pq son cosas diferentes. Distinto seria que me dijeses q has usado php+phpmvc y q prefieres struts. Por otro lado yo me he hartado de usar XSLT + XML y cuando me ha convenido he usado MVC, en otras ocasiones -las mas, es matar mosquitos con bombas nucleares y eso es un gravisimo error.

Citar
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 smile.gif .
eso es de cajón, pero seguir modelos rigidos no lo veo yo mas q como una trampa, al final te complicas la vida innecesariamente en muchos puntos solo por seguir un patron o una metodologia: son meras herramientas no son un fin en si mismo, el fin de todo desarrollo es hacerlo bien, rapido y barato, si adicionalmente se obtienen otros beneficios ok, pero complicarse la existencia en pos de un uso de patrones, metodologias, etc... no gracias

Me parecen bien tanto las afirmaciones como la correcion. :)

Un saludo,
Rubén