Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
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:
class tge_dbtable {
    const 
CAN_GET_ALL TRUE;
    const 
CANT_GET_ALL FALSE;
    const 
SEPARATOR_DEFAULT ",";
    const 
SEPARATOR_AND "and";
    const 
ASSIGN TRUE;
    const 
NOT_ASSIGN FALSE;
    
    protected 
$db;
    protected 
$table_name;
    protected 
$table_alias;
    protected 
$sql;        
    protected 
$fields;
    protected 
$registros;
    
    public 
$listado;
    public 
$join;
    
    public function 
__construct($table_name$table_alias "t0"){
        
$this->db mysql_layer::getInstance(DB_LINK);
        
$this->registros = new mysql_recordset(false);
        
$this->listado = new mysql_recordset(false);
        
        
$this->table_name $table_name;
        
$this->table_alias $table_alias;
        
        
$result $this->exec_query("SHOW COLUMNS FROM {$this->table_name}");
        while (
$field mysql_fetch_object($result)){
            
$fieldname $field->Field;
            
$this->fields[] = $this->table_alias.".".$fieldname;
            
$this->$fieldname $field->Default;            
        }
    }
    
    protected function 
get_fields($fields$cangetall self::CAN_GET_ALL$assign self::NOT_ASSIGN$separator self::SEPARATOR_DEFAULT){
        
$sql "";
        if (
is_string($fields)){
            if (
strlen($fields) > 0){
                if (!
$assign$fields explode(","$fields);
                else 
$sql .= $fields
            } else {
                if (
$cangetall$sql .= "* ";
            }
        }        
        if (
is_array($fields)){
            
$fieldcount count($fields);
            
$i 1;
            if (!
$assign){
                foreach (
$fields as $field) {
                    
$sql .= trim($field);
                    if (
$i $fieldcount$sql .= "{$separator} ";
                    
$i++;
                }
            } else {
                foreach (
$fields as $field => $value) {                    
                    
$field trim($field);
                    
$value trim($value);
                    
$sql .= "{$field} = '{$value}'";
                    if (
$i $fieldcount$sql .= "{$separator} ";
                    
$i++;
                }                
            }
        }

        return 
$sql;
    }
    
    private function 
get_values($values$separator self::SEPARATOR_DEFAULT){
        
$sql "";
        if (
is_string($values)){
            if (
strlen($values) > 0){
                
$values explode(","$values); 
            } else {
                if (
$cangetall$sql .= "";
            }
        }        
        if (
is_array($values)){
            
$pattern "/'(.*?)'/";            
            
$count count($values);
            
$i 1;
            
            foreach (
$values as $value) {                    
                
$value trim($value);
                
$match = array(); $pm preg_match($pattern$value$match);
                if (
$pm$value $match[1];
                
                if(
is_string($value)) $value "'{$value}'";
                
                
$sql .= "{$value}";
                if (
$i $count$sql .= "{$separator} ";
                
$i++;
            }                
        }

        return 
$sql;
    }
    
    private function 
get_where($where$operator self::SEPARATOR_AND){
        
$sql "";
        if (
is_string($where)){
            if (
strlen($where) > 0){
                
$sql .= " where "$where " "
            } else {
                
$sql .= " ";
            }
        }
        if (
is_array($where)){
            
$i 0;
            foreach (
$where as $key => $value) {
                
$pattern "/#(.*?)#/"$condition "";    

                if (
$i == 0$condition " where ";
                else  {
                    
$operator $operator;
                    
$matches = array(); $pm preg_match($pattern$key$matches);
                    if (
$pm) {
                        
$key str_replace($matches[0], ""$key);
                        
$operator $matches[1];
                    }                
                    
$condition $operator " ";    
                }
                
                
$matches = array(); $pm preg_match($pattern$value$matches);                
                
$operator "=";
                if (
$pm) {
                    
$value str_replace($matches[0], ""$value);
                    
$operator $matches[1];
                }
                
                
$condition .= "{$key} {$operator} '{$value}' ";
                
$sql .= $condition;
                
                
$this->$key $value;
                
$i++;
            }
        }
        
        return 
$sql;
    }
    
    private function 
get_join($joins = array()){
        
$sql "";
        
        foreach (
$joins as $join) {
            
//$sql .= " {$type} join {$condition} ";
            
if (is_object($join) && get_class($join) == "tge_join_data"){
                
$join = new tge_join_data($join->type$join->table$join->alias$join->conditions);
                
                
//get join fields
                
$result $this->exec_query("SHOW COLUMNS FROM {$join->table}");
                while (
$field mysql_fetch_object($result)){
                    
$fieldname $field->Field;
                    
$this->fields[] = $join->alias ."."$fieldname;            
                }
                
                
$conditions "";
                if (
is_string($join->conditions)) $conditions $join->conditions;
                else {
                    
$i 0;
                    foreach (
$join->conditions as $condition) {
                        if (
$i 0) {
                            
$pattern "/#(.*?)#/"$operator "and";
                            
$matches = array(); $pm preg_match($pattern$condition$matches);                            
                            if (
$pm) {
                                
$condition str_replace($matches[0], ""$condition);
                                
$operator $matches[1];
                            }
                            
$conditions .= {$operator} ";
                        }
                        
$conditions .= $condition;
                        
$i++;
                    }
                }
                                
                
$sql .= {$join->type} join {$join->table} {$join->alias} on $conditions";
            }
        }
        
        return 
$sql;
    }
    
    
/**
     * Obtener registros de una tabla.
     * @param string / array $fields
     * @param string / array $where
     * @param string / array $limit 
     * <br/>
     * <br/>
     * <b>$fields [string]</b> ej. "field1, field2".<br/> 
     * <b>$fields [array()]</b> ej. array("field1", "field2")<br/>
     * <b>$where [string]</b> ej. "field1 = value and field2 = value".<br/> 
     * <b>$where [array()]</b> ej. array("field1"=>"value", "field2"=>"value")<br/>
     * <b>Filtro en $where:</b> array("<font color="red"><b>#or#</b></font>field1"=>"<font color="red"><b>#like#</b></font>value")<br/>
     * <b>$limit [string]</b> ej. "0, 30".<br/>
     */
    
protected function get_registros($fields ""$where ""$extra ""){
        
$sql "select ";
        
        
//Get JOIN
        
$join ""; if (is_array($this->join)) $join .= $this->get_join($this->join);
        
        
//Fields
        
$fields $this->fields;
        
$sql .= $this->get_fields($fields);        
        
        
//FROM
        
$sql .= " from {$this->table_name} {$this->table_alias} ";
        
        
//WHERE
        
$sql .= $this->get_where($where);
        
        
//ADD - JOIN
        
if ($join != ""$sql .= $join;
        
        
//EXTA (ORDER BY, LIMITS)
        
if (is_string($extra)) if (strlen($extra) > 0$sql .= {$extra} ";    
        
        
$result $this->exec_query($sql);
        
        
$this->registros = new mysql_recordset($result);
        
$this->listado $this->registros;
        
        return 
$this->registros;
    }    
    public function 
get_listado(){ return $this->listado; }
    
    
    protected function 
exec_query($query){
        
//CLEAN - TRIM
        
for ($j 0$j 10$j++) {
            
$query str_replace("  "" "$query);    
            
$query str_replace("\n"" "$query);
            
$query str_replace("\t"" "$query);
        }    
        
        
$this->sql $query;
        
$result $this->db->query($query);
        return 
$result;
    }
    
    public function 
clean_alias($fieldname){
        
$fieldname str_ireplace($this->table_alias."."""$fieldname);
        return 
$fieldname;
    }
    
    protected function 
get_update($values$where){
        
$query "update {$this->table_name} set ";
        
$query .= $this->get_fields($valuesself::CANT_GET_ALLself::ASSIGN);
        
$query .= $this->get_where($where);
        
        return 
$query;
    }    
    public function 
update($values$where){
        
$query $this->get_update($values$where);
        
$exec $this->exec_query($query);
        return 
$exec;
    }
    
    protected function 
get_insert($fields$values){
        
$query "insert into {$this->table_name} ";
        
$query .= "("$this->get_fields($fieldsself::CANT_GET_ALL) .") ";
        
$query .= "values ("$this->get_values($values) .") ";
        
        return 
$query;
    }
    public function 
insert($fields$values){
        
$query $this->get_insert($fields$values);
        
$exec $this->exec_query($query);
        return 
$exec;
    }
    
    protected function 
get_delete($where ""){
        
$query "delete from {$this->table_name} ";
        
$query .=  $this->get_where($where);
        
        return 
$query;
    }
    public function 
delete($where ""){
        
$query $this->get_delete($where);
        
$exec $this->exec_query($query);
        return 
$exec;
    }

y su implementación a la hora de trabajar es bastante sencilla...

Código PHP:
class tge_clientes extends tge_dbtable {
    public function 
__construct(){
        
parent::__construct("tgv_cli_clientes");
    }
    
    public function 
get_listado(){
        
parent::get_registros($this->fields);
        return 
$this->listado;
    }

no se no se... talvéz no aporte mucho pero PHP me ha dado buenos y excelentes resultados... nno conozco ni ruby ni pithon ni perl y no puedo opinar nada de ellos.. se que tienen buena pinta pero mientras logre conseguir lo que quiero con PHP para que aventurarme hasta aquellos lados.

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)

__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #2  
Antiguo 03-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
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.
Responder Con Cita
  #3  
Antiguo 03-04-2011
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
Ahoritica me encuentro trabajando en un proyecto para la web
movorack, eso es precisamente lo que digo. PHP es una herramienta hecha para hacer sitios web. Que pueden ser tremendos sitios web, no lo discuto porque un buen programador hará cosas buenas con lo que sea ue tenga a la mano.

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...
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 03-04-2011
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Cita:
Empezado por movorack Ver Mensaje
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)

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!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #5  
Antiguo 03-04-2011
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
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

Un saludo!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #6  
Antiguo 20-10-2011
angelholberg angelholberg is offline
Miembro
 
Registrado: jul 2006
Posts: 15
Poder: 0
angelholberg Va por buen camino
Smile Ruby +1

Hola a todos los del foro, he acá mi comentario he usado Delphi durante 4 años he echo cosas importantes me ha dado de comer pero como dicen los colegas es hora de cambiar de rumbo, en cuanto a Python, Ruby y Perl, he tenido contacto con Python y Ruby de los cuales me eh inclinado definitivamente pro Ruby más ahora con al recién salida de su Framework Rails 3.1 que trae muchas cosas importantes para desarrollo web, aunque el Framework Django para Python esta super genial, pero realmente me ha convencido aún más Rails para desarrollar aplicaciones potentes y a gran escala., Recientemente acabo de comprarme el libro de Desarrollo web con rails de al editorial anaya multimedia aunque viene unas dos versiones atrasada con respecto al framework es muy buena referencia para aquellos que no se nos da bien el ingles, bueno creo es todo con mi opinión.
Responder Con Cita
  #7  
Antiguo 20-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
¡MUERTE A PHP!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 20-10-2011
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Poder: 14
martinartaza Va por buen camino
Smile

Cita:
¡MUERTE A PHP!
Parece ser que no gusta estar en lo menos popular, antes era mucha Visual Basic ahora es muera PHP.
Responder Con Cita
  #9  
Antiguo 04-04-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Julián Ver Mensaje
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

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...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #10  
Antiguo 04-04-2011
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Hablando de Python...¿ cómo lo ven a la hora de desarrollar aplicaciones para escritorio multiplataforma, por ejemplo usando wxPython o PyQT ?.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita
  #11  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por rretamar Ver Mensaje
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
Responder Con Cita
  #12  
Antiguo 04-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #13  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
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.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #14  
Antiguo 04-04-2011
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
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.

..

Es evidente que estas personas no le dedicaron ni media hora al lenguaje y basan sus juicios en sus aversiones personales.

// Saludos
Pues una de la razones ppales de usar pascal es "cómo se ve", no?


Hay una razón de peso por la cual desestime a PHP...

Originalmente (ver historia), php fue una almalgama de funciones hechas ad-hoc, sin mucho diseño acerca del lenguaje. Definitivamente, estaba totalmente orientado a el codigo espaguetti (una herencia del perl), y fue solo de forma *muy* reciente que empezo a tener orientacion a objetos y por ende, mecanismos para organizar el codigo.

El modelo de MVC fue algo que se agrego, pero solo después de que Ruby on rails probara (o popularizara) que es un mucho mejor método de desarrollo.

Esto tiene una implicación. Una gigantesca cantidad de código PHP que anda por ahí es del tipo spaguetti (y si le dedique mas de media hora: Examine proyectos enteros - lo que significa, que lei cantidades considerables de codigo -: vtiger, oscommerce, y un erp que no me acuerdo cual, aparte de que los primero sitios en PHP).

Puede que a algunos que escriben la totalidad del programa los afecto poco, pero igual tiene su impacto. Entre otras cosas, implica que en ves de reutilizar, hay que escribir desde cero.

En cambio, antes de django con python no habia nada fuerte... y cuando se popularizo, paso algo particular: desde las bases hay un mejor diseño, es solo ver por ejemplo, lo elegante del ORM, o el ruteo de URLs... y ese estilo se rego a todo los demas: web.py, turbogears, sqlalchemy, etc...

Y entre los programadores de python, no hay nada de eso de escribir espaguetii. En serio. He leido y usado proyectos de todo tipo (tanto por hobby, como por trabajo) y como les digo, siempre parece que el codigo lo hizo un mismo programador. Esa es una cualidad tremenda. Es parecido al codigo pascal, pero mucho mas permeable.

No me crean. Miren el codigo de Panda3d, y luego el de django. Les aseguro que sin experiencia, captan una cantidad muy alta d elo que sucede por ahi. De hecho, cuando apenitas sabia django, aporte un cambio al proyecto: Soporte a sql server:http://code.djangoproject.com/ticket/5062 (lo que es una tarea de dificultad media)

Asi que con toda certeza, puedo asegurar que nadie en python trabaja a la manera salvaje oeste de PHP. No es que no se pueda, es que hace parte del mismo estilo, diseño, filosofia del lenguaje. Todo lenguaje tiene eso. Y aunque es posible escribir codigo claro en casi cualquier lenguaje (APL excluido!!) unos lo promueven mas que otros. En perl, php, hay mas tendencia a que no sea asi. En python a que si lo sea.
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sus opiniones sobre la CLX Lord Delfos Varios 6 10-03-2010 15:21:15
Opiniones sobre la compra de Sun por Oracle D-MO Debates 3 05-01-2010 23:13:30
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 05:19:15
trabajo con perl alachaise Internet 0 23-11-2004 16:23:56
Opiniones sobre el Firebird 1.5RC3 para aplicaciones web victork_py Firebird e Interbase 2 04-07-2003 14:54:45


La franja horaria es GMT +2. Ahora son las 06:10:42.


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
Copyright 1996-2007 Club Delphi