Opiniones sobre Python, Ruby y Perl
Observando la lista de TIOBE, que si bien es cuestionable también no puede ser ignorada del todo, Delphi se encuentra en el lugar número 13 (marzo de 2011).
Para mí es tiempo de empezar a estudiar otros lenguajes (al tiempo de continuar apoyando el rescate de Delphi), sobre todo aquellos que facilitan la creación de aplicaciones Web. Observando esa lista, debo confesar que me simpatizan poco los Cées y sus parientes más cercanos. De los lenguajes que se encuentran (según TIOBE) en posiciones superiores a Delphi, me llaman la atención para estudiarlos Python, Ruby y Perl, que según entiendo son como primos. Me inclino por el primero a raíz de los comentarios que he leído últimamente, pero quiero estar seguro de que habré hecho una buena elección una vez que conozca, grosso modo, las ventajas y desventajas que tienen entre sí esos tres lenguajes, y, por qué no, respecto a otros lenguajes también. Mi intención con este mensaje es abrir una invitación a todos aquellos programadores que han tenido experiencia con alguno de esos tres lenguajes, para que opinen sobre lo que les ha parecido, cuáles son sus puntos fuertes, sus puntos débiles, en qué casos son más recomendables, sus ventajas sintácticas, sus bibliotecas nativas, alcances, empuje de su comunidad, etc. Todo lo que permita contrastar a Python, Ruby y Perl, y tomar la mejor decisión a todos los que estamos interesados en aprender un nuevo lenguaje de programación. Muchas gracias. Al González. :) |
esta bien esa lista?
situar a Visual Basic por encima de Delphi ? sacrilegio !!! y me ha hecho recordar viejos tiempos Cobol RPG y su clasico HFELICO |
Desde luego, no es de mi de quién esperas escuchar una opinión :) No por otra cosa sino porque mi experiencia en los tres lenguajes que mencionas en prácticamente nula.
Sin embargo, y ya me corregirán, yo descartaría Perl. Tengo entendido que es muy poderoso pero lo siento más para administradores de servidores. Es, según creo, algo rudimentario y no sé siquiera si sea orientado a objetos. Vamos, que no sé si sea lo más práctico para desarrollo a alto nivel. De Python y Ruby, para desarrollo web, no he escuchado sino buenas opiniones. // Saludos |
Más que Python, para desarrollo web optaría por cosas como PHP. Como que Python es más "todoterreno", mientras que PHP es más especializado en eso.
|
Concuerdo con roman con lo de descartar perl, empezando porque indicas que no te gustan mucho los parientes de C. La verdad que perl no lo he usado, tan solo en una o dos ocasiones que he visto el código de algún script que he necesitado, pero de allí, nada mas.
De python y ruby si te puedo hablar un poco, los he usado ambos. El primero fué ruby, me gustó mucho, el lenguaje en sí es bastante simple (que no le quita funcionalidad) y muy potente, sin embargo, al utilizarlo con rails me costó mucho ya la parte de personalización del sitio web, donde necesitaba funciones "especiales" se me cerró todo. Con python me ha ido diferente, igual de ágil que ruby, consume casi nada de recursos y es muy potente. Lo utilizo con django y va de maravilla. Un problema que tube con ruby fué que no pude hacerlo funcionar bien sobre windows, entonces para mi le quita puntos en lo de "multiplataforma". El interprete si me funcionó, lo que no funcionó fueron las bibliotecas de acceso a bases de datos, sqlite, mysql y postgres. |
Se agradecen los comentarios, Román, D-MO, rretamar.
Eso de que «Python es más "todoterreno"» se escucha interesante. :) |
Cita:
Creo que deberías echar un vistazo a node.js, que es bastante nuevo y viejo a la vez: se trata de javascript ejecutado en el servidor, pero con unas caracteristicas impresionantes. Con node.js, cada petición al servidor se trata como un evento en lugar de crear un nuevo thread, lo cual significa que una aplicacion web basada en node.js necesita muchisima menos de ram y CPU en el server para poder atender muchisimas mas conexiones. Entre otros puntos fuertes permite hacer aplicaciones comet sin necesidad de estar haciendo polling al servidor. Y se integra muy bien con el servidor NGINX, el web server que esta llamado a sustituir al apache. De hecho, ya lo está haciendo. Un saludo! |
Hola a todos.
yo me inclinaría por phyton. Con Django como framework para desarrollos. Tengo entendido que integra bien con delphi. OpenERP está desarrollado con phyton. Al, a ti que esres un estudioso de los frameworks de desarrollo, meterte a conocer OpenERP creo que te puede abrir un mundo de posibilidades, ya que dispones de todo el código. Tienes código para su estudio a cascoporro , que por lo que te conozco, lo valoras. Si tuviera tiempo, empezaría con él... Saludos |
Tengo mucha experiencia ya con python, y te cuento que se integra muy bien con delphi (es lo que he usado para BestSeller).
Concuerdo con ignorar a Perl. No porque no sea un lenguaje potente, lo es, sino porque es particularmente complejo... a un nivel que incluso es famoso por su concurso de codigo incomprensible: http://en.wikipedia.org/wiki/Obfuscated_Perl_Contest Cita:
Entre ruby & python mas o menos la cosa es asi. Ruby es mas magico. Python es mas simple. No me refiero a simple o magico en los terminos usuales, sino a su diseño estructural. Ruby es mas inclinado a lisp/smaltalk. Python es mas inclinado a lo simple (tanto asi que esta dentro de su filosofia ). Actualmente, ruby es mas lento (en sitios web) que python. Es algo que están corrigiendo... |
Cita:
Y nuestras aplicaciones PHP lo mismo atacan a una u otra de esas bases de datos, normalmente despues de que el usuario se haya autentificado contrra el servidor LDAP a fín de obtener un conjunto de derechos de acceso. Por "motivos políticos" deberiamos estar usando Java con Hibernate y no se qué mas. De hecho, en otros departamentos lo usan. Pero en el mio usamos PHP porque con PHP tardamos MENOS en hacer las aplicaciones, y porque hacemos más rápido las interfaces de usuario, y mas eficientes gracias tambien a las facilidades de cosas como jquery, ajax, y al buen uso del CSS. Y sobre todo porque hemos comprobado que con php conseguimos las respuestas mas rápidas y cargas mas bajas de los servidores. Ahora vamos a evaluar, para ciertas cosas, node.js y sobre todo nginx, y tambien Python, claro. No somos fans de ningún lenguaje, ni framework ni ide. Y si evaluamos alguna cosa y nos parece mas productiva que PHP le daremos la patada sin dudarlo. No sería la primera vez. Por eso me parece un poco, bueno, no sólo un poco, asombrosa, tal vez desde mi ignorancia, una afirmación como esa: "para hacer paginitas". De ahí que te formule una pregunta: ¿En que te basas para efectuar tal juicio? A lo mejor esto da para un buen debate :D Un saludo! |
Cita:
Pero ya siendo mas serio lo que mencionas en cierta forma refuerza el punto. Una aplicacion de intranet no es que sea muy distinta a una web. Obvio, hay "paginitas" de paginitas, no es lo mismo hacer un facebook que la tipica web de quienes somos, los productos y venga aqui el contacto. PHP es el lenguaje mas popular para hacer paginitas (abajo las palabras politicamente correctas!) y con todo, muchos de esos sitios son excepcionales. Sin embargo, python (ruby) nacieron mucho antes de que la parte web fuera tan popular, así que se prestan de forma natural para otro tipo de software. Como motores 3D de videojuegos (http://www.panda3d.org/), soporte en animacion de 3d (http://www.blender.org/), aplicaciones cientificas (http://www.scipy.org/), y todo un largo conjunto de aplicaciones, servicios y demas (Una lista aqui: http://en.wikipedia.org/wiki/List_of_Python_software). No es que PHP como tal no pueda usarse en ámbitos fuera de la web, es que no es su propósito. Es mas natural usarlo para cosas web y por todos lados se nota, como su integracion en apache (modpython creo, es la razon #1 por la cual le gano la puja a perl y todo lo demas). Python (y ruby) recorrieron el camino inverso. Solo fue cuando salio ruby on rails (http://rubyonrails.org/) y basado en su exito, django (http://www.djangoproject.com/) que tomaron "vuelo" en el mundo mas hip-hop y de cultura pop de la web. PHP nació en la web, y no ha migrado, de forma significativa a otras tierras. Los demas lenguajes nacieron en otras tierras, y han migrado progresivamente a la web, con mayor o menor exito... Para mi, tener la ventaja de hacer cosas <> paginas me empujo directamente a python . La magia de ruby y su lentitud me ahuyentaron, a pesar de que su sintaxis tiene puntos muy atrayentes, como se aprende en Why's (poignant) guide to ruby, quizas el tutorial de programacion mas entretenido que hay.. Un ultimo punto, y que fue determinante en mi caso en cuanto a aelegir a python (django) para la parte web, fue el hecho de que no se mezcla python con el html. Eso me causaba nauseas de las malas al ver codigo en PHP (hubo una epoca en la cual examine varios paquetes open source con el proposito de comercializarlos y reempaquetarlos) y al imaginar los dolores de cabeza que seria soportar codigo asi... bueno eso fue la estocada final. Con django, por el contrario, el html esta muy alejado: http://docs.djangoproject.com/en/dev/ref/templates/api/. Es tan simple de modificar el codigo de python (y el html) sin corromper lo demas! Eso fue lo que me vendio al 100% la idea de nunca jamas de los jamases meterme en PHP. Porque aunque en PHP se *puede* hacer asi, al ir integrando codigo de terceros en los proyectos, unos serian un sancocho, otros mediocres y uno que otro bueno. Con python, todos son mas o menos iguales. Es muy extraño, porque pareciera que python lo escribiera un solo programador. Casi como con pascal, pero con pascal si se notan muchos los diversos estilos de organizar el codigo... |
Bueno, le echado un ojo muy muy por encima a la web de django, y he visto un ejemplo bastante básico, ese del reporter y el article, y antes de seguir mirando he decidido desempolvar un debian (64etch) que tenia en vmware, y ahora ando actualizandolo a squeeze despues de importarlo a parallels, con la intención de instalarle python (viene sin él, pues es una instalación de esas minimas) y despues proceder a probar pythin, y sobre todo django, que ya me has convencido de que al menos, debo hacerlo :D
Sobre dejar de lado lo politicamente correcto no podiamos estar mas de acuerdo. Un saludo! |
Muy interesantes todos los comentarios que han vaciado aquí.
Para desarrollar aplicaciones Web me parece muy importante comenzar con un lenguaje maduro cuya formación haya ocurrido en entornos de escritorio y que luego fuese pacientemente adaptado al entorno Web, como al parecer es el caso de Python. Con PHP apenas si he realizado un par de ejercicios y cuando me ha tocado ver ejemplos de código fuente siento ganas de dejar de ser informático. Tantos simbolitos poco legibles (típico de C) mezclados con HTML y JavaScript me hacen cuestionarme «¿Cómo llegamos a esto?». Ya les haré partícipes de mis primeras impresiones usando Python. Al González. :) |
Despues de actualizar el debian de etch a squeeze ya está pythion en el sistema. Y acabo de ver que el django estña en los respositoios de Debian, con un montón de paquetes:
Código:
#sudo aptitude search django Creo que mejor abrimos un hilo aparte para esto, que parece bastante potente. |
Cita:
|
mmm no se...
Ahoritica me encuentro trabajando en un proyecto para la web y dada mi poca experiencia en otros lenguajes opté por PHP ya que necesitaba actuar raoidamente en este proyecto.
No creo que sea para hacer "paginitas"... algunos ignorantes dirian que delphi solo es para hacer "programitas"... pero que le vamos a hacer... ahi quienes comen moco y se esconden debajo de la cama pa'que no les pidan. esta clase la hice en estos dias... me sirve para abstraer a php una tabla y ejecutar las funciones mas básicas (insertar, actualizar, eliminar) <<depende de otras clases>> Código PHP:
Código PHP:
El proyecto actual es para el control de distribución, manejo de clientes, mantenimientos etc de una marca de filtros de motor en todo el pais... no se no le veo nada de "paginita" (ya que estamos poco diplomaticos) |
Gracias por tu testimonio, movorack. No se ve que sea una aplicación simple. Sólo te recomendaría tener más cuidado con la ortografía (hay muchas faltas en esta interfaz de usuario).
Cabe aclarar que no soy de los que cuestiona la capacidad de PHP, puesto que no lo he usado lo suficiente, pero sí he hecho ver la poca gracia que me causa su sintaxis heredada de C: esa vieja filosofía de ayudarle a la máquina antes que facilitarle las cosas al programador, cuya "cachiruleada" evolución ha derivado en un excesivo uso de símbolos que deterioran la legibilidad del código. |
Cita:
En contraste, otros lenguajes permiten hacer cosas como motores en 3D de juegos de MMO. Es entonces malo porque es un lenguaje enfocado y otros mas multi-proposito? No. Eso le ayuda, si el punto es hacer sitios web, esta bien. Por años trabaje con FoxPro, un lenguaje para hacer programitas de bases de datos. A la fecha, no ha salido algo que lo supere... |
Cita:
En donde yo trabajo usamos un sistema parecido: la bd principal, que no la única, es Oracle y tenemos hechos unos objetos con sus metodos inserta(), actualiza() y borra() con los cuales tratamos, de manera que en el código php no hay ni una sentencia sql. Cada uno de esos objetos no se corresponde con una tabla, sino con una entidad, que tambien es un objeto, o un conjunto de objetos, por ejemplo empleados() o contratos() o pacientes() de talk manera que podemos hacer algo como Pepito = new Empleado(); Pepito->Apellidos="Perez Perez"; Contratos->Inserta(Pepito->Contrato()); Empleados->actuliza(Pepito); No me acuerdo de como es la sintaxis, pero mas o menos se entiende el sistema, y lo potente y cómodo que es. Ademas, permite que uno se dedique a esas clases y otro a usarlas, aprovechando el encapsulamiento. En resumen, se trata de, como dice el amigo movorack, de convertir las bases de datos en objetos. En cuanto a lo de las paginitas, pues yo tampoco tenía ni idea de python, y ayer le eché unas cuantas horas, y sigo sin verle ninguna ventaja sobre PHP, aunque ya le he visto alguna desventaja. No digo que para otras cosas no sea muy bueno, que seguro que lo és, pero para aplicaciones WEB, al menos de momento, no lo veo yo muy claro. Un saludo! |
Por cierto, en el código PHP no hay SQL, y tampoco HTML. Y no usamos basuras tipo Smarty. Las plantillas que usamos para el diseño son PHP, pues, ¿para que usar plantillas si el mismo php ya es un lenguaje de script?
Creo que no le dariamos dolor de cabeza a Al Gonzalez :D Un saludo! |
Cita:
por cierto con PHP se pueden hacer aplicaciones de escritorio :D echale ojo a PHP-Qt (http://es.wikipedia.org/wiki/PHP-Qt) Y por lo menos en windows PHP tiene un grupo de funciones que te dejan trabajar con la api del sistema. (experimental aun) y otra que te permite trabajar objetos COM. Cita:
|
Hablando de Python...¿ cómo lo ven a la hora de desarrollar aplicaciones para escritorio multiplataforma, por ejemplo usando wxPython o PyQT ?.
|
Cita:
Saludos |
A mi Python me entusiasma aunque no he tenido el tiempo requerido para adentrarme. Aún con lo poco que he visto me parece que puede llegar a gustarme bastante más que PHP.
No obstante me sorprende que gente con experiencia desestime un lenguaje por "cómo se ve", porque han visto algún código mal hecho y les es razon suficiente para desecharlo. Sin embargo esto no es tan grave pues cada cuál decide qué herramienta usar por las razones que considere pertinentes. Pero lo grave es vilipendiar una herramienta sobre la base de "no me gusta", "sólo sirve para la web" ¿Qué estupidez es esa? ¿Quién dijo que tenía que servir para otro ambiente? Lo realmente grave es que estas personas pasan a insultar a todos quienes trabajamos diariamente con ella y pensamos que nuestro trabajo es más serio que el hacer unas paginitas. Es evidente que estas personas no le dedicaron ni media hora al lenguaje y basan sus juicios en sus aversiones personales. // Saludos |
Perl, descartado!
PHP, o mejor dicho C++Script, su sintaxis es demasiado complicado para ser un lenguaje script. Siempre lo he dicho y lo mantendré. Nadie va a negar que se pueden hacer sitios muy potentes con este lenguaje, para muestra Facebook (la frontend solamente). Pero para otros propósitos, simplemente, no ha sido pensado para ello. Python, una sintaxis muy sencilla. Esto no lo digo solo porque se vea más bonito, sino que la propia sintaxis te permite codificar fácilmente algoritmos sumamente complejos. @movorack y Julian: La abstracción de la base de datos no es una funcionalidad propia del lenguaje. La misma abstracción y talvez ligeramente mejor viene incluida en Django. Por otro lado, algunos desarrolladores PHP no vean problemas con mezclar código PHP, JavaScript, CSS, HTML en un mismo archivo. Pero los desarrolladores de Symfony 2.0 (framework de PHP) han copiado el sistema de plantillas de Django principalmente porque no estaban de acuerdo, o no les gustaba esta forma de trabajar, mezclar código de distintos lenguajes en un mismo archivo. |
Cita:
Es como en todo, por ejemplo Delphi. Su IDE rad ha propiciado desde siempre la factura de aplicaciones donde todo el código de interfaz, lógica y acceso a datos está mezclado. Pero eso no demerita a Delphi. Desde luego :) // Saludos |
¿Y si les dijera que Python por si solo es igual o peor que php?... Claro, desde el punto de vista de mezclar código html, javascript, python.
Pues eso, porfavor veamos el siguiente código: Código:
#!/usr/bin/env python Si ponemos PHP y Python en el mismo escenario veremos que realmente no hay mucha diferencia. La ventaja de Python en la web, como yo lo veo, han sido los frameworks. |
Cita:
|
Cita:
"La abstracción de la base de datos no es una funcionalidad propia de" Python... esto se lo ofrece Django (como potente framework que es). La funcionalidad de la clase que te mostré anteriormente esta mucho mas elaborada en symphony y yii por darte dos ejemplos. agregando a lo que dice D-MO: todo depende desde el frwamework con que se mire |
Cita:
|
Cita:
|
Chris...
con un buen framework de php puedes obtener vistas muy limpias con el codigo php suficiente solo para mostrar datos. o incluso sin una sola linea de php (claro que esto no me gusta mucho cuando se usa smarty) Con un profundo estudio de algunos buenos frwameworks podras obtener excelentes resultados... Algunos hasta te ofrecerán usar ajax y JQueryUI sin necesidad de escribir ni una sola linea de javascript. |
Cita:
|
Cita:
Nunca he visto un curso de introducción a PHP que te enseñe el lenguaje para otra cosa que no sea la Web. Con un php crudo, a cómo viene de fábrica, sino incluyes código HTML, CSS, JS en un archivo *.php nunca podrás hacer una página web. Es a eso que me refiero. |
Cita:
// Saludos |
Cita:
Cita:
Cita:
Cita:
Cuando hagamos una comparación (sea de lo que sea) sugeriría empaparnos un poco mas de ambos elementos. |
Cita:
Cita:
Cita:
Talvez, nosotros como programadores no veamos problema a esto. Pero en equipos donde meten mano personas que no son programadores puede serlo. O también puede ser que parte del sistema pueda verse comprometida al estar expuesto su código a todo el mundo. Creo que en estos casos es algo a tener en cuenta. |
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?
|
Cita:
Cita:
|
Es claro algo... para la web todo lo que dices del potencial de python es mas gracias a django que al mismo python... como bien dices... nadie se atreveria a hacer una web con python "de fabrica" creo que es porque tendrian que hacer lo que tanto odias de PHP (combinar html y php)
ahora... con los frwameworks de php (que hay muchos unos buenos y otros malos) puedes obtener MVC. Ej: symfony A mi personalmente no me agrada mucho el motor de plantillas smarty y prefiero "mezclar" php en los archivos de vista... El siguiente ejemplo lista en una tabla los clientes del sistema: Código PHP:
por eso te vuelvo a preguntar: Cita:
|
La franja horaria es GMT +2. Ahora son las 04:44:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi