Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Python (https://www.clubdelphi.com/foros/forumdisplay.php?f=46)
-   -   Opiniones sobre Python, Ruby y Perl (https://www.clubdelphi.com/foros/showthread.php?t=73123)

movorack 04-04-2011 03:57:26

Cita:

Empezado por Julián (Mensaje 395681)
Pepito = new Empleado();
Pepito->Apellidos="Perez Perez";
Contratos->Inserta(Pepito->Contrato());
Empleados->actuliza(Pepito);

Si así es que lo termino usando... crear las clases es lo duro despues es bastante comodo trabajar.

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:

Por cierto, en el código PHP no hay SQL, y tampoco HTML. Y no usamos basuras tipo Smarty.
Igual... :cool:

rretamar 04-04-2011 14:32:10

Hablando de Python...¿ cómo lo ven a la hora de desarrollar aplicaciones para escritorio multiplataforma, por ejemplo usando wxPython o PyQT ?.

D-MO 04-04-2011 14:36:17

Cita:

Empezado por rretamar (Mensaje 395719)
Hablando de Python...¿ cómo lo ven a la hora de desarrollar aplicaciones para escritorio multiplataforma, por ejemplo usando wxPython o PyQT ?.

http://clubdelphi.com/foros/showthread.php?t=73139

Saludos

roman 04-04-2011 16:03:59

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

Chris 04-04-2011 17:21:26

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.

roman 04-04-2011 17:33:25

Cita:

Empezado por Chris (Mensaje 395732)
Por otro lado, algunos desarrolladores PHP no vean problemas con mezclar código PHP, JavaScript, CSS, HTML en un mismo archivo.

Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.

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

D-MO 04-04-2011 17:52:19

¿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
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain;charset=utf-8"
print

print "<html><head><title>Hola</title></head><body>"

print "<ul>"

for i in range(10):
  print "<li>Hola %s</li>" % str(i)

print "</ul>"

print "</body></html>"

El código anterior es un archivo .py accesible desde el navegador, vía mod_python o bien via fasc_cgi.

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.

Chris 04-04-2011 17:55:04

Cita:

Empezado por roman (Mensaje 395733)
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.

Yo creo que sí es culpa de PHP. No hay otra forma de escribir código de primas a primera. Además es la forma en que te enseñan el lenguaje.

movorack 04-04-2011 17:55:21

Cita:

Empezado por Chris (Mensaje 395732)
@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.

Django => http://www.djangoproject.com/

"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

D-MO 04-04-2011 18:01:50

Cita:

Empezado por Chris (Mensaje 395738)
...Además es la forma en que te enseñan el lenguaje.

¿Y esto es culpa de PHP?

Chris 04-04-2011 18:02:42

Cita:

Empezado por D-MO (Mensaje 395737)
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.

Tienes toda la razón, gracias a Dios, nadie trabaja así en Python. No hay que olvidar que la diferencia de Python es que no nació para la Web a cómo PHP. Además, para PHP existen varias frameworks y parece que nunca han visto problemas en trabajar de esta forma, simplemente porque el mezclar código de presentación y de lógica está en el ADN de PHP.

movorack 04-04-2011 18:04:07

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.

D-MO 04-04-2011 18:07:03

Cita:

Empezado por Chris (Mensaje 395741)
...la diferencia de Python es que no nació para la Web a cómo PHP.

¿Y quién ha dicho lo contrario?... además, en este momento, la comparación es en ambiente web... ¿o no?

Chris 04-04-2011 18:12:17

Cita:

Empezado por D-MO (Mensaje 395740)
¿Y esto es culpa de PHP?

Técnicamente hablando, talvez no. Pero la filosofía y ADN del lenguaje si tiene la culpa de ello.

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.

roman 04-04-2011 18:17:46

Cita:

Empezado por Chris (Mensaje 395744)
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.

El objetivo de PHP es programar para la web. ¿Y? ¿Qué con eso? Y lo segundo que dices es incorrecto. El problema no estriba en la capacidad de PHP de mezclar código HTML y PHP. Es más, no hay problema en mezclar ambos. El problema está en mezclar código de interfaz con código del modelo o de acceso a los datos. Y esta mezcla puede darse en cualquier lenguaje.

// Saludos

D-MO 04-04-2011 18:26:04

Cita:

Empezado por Chris (Mensaje 395744)
Técnicamente hablando, talvez no.

¿Entonces?

Cita:

Empezado por Chris (Mensaje 395744)
Pero la filosofía y ADN del lenguaje si tiene la culpa de ello.

Explícame.

Cita:

Empezado por Chris (Mensaje 395744)
Nunca he visto un curso de introducción a PHP que te enseñe el lenguaje para otra cosa que no sea la Web.

Culpa de quienes redactan el curso, créeme.

Cita:

Empezado por Chris (Mensaje 395744)
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.

Vuelvo con lo mismo de mi post anterior, con python pasa igual (o quizá peor). Hablando de las plantillas de Django, estas funcionan tal cual gracias al motor de plantillas que este framework ha implementado, este se llama Django Template Languaje, esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty, otros 19, y muchos mas.

Cuando hagamos una comparación (sea de lo que sea) sugeriría empaparnos un poco mas de ambos elementos.

Chris 04-04-2011 18:42:11

Cita:

Empezado por roman (Mensaje 395733)
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.

Cita:

Empezado por roman (Mensaje 395745)
El problema no estriba en la capacidad de PHP de mezclar código HTML y PHP. Es más, no hay problema en mezclar ambos. El problema está en mezclar código de interfaz con código del modelo o de acceso a los datos. Y esta mezcla puede darse en cualquier lenguaje.

Dices una cosa, luego otra... Pero independientemente, quiero que quede claro que esto es una opinión personal. Ya he dicho que para algunos esto no es problema, como para tí, Román y otro compañeros. Pero para otros talvez sí lo sea. Entre ellos los desarrolladores de Symfony 2.0.

Cita:

Empezado por roman (Mensaje 395745)
El objetivo de PHP es programar para la web. ¿Y? ¿Qué con eso?

Ningún problema! De hecho el soporte para tecnologías web es muy bueno e incluso en algunos casos mejor que la gran mayoría. Pero a pesar de esa especialización, mi critica va en sentido de que nunca se ha podido solventar el problema de la mezcla de código.

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.

movorack 04-04-2011 18:51:42

Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?

Chris 04-04-2011 18:53:28

Cita:

Empezado por D-MO (Mensaje 395746)
Vuelvo con lo mismo de mi post anterior, con python pasa igual (o quizá peor). Hablando de las plantillas de Django, estas funcionan tal cual gracias al motor de plantillas que este framework ha implementado, este se llama Django Template Languaje, esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty, otros 19, y muchos mas.

Cuando hagamos una comparación (sea de lo que sea) sugeriría empaparnos un poco mas de ambos elementos.

Lo sé. Pero a Python no se lo discuto porque no ha sido pensado/dirigido para la Web. Si te fijas, cuando la mayoría se refiere a Python para proyectos Web, utiliza más frecuentemente el termino Django. Solo un loco se atrevería a desarrollar un proyecto web con un Python crudo (a cómo viene de fábrica).

Cita:

Empezado por D-MO (Mensaje 395746)
¿Entonces? ...
Explícame. ...
Culpa de quienes redactan el curso, créeme. ...

A pesar de los años que lleva PHP especializándose para el desarrollo web, ¿existe alguna forma fácil de hacer una página web dinámica sin mezclar código PHP y HTML?

movorack 04-04-2011 19:01:58

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:

<?php 
    
include_once "{$curdir}/includes/security.php";

    
$element "Cliente";
    
$field_id "cliente_id";    
    
$element_page "cli_cliente";
    
    
$datos = new tge_clientes();
    
    echo 
$sitio->set_tgewin("Listado de {$element}s");
    
$datos->get_listado();
    
    
$edit_link "?c=prm_tercero&do=edit&id=<tercero_id>&rtrn=cli_clientes";
    
$assign_link "?c={$element_page}&id=<cliente_id>&do=assign&distribuidor_id=<distribuidor_id>";
    
    echo (new 
db_grid(array(
                
"caption" => "Listado de {$element}s.",
                
"showcount" => True,
                
"shownew" => True,
                
"linknew" => "?c={$element_page}&do=insert",
                
"showtotal" => True,
                
"paged" => False,
                
"showactions" => True,
                
"actions"=> array(
                    new 
grid_action("Asignar a distribuidor"6$assign_link),                
                    new 
grid_action("Editar {$element}"1$edit_link),
                    new 
grid_action("Eliminar {$element}"2"dialogs/confirmdel.php?lbl={$element}&a={$element_page}*do=delete&id=<{$field_id}>"true)
                ),        
                
"recordset"=> $datos->listado,
                
"field_id"=> $field_id,
                
"cols" => array(
                    
"tercero_empresa"=>'Empresa',
                    
"tercero_nombre_completo"=>'Nombre Completo',            
                    
"tercero_direccion"=>'Direccion',
                    
"tercero_telefono"=>'telefono',
                    
"tercero_email"=>'e-mail',
                    
"ciudad_nombre"=>'Ciudad',
                    
"distribuidor_marca"=>'Distribuidor'
                
),
                
"col_links"=> array(
                    
"tercero_email"=>"?c=herr_sendmail&email=<tercero_email>",
                    
"distribuidor_marca"=>$assign_link,
                ),
            )));

el resultado ya lo coloqué en un post anterior... y hasta con manejo de ajax.

por eso te vuelvo a preguntar:

Cita:

Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?


La franja horaria es GMT +2. Ahora son las 17:38:00.

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