PDA

Ver la Versión Completa : Opiniones sobre Python, Ruby y Perl


Al González
01-04-2011, 21:34:23
Observando la lista de TIOBE (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html), 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 (http://es.wikipedia.org/wiki/Python), Ruby (http://es.wikipedia.org/wiki/Ruby) y Perl (http://es.wikipedia.org/wiki/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. :)

oscarac
01-04-2011, 21:39:52
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

roman
01-04-2011, 21:44:36
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

rretamar
01-04-2011, 21:53:11
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.

D-MO
01-04-2011, 22:01:46
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.

Al González
01-04-2011, 22:34:00
Se agradecen los comentarios, Román, D-MO, rretamar.

Eso de que «Python es más "todoterreno"» se escucha interesante. :)

Julián
02-04-2011, 13:04:38
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.


Creo que deberías echar un vistazo a node.js (http://nodejs.org/), 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 (http://es.wikipedia.org/wiki/Nginx), el web server que esta llamado a sustituir al apache. De hecho, ya lo está haciendo.

Un saludo!

fjcg02
02-04-2011, 14:52:49
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

mamcx
02-04-2011, 20:05:00
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

Entrants to the competition aimed to write "devious, inhuman, disgusting, amusing, amazing, and bizarre Perl code"


PHP (Para Hacer Paginitas) es ... para hacer paginitas. Una ventaja que tienes con ruby o python es que puedes extenderte facilmente a otras cosas sin recurrir a otros lenguajes. A menos que te dediques a ser un webmaster, realmente es algo que apreciaras... y teniendo en cuenta que conoces Delphi y son el resto de apps diferentes a aplicaciones web lo que tienes de experiencia, me inclinaria mas por estos dos:

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 (http://www.python.org/dev/peps/pep-0020/) ).

Actualmente, ruby es mas lento (en sitios web) que python. Es algo que están corrigiendo...

Julián
02-04-2011, 21:37:01
PHP (Para Hacer Paginitas) es ... para hacer paginitas.

Hum, no me atreveré a decir que no llevas razón, pues ciertamente PHP sirve para para hacer paginitas. Yo lo uso en el trabajo, en donde hacemos aplicaciones web que se usan en nuestra intranet. Una intranet que está desplegada sobre una red que proporciona conectividad a cientos de centros de trabajo, algunos de ellos MUY grandes. Una intranet que en la rama Users de su arbol LDAP cuenta con mas de 20.000 usuarios. En esta gran intranet, a la que se unen otras muchas bastante heterogéneas, lo mismo hay bases de datos Oracle, Informix, DB, SQL Server, y mas, supongo. inlcuso a menudo hay varias o de varias versiones en un mismo centro de datos.
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!

mamcx
02-04-2011, 22:44:50
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?


Ah pues un intento de decir algo ofensivo (ser tan políticamente correcto y decir que cada lenguaje tiene lo suyo y que cada uno escoja... bla.. es aburridor!). Es un lenguaje que me ofende desde mis adentros. Como el C++ (aunque en un golpe irónico trabajo ahora con Objective-C para la parte del iPhone de BestSeller, y como va la cosa, es algo para ratooooo).

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 (http://es.scribd.com/doc/2236084/Whys-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...

Julián
02-04-2011, 23:39:40
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!

Al González
03-04-2011, 02:02:13
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. :)

Julián
03-04-2011, 02:23:53
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:


#sudo aptitude search django
p mumble-django - A Mumble-Server web interface
p python-django - High-level Python web development framework
p python-django-app-plugins - plugin system for django
p python-django-auth-ldap - Django LDAP authentication backend
p python-django-auth-openid - provides optional OpenID integration for Django
p python-django-contact-form - extensible contact-form application for Django
p python-django-countries - provides a country field for Django models
p python-django-dajax - easy to use ajax library for django
p python-django-dajaxice - agnostic and easy to use AJAX library for django
p python-django-debug-toolbar - Embedded debugging toolbar for Django projects
p python-django-djapian - Search API for Django using Xapian
p python-django-djblets - Re-usable components for Django projects
p python-django-dmigrations - Database migration tool for Django projects
p python-django-doc - High-level Python web development framework (documentation)
p python-django-extensions - Useful extensions for Django projects
p python-django-filebrowser - file management in the Django admin interface
p python-django-formfieldset - fieldset rendering mixin for Django-based forms
p python-django-genshi - Django integration for Genshi
p python-django-lint - Static analysis tool for Django projects and applications
p python-django-markupfield - custom Django field for easy use of markup in text fields
p python-django-mumble - A Mumble-Server config application for Django
p python-django-nose - Django test runner that uses python-nose
p python-django-picklefield - Pickled object field for Django
p python-django-piston - Django mini-framework creating RESTful APIs
p python-django-registration - A user-registration application for Django
p python-django-reversion - Provides comprehensive version control facilities for Django
p python-django-rosetta - Eases the translation process of your Django projects
p python-django-shorturls - A short URL handler for Django applications
p python-django-south - Intelligent schema migrations for django apps
p python-django-swordfish - Persistent key-value database with HTTP interface (Django integr
p python-django-tagging - A generic tagging application for Django projects
p python-django-threaded-multihost - allows to serve multiple sites from one django installation
p python-django-tinymce - replacement text widget for Django web framework
p python-django-treebeard - Efficient implementations of tree data structures for Django
p python-django-treebeard-doc - Efficient implementations of tree data structures for Django (do
v python2.4-django-genshi -
v python2.5-django-genshi

A ver si conseguimos hacer un "holamundo" con eso :D
Creo que mejor abrimos un hilo aparte para esto, que parece bastante potente.

Al González
03-04-2011, 03:34:19
A ver si conseguimos hacer un "holamundo" con eso :D

O un "pabernosmatao". :D ;)

movorack
03-04-2011, 04:28:55
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>>


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($values, self::CANT_GET_ALL, self::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($fields, self::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...


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)

http://farm6.static.flickr.com/5294/5583439861_f5850a0154_z.jpg

Al González
03-04-2011, 08:13:18
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.

mamcx
03-04-2011, 18:56:25
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 (http://www.panda3d.org/).

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...

Julián
03-04-2011, 20:54:16
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!

Julián
03-04-2011, 20:58:37
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!

movorack
04-04-2011, 03:57:26
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.

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
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
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:

#!/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
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
@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 (http://www.yiiframework.com/) 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
...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
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
...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
¿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
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
Técnicamente hablando, talvez no.
¿Entonces?

Pero la filosofía y ADN del lenguaje si tiene la culpa de ello.
Explícame.

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.

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 (http://docs.djangoproject.com/en/1.3/topics/templates/), esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty (http://www.smarty.net/), otros 19 (http://www.webresourcesdepot.com/19-promising-php-template-engines/), y muchos mas (http://www.google.com/search?q=php+template+language).

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
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.

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.

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
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 (http://docs.djangoproject.com/en/1.3/topics/templates/), esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty (http://www.smarty.net/), otros 19 (http://www.webresourcesdepot.com/19-promising-php-template-engines/), y muchos mas (http://www.google.com/search?q=php+template+language).

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).

¿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:


<?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:


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

roman
04-04-2011, 19:13:06
Dices una cosa, luego otra...

No, no. Es que no me estás entendiendo y cuando dices:

Ya he dicho que para algunos esto no es problema, como para tí, Román y otro compañeros.

nos pones en la misma condición que

Por otro lado, algunos desarrolladores PHP no vean problemas con mezclar código PHP, JavaScript, CSS, HTML en un mismo archivo

Yo jamás mezclo javascript, css y html. O, por lo menos, cuando lo hago sé que estoy haciendo porquerías :D

Ahora, veamos lo de la mezcla de PHP y HTML.

¿Se pueden mezclar? Sí.

¿Se deben mezclar? Depende.

Una cosa es que en un mismo script pongas todo el código de conexión al servidor, consulta de datos, implementación de la lógica y, para colmo, generación de HTML. Eso, en mi opinión, es incorrecto.

Pero nadie te obliga a una mezcla así tan libertina. Incluso sin recurrir a cosas como SMARTY puedes tener plantillas muy limpias donde el único código PHP que ves es básicamente para "rellenar huecos" e iterar una lista de objetos.

A eso me refiero.

// Saludos

D-MO
04-04-2011, 19:14:24
...la mezcla de código.
En Python es de sí o sí meter el html dentro de una cadena para "imprimirla" y mostrarla en pantalla.

Lo que pasa es que comparas el sistema de plantilla se Django con un archivo único de php. ¿Está esto balanceado?

Pongamos las cosas por igual, con Python a Django Template Language y con PHP a Dwoo, el escenario es el siguiente:

El usuario hace una petición a la página precio_actualizado.html con la intención de que se le muestre el precio alctual del producto X.

Django:

app_name/views.py

def precio_actualizado(request, page):

precio = 12345

return direct_to_template(request, template='precio_actualizado.html', {'nuevo_precio': precio )



template/precio_actualizado.html

<html>
<head>
<title>Precio Actualizado</title>
</head>

<body>
El precio actual es {{ nuevo_precio }}
</body>
</html>


Con PHP + Dwoo:
precio_actualizado.php

<?php

include 'path/to/dwooAutoload.php';

$dwoo = new Dwoo();

$precio = 12345

$dwoo->output('templates/precio_actualizado.tpl', array('nuevo_precio'=> $precio ));

?>


templates/precio_actualizado.tpl

<html>
<head>
<title>Precio Actualizado</title>
</head>

<body>
El precio actual es { $nuevo_precio }
</body>
</html>


El ejemplo quizá no sea el mas complejo pero sirve para que nos demos cuenta que con ambos podemos trabajar de la misma manera y casi con la misma plantilla. Ahora, ¿Que dices?

Saludos.

D-MO
04-04-2011, 19:18:05
¿existe alguna forma fácil de hacer una página web dinámica sin mezclar código PHP y HTML?
Mira mi mensaje anterior, ejemplo de Dwoo (http://dwoo.org). Mira el anterior a este donde me pongo el link a 19 motores de plantillas para PHP.

Saludos

roman
04-04-2011, 19:20:53
Pero, incluso puede ser así:


<html>
<head>
<title>Precio Actualizado</title>
</head>

<body>
El precio actual es <?php echo $nuevo_precio ?>
</body>
</html>


Y, anunque no es exacto, el uso de la plantilla puede ser algo tan simple como:


$nuevo_precio = 12345;
include("/templates/precio_actualizado.tpl");


Es decir, que en la plantilla sí se estaría mezcando código HTML y PHP. El punto es que esto no necesariamente es malo.

Repito, lo malo es la mezcla de código de presentación y código de la lógica.

// Saludos

Chris
04-04-2011, 19:21:29
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?

No, ya ho ha dicho D-MO. De hecho en Python es pero que en PHP, pues necesita incluir "echo's" para todo.

D-MO
04-04-2011, 19:27:01
La solución propuesta por roman es perfectamente aceptable. Yo he citado los motores de plantillas para poner a PHP en la misma posición que Django.

Saludos.

Chris
04-04-2011, 19:41:07
Estimados compañeros, mejor dejemos la discusión que no llegamos a nada. No se trata que porque en A no se pueda, entonces le perdonamos a B que tampoco se pueda. Además el tema tiende a preferencias, lo que hará que nunca estemos de acuerdo. Hay quienes prefieran tener la posibilidad de colocar código PHP en las plantillas. Es una gran posibilidad para crear plantillas más "potentes" y además tener mejor control. Aunque esto último es relativo. Pero hay otro que prefiramos las cosas más limpias desde nuestros puntos de vista.

Al G. pidió opiniones, y la mía es en síntesis que, al ser PHP un lenguaje especializado para la Web, ya debió o debería de proporcionar herramientas o métodos que de forma fácil permitan a los desarrolladores no mezclar código HTML y PHP si lo prefieren. Talvez integrar dentro del lenguaje a Dwoo, por dar un ejemplo, a cómo una vez lo hicieron con el Plugin de MySql.

Y por último, cómo un niño necio que le encanta "jincar" :D :D :D, no me gusta la sintaxis de C++Script, digo PHP :p

D-MO
04-04-2011, 20:04:33
...Talvez integrar dentro del lenguaje a Dwoo
¿Y para qué integrarlo si el desarrollador tiene la libertad de utilizar el motor de plantillas que desee?
...no me gusta la sintaxis de C++Script, digo PHP :p
Si no te gusta la sintaxis, pues bien, es tu decisión, eres libre de decidir que te gusta o que no, sin embargo, eso no significa que sea mejor o peor que otro.

Saludos

mamcx
04-04-2011, 20:45:11
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 (http://en.wikipedia.org/wiki/PHP#Release_history)), 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.

mamcx
04-04-2011, 20:51:33
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?

Si claro. Es de hecho la forma natural de hacerlo.

Esto es el estilo estandar de trabajar con cadenas:


print "Una cadena que muestra %(variable)s" % {'variable':123}


Y la libreria estandar tiene un sistema de plantillas:

http://docs.python.org/release/2.5.2/lib/node40.html

Por eso, en python es la forma natural de casi todos los frameworks de sitios web, el usar plantillas. De hecho, hay muchas:

http://www.webwareforpython.org/Papers/Templates/

(Hay un par que permite codigo espaguetti, pero en la comunidad de python no es popular. Eso es para la gente que viene de otros lenguajes)

roman
04-04-2011, 21:11:59
Hay una razón de peso por la cual desestime a PHP...

Originalmente (ver historia (http://en.wikipedia.org/wiki/PHP#Release_history)), 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.


PHP cuenta con soporte a objetos desde su versión 4, que tiene ya bastantes ayeres. De todas formas, aunque para ti puede ser una razón válida para desestimar un lenguaje, en mi opinión sólo aplicaría si lo que hubiera en estos momentos fuera PHP 3.x.



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.


El modelo MVC no se ha agregado a PHP. No es una característica inherente al lenguaje. Más correcto sería decir que cuando evaluaste PHP, no había un framework con soporte MVC que te convenciera.


Esto tiene una implicación. Una gigantesca cantidad de código PHP que anda por ahí es del tipo spaguetti.


¿Y?

Si eso fuera una razón válida para desestimar un lenguaje, tendríamos que desestimar a Delphi igualmente.


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.

Aquí ya estás hablando con más seriedad. Das tus razones -muy válidas- de porqué piensas que es mejor uno que otro o porqué te gusta más. Y, de hecho, son las cosas que pueden animar a uno a interesarse en el lenguaje.

Cosa muy distinta de decir que PHP es para hacer paginitas sólo porqué a ti en lo personal no te gusta.

// Saludos

Chris
04-04-2011, 21:41:26
Cosa muy distinta de decir que PHP es para hacer paginitas sólo porqué a ti en lo personal no te gusta.
Creo que cuando mamcx se refiere a que PHP es solo para hacer "paginitas", no es por menospreciar. Sino que prácticamente solo se usa en la Web. ¿Cuánto código PHP hay escrito para programas de escritorio o algo similar? Muy poco. En Python? mucho! Muchos de los programas que se distribuyen con una distribución Linux fueron programados en Python en su totalidad o en parte.

Además, lo que ha dicho mamcx acerca de la historia de PHP es algo que no se puede Ignorar. PHP nació sin diseño y ha venido desarrollándose sobre la marcha. PHP nació sin filosofía y sin visión propia. Es por eso que hay tantos cambios versión tras versión. Además de sus varios problemas de seguridad (corregidos en versiones anteriores).

Desde mi punto de vista, creo que PHP hizo un buen trabajo en la transición de la Web 1.0 a la 2.0. Ofreció un lenguaje libre para que los desarrolladores ofrecieran contenido más rico en un momento donde no había muchas opciones. Hoy la situación es distinta, hay lenguajes más modernos y maduros sobre los cuáles puedes respaldarte.

mamcx
04-04-2011, 22:10:53
Creo que cuando mamcx se refiere a que PHP es solo para hacer "paginitas", no es por menospreciar.

Y en la pagina de wikipedia me acuerda de donde salio ese tiro:


PHP originally stood for "Personal Home Page",

http://en.wikipedia.org/wiki/PHP

En la época, habia perl, lisp... o c++. Tener un lenguaje para hacer la paginita personal... eso fue revolucionario. Ese fue su inicio, su proposito. Sigue siendolo! Es como el visual basic de la generacion web.

Se presta para la broma ocacional, si. Pero cuando un lenguaje logra iniciar a muchos a la programacion es porque en primer lugar, es menos "serio" y menos "hardcore" que lo que estaba antes...

roman
04-04-2011, 22:21:38
Creo que cuando mamcx se refiere a que PHP es solo para hacer "paginitas", no es por menospreciar. Sino que prácticamente solo se usa en la Web. ¿Cuánto código PHP hay escrito para programas de escritorio o algo similar? Muy poco. En Python? mucho! Muchos de los programas que se distribuyen con una distribución Linux fueron programados en Python en su totalidad o en parte.


No entiendo esta insistencia. PHP no sirve para programar aplicaciones de escritorio. Lo que hay para ello es una broma...

Cuando se habla de desarrollo con PHP es siempre para web. Es estéril cualquier comparación aplicaciones de escritorio.


Además, lo que ha dicho mamcx acerca de la historia de PHP es algo que no se puede Ignorar. PHP nació sin diseño y ha venido desarrollándose sobre la marcha. PHP nació sin filosofía y sin visión propia. Es por eso que hay tantos cambios versión tras versión. Además de sus varios problemas de seguridad (corregidos en versiones anteriores).


No es que se ignore. Pero argumentarlo como contra del lenguaje para un desarrollo actual es desconocimiento o simple mala leche. Aun cuando PHP carga todavía algunos de los problemas debido a su inicio como personal home page, PHP5, con Zend 2 fue escrito totalmente desde cero.[/QUOTE]

// Saludos

movorack
04-04-2011, 22:28:47
Pero cuando un lenguaje logra iniciar a muchos a la programacion es porque en primer lugar, es menos "serio"

No me acuerdo cual de los usuarios del club había dicho que en muchos lugares enseñan pascal o delphi para iniciar en la programación. pues su sintaxis mas natural los hace adentrarse en este mundo mucho mucho mas facil que un C/C++.

PHP originally stood for "Personal Home Page",

El encantador de perros (http://www.encantadordeperros.es/) dice: "Los perros viven el hoy, el ahora... los humanos tenemos la penosa costumbre de vivir en el ayer"

Es como el visual basic de la generacion web.

Es tu opinión! (deberían quemarte vivo por blasfemo :D)

Chris
04-04-2011, 22:33:28
No entiendo esta insistencia. PHP no sirve para programar aplicaciones de escritorio. Lo que hay para ello es una broma...

Cuando se habla de desarrollo con PHP es siempre para web. Es estéril cualquier comparación aplicaciones de escritorio.

Entonces, en el sentido del Hilo y la pregunta de Al González, entonces no vale la pena aprender PHP, porque solo te va a servir para programar páginitas, a cómo dice mamcx. Entiendo que quedamos de acuerdo en eso. En resumen, como consejo a Al, mejor aprende Python que te servirá para más que la Web.


No es que se ignore. Pero argumentarlo como contra del lenguaje para un desarrollo actual es desconocimiento o simple mala leche. Aun cuando PHP carga todavía algunos de los problemas debido a su inicio como personal home page, PHP5, con Zend 2 fue escrito totalmente desde cero.
Tú lo has dicho.... a pesar de ser escrito desde cero, PHP carga todavía algunos problemas debido a su inicio como PHP (Personal Home Pages). El caso es, que esto problemas aún no solucionados, son tan grandes que definen al lenguaje, desde mi punto de vista.

roman
05-04-2011, 15:56:38
Tú lo has dicho.... a pesar de ser escrito desde cero, PHP carga todavía algunos problemas debido a su inicio como PHP (Personal Home Pages). El caso es, que esto problemas aún no solucionados, son tan grandes que definen al lenguaje, desde mi punto de vista.

Yo a los problemas a que me refiero son relativos básicamente a nomenclatura. No hay un acuerdo estricto en como llamar las funciones. Fuera de eso, el soporte de clases es bastante completo.

Hasta ahora no he visto un sólo argumento contra PHP que no esté basado en el prejuicio, el desconocimiento o la simple aversión personal, supongo porque da caché, hablar mal de lo que es popular.

Para criticar algo se tiene que conocer. Se juzga mucho al PHP actual por lo que fue en sus inicios. Recalcan lo del origen del nombre como si eso fuera una prueba de lo malo que es el lenguaje. Hablan de la mezcla del código HTML y PHP sin realmente haberse detenido a examinar si eso es inherentemente malo.

// Saludos

mamcx
05-04-2011, 19:27:36
Hablan de la mezcla del código HTML y PHP sin realmente haberse detenido a examinar si eso es inherentemente malo.

// Saludos

Y cuando es bueno?

No se si hay aquí muchos que sufrieron la época de ASP, PHP (antes de los frameworks nuevos), ASP.NET con html inline, etc...

Con la excepción de hacer una única pagina (o un conjunto muy bajo) donde hacer todo un proyecto seria pesado, no veo un argumento solido en hacer un proyecto de un sitio web donde se mezcle rutinariamente el html/js/css/lenguaje servidor... asi que roman, cual es el caso de uso que me he perdido en estos 10 años???

roman
05-04-2011, 20:07:28
Y cuando es bueno?

No se si hay aquí muchos que sufrieron la época de ASP, PHP (antes de los frameworks nuevos), ASP.NET con html inline, etc...

Con la excepción de hacer una única pagina (o un conjunto muy bajo) donde hacer todo un proyecto seria pesado, no veo un argumento solido en hacer un proyecto de un sitio web donde se mezcle rutinariamente el html/js/css/lenguaje servidor... asi que roman, cual es el caso de uso que me he perdido en estos 10 años???

Te invito a que leas con detenimiento lo que se ha dicho aquí. Al igual que Chris, supones que la mezcla de código necesariamente lleva a una mezcolanza de html, php, css, javascript en un sólo archivo.

¿Cuándo es bueno? Cuando el código PHP que mezclas con HTML es únicamente código para rellenar huecos, iterar registros, etc. Código únicamente para controlar la presentación (¿Cuántas veces habré escrito esto en este hilo?). Ejemplos de su uso ya se han dado aquí.

¿Desde cuándo puede hacerse esto? Desde siempre. No se requieren frameworks nuevos. Es algo que se puede hacer desde PHP 3. Claro que ya depende de cada quien qué tan feo quiera programar.

Además, nadie te obliga a mezclar html y php. Puedes usar smarty u otro sistema de plantillas. Cosa que a mi en lo personal no me gusta porque requiere un "parseo" extra.

¿Que PHP es susceptible de "caer" en manos de programadores que escriban caóticamente? Sí. Y Delphi también ¿Y?

Se puede criticar una herramienta. Nadie debe asustarse ni ofenderse por ello. Y examinar otras opciones, como Python, puede ser muy enriquecedor. Lo que me parece inapropiado es criticar con base en malas técnicas de programación, creencias infundadas y desconocimiento del estátus actual de dicha herramienta.

// Saludos

mamcx
05-04-2011, 22:53:29
¿Cuándo es bueno? Cuando el código PHP que mezclas con HTML es únicamente código para rellenar huecos, iterar registros, etc.
....

¿Que PHP es susceptible de "caer" en manos de programadores que escriban caóticamente? Sí. Y Delphi también ¿Y?


Ok, eso esta claro. Osea, es lo mismo que se hace de forma normal desde que salió el ASP y herramientas similares. En teoria se usa para exactamente lo que dices. Todavía es el estilo por defecto, a la hora de exponer a los nuevos desarrolladores.

Lo cual degenera en que los desarrollos salgan de forma caótica. Entonces es malo. Se que el punto que estas anotando es que un buen programador le dará un uso apropiado... en lo cual concuerdo. Pero cuanto de eso existe por ahi?

Entonces, si una herramienta X permite un manejo mejor, mas sencillo, loquesea por defecto y hace que el caso menos ideal sea una rareza, por ende es mejor.

Es como discutir entre transmision automatica y manual. En manos expertas, la manual es mejor. Pero es claro que la automatica es superior en terminos generales.

Y no se si estoy escribiendo de forma muy combativa o que, pero lo que he tratado de decir es que a la hora de elegir la herramienta, el ecosistema pesa mucho. Y si una mayoria de ese ecosistema no esta sobre un fundamento mas solido, tocara tarde o temprano pelearse con el.

Para algunos que son desarrolladores disciplinados ni le veran el lio... porque son disciplinados. Pero a la vez, si eres disciplinado y tienes por default un framework mejor diseñado, tambien te beneficia.

Es como con la VCL. Si se compara con el API raso de windows (o peor, la MCF) es muy notable su superioridad... no tecnica, sino en estilo.

Tonces, si alguien va a empezar con PHP, deberia seriamente ignorar los ejemplos mas comunes, y usar una separacion tipo MVC. Y tener la disciplina de no mezclar presentación con lógica (un esfuerzo que ha probado su inutilidad a larga escala en todos los años que existen las herramientas de programación que lo promueven o permiten... pues delphi ahi lo tienes) o mejor usar un sistema de plantillas... (hay casos muy concretos donde es bueno la mezcla de todo eso... y el caso #1 solo te afecta si tienes un sitio de altisima demanda....)

roman
06-04-2011, 15:48:03
Entonces, si una herramienta X permite un manejo mejor, mas sencillo, loquesea por defecto y hace que el caso menos ideal sea una rareza, por ende es mejor.


Este es un punto a tener en cuenta. Me gusta ese argumento. Sin embargo, eso no implica que PHP sea un lenguaje malo.


Lo que dices, del ecosistema, la facilidad con la que se pueden hacer malos códigos, etc. aplica también a Delphi, y, sin embargo, no veo que a éste lo cortes con la misma tijera que a PHP en ese aspecto. Porque, entonces, siguiendo tu línea de argumentación, tendrías que concluir que Delphi es el Visual Basic del escritorio :eek:

Y en mi opinión, confundes el lenguaje en sí con técnicas de programación. Tener una buena metodología, como lo podría ser MVC, no es inherente al lenguaje. Como ya te han mencionado aquí, MVC no es parte de Python. Django, un framework para Python, trabaja con la metodología MVC, así como muchos framework para PHP lo hacen.

Pero vayamos con tus ejemplos automovilísticos. Estarás de acuerdo que un Jaguar lo puede manejar cualquier mequetrefe con resultados caóticos. Pero, un Jaguar es un Jaguar...

http://www.arpem.com/coches/coches/jaguar/stype/flash/2007/jaguar-s-type-f.jpg

¿Lo descartamos porque puede ser mal manejado?

// Saludos

mamcx
06-04-2011, 18:31:41
http://www.arpem.com/coches/coches/jaguar/stype/flash/2007/jaguar-s-type-f.jpg

¿Lo descartamos porque puede ser mal manejado?

// Saludos

Hombre, pues claro! Y yo me encargo de manejarlo bien... asi que pasenme sus jaguar ;)

Julián
06-05-2011, 22:29:23
A raiz de una conversación en otro foro me he acordao de mis pruebas con python y django. Puse algunos mensajes por aquí relatando mis experiencias desde cero, y no es que me haya cansado. Es que llegué a un punto en el que me dí cuenta de que estaba mas tiempo buscando soluciones a problemas, pero ojo, a "problemas inesperados", que escribiendo código que funcionase.

Aún recuerdo las primeras versiones de delphi, en las cuales los límites estaban en mis conocimientos, y no en "problemas inesperados" del propio Delphi.

Me refiero a cuando haces algo y no funciona y piensas "¡Cojones, pero si he seguido las instrucciones, si esto se supone que DEBERÍA funcionar, y sin embargo, no funciona" y cuando te vas dar cuenta estás buscando y rebuscando por foros de internet una solución, una solución que sueles tardar un buén rato en encontrar, si la encuentras.

Es el tipo de errores que empezaron a abundar con el Delphi 6.0. Errores de la herramienta, del entorno, de yo que sé.

El caso es que con Python y django me paso lo mismo: en un momento dado me encontré buscando soluciones a problemas de ese tipo.

A lo mejor mas adelante, si alguien se anima con este foro y completa estos hilos que hemos empezado a modo de cursos o tutoriales, pues cambia la cosa.

Yo al menos de momento, para lo que necesito, o sea, aplicaciones web, php lo veo mucho mejor que python, y django solo me parece un framework como cualquier otro. Bueno, y en el futuro a corto o medio plazo, ni python ni php ni apache ni django creo que tengan nada que hacer frente a node.js. Eso si que es el futuro de la programción web.

Pues eso, a ver si alguién hace que me coma mis palabras, pero con código, no con teoría. :D :D

rastafarey
17-06-2011, 03:03:26
Descartaron Perl simplemente por que no lo conocen o le tienen pavor. Pero lespuedo asegurar que estan raspados. Perl es un lenguaje super potente. Posse codigo compilado y preconpilado. Asi que lean un poquito y despues lo descartan.

Es como descartar C o C++ por no ser nada facil pero resulta ue es lo mejor que existe.

Al González
17-06-2011, 04:17:12
Yo también tengo poderes, les puedo mostrar. ;)

Este hilo es para recabar información sobre los tres lenguajes y ayudarnos a tomar decisiones de por qué deberíamos optar por uno y no por otro. El espacio sigue y seguirá abierto a la exposición de argumentos y no creo que haya quedado descartado rotundamente ningún lenguaje, si bien yo ya me inclino por aprender Python antes que los otros dos.

C o C++ no es lo mejor que hay (y menos con esa horrible sintaxis :D). El mejor lenguaje de programación es aquel que se adapta de mejor forma a las circunstancias de un caso y lo lleva a buen puerto. Es decir, cualquier lenguaje tiene todo el derecho de ser declarado, subjetivamente, «lo mejor que existe». Pero hace falta añadir unos cuantos "para..." y otros tantos "porque..." para pasar de lo subjetivo a lo objetivo.

Un abrazo entre buenas personas.

Al González.

roman
17-06-2011, 15:23:06
Descartaron Perl simplemente por que no lo conocen o le tienen pavor. Pero lespuedo asegurar que estan raspados. Perl es un lenguaje super potente. Posse codigo compilado y preconpilado. Asi que lean un poquito y despues lo descartan.

Es como descartar C o C++ por no ser nada facil pero resulta ue es lo mejor que existe.

Tienes razón. No se debe descartar un lenguaje por mero desconocimiento o porque de entrada luce complicado. En tal caso, valga la analogía, deberíamos deshacernos del chino, el alemán, el árabe, etc.

No obstante, como dice Al, este hilo se abrió para recabar opiniones, y hasta el momento nadie, ni siquiera tú, han hablado de los beneficios de Perl. ¿Por qué no nos das una opinión más formada de la que evidentemente tenemos quienes hasta ahora hemos participado?

// Saludos

martinartaza
18-07-2011, 15:09:33
Aunque use poco, python y php (nada de perl, la verdad que me asustaron la fama que tuvo siempre perl, nunca me olvido de una tira cómica de python http://www.tiraecol.net/modules/comic/comic.php?content_id=15)
Hace como 4 años use python durante 3 a 5 meses y hice lo siguiente
1 - Probe hacer programas de escritorios y no me fue muy bien
2 - Logre compilar código que tenia la librería panda y vi al panda girar y estuvo chulo pero lo deje ahí nada más.
3 - Hice una animación simple en blender (creo que esto lo hice otro año) estuvo fenomenal.
4 - Trate de hacer web (en ese momento no existia django o yo no lo conocia) y tampoco me fue muy bien, pero vi código asombroso correr en el browser (con la condición que la maquina de destino tenga instalado el interprete de python) y era increíblemente simple de hacer y poderoso.
5 - A lo anterior hice programas usando la libreria VPython (visual python o algo así), y estuvo chulo las animaciones en el browser.
6 - Y lo que hice en serio y le tome como un mes (en esa epoca de vacaciones haciendo eso nada más), fue tratar de simular el comportamiento interno de un Micro procesaror MIPS (uno simple, uniciclo de 6 instruccion). Esto no lo hubiere ni si quiera podido encarar con delphi (que es el que mejor manejo) me quede sorprendido en ese epoca de la sencilles de programar con python, esto creo que me hizo fan de python, porque python es multiproposito, no solo es orientado a objetos, también es orientado a lista, el tipo de datos diccionario es sorprendente.

Entonces si fracase en más del 50% de las cosas que encare en python, porque elijo python, porque en meses podes aprender un montón de cosas con python, además las cosas que encare, veía que funcionaba y listo pasaba a otra cosa.

Ahora sumado que :
1 - Google apoya python (subvenciono al creador de python)
2 - Existen framework para web django.
3 - Escribir software para escritorio, no es mi problema ya que lo encaro con Lazarus (creo que es la mejor opción). (A mí parecer no es muy lindo python para escritorio, no digo que no se pueda pero no es ...... rentable por asi decirlo)
4 - Ahora python se integra con postgres de una manera que da miedo http://python.org.ar/pyar/PlPython
Es el equivalente de usar funciones escritas por el usuario (en delphi a c++) para firebird, pero con la facilidad que no tienes que grabar en una dll o so, y que corre tanto en win como en linux.
5 - JPython da la facilidad de programar en python y correrlo en una maquina java. http://www.jython.org/
6 - Puedes hacer juegos con mayor simplicidad que con c++ ahí tienes una pagina para hacer juegos tanto en c++ como en python http://www.losersjuegos.com.ar/

A pesar de todo esto, no me doy tiempo ahora para dedicarle, pero lo veo sorprenderte a este lenguaje, sobre todo su curva de aprendizaje.

angelholberg
20-10-2011, 02:07:37
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.

Chris
20-10-2011, 07:20:08
¡MUERTE A PHP! :D ;)

martinartaza
20-10-2011, 15:26:13
¡MUERTE A PHP!

Parece ser que no gusta estar en lo menos popular, antes era mucha Visual Basic ahora es muera PHP.

mamcx
20-10-2011, 17:19:56
El caso es que con Python y django me paso lo mismo: en un momento dado me encontré buscando soluciones a problemas de ese tipo.


Mi experiencia ha sido inversa. Los problemas raros casi no los encuentro, aunque si es cierto que busco mas en foros y stackoverflow... pero mas que todo para ahorrarme el trabajo de hacerlo yo solo ;). He de notar que la programación web siendo mas "simple" en principio es mas demandante porque exige mezclar muchísimas cosas a la vez, es un target que se mueve mucho y tiene requerimientos adversos y atípicos a la programación de escritorio (como el manejo de multiples conexiones concurrentes, retornar en milisegundos, el HTML que no es estándar entre los navegadores, mayor preocupación por la BD, la invalidación de los caches, configurar servidores y demás cosas)

Django es una libreria anomala, en el sentido que siempre he estado con la ultima version de esta, la actualizo en cualquier momento y nunca me he topado con un problema serio (tengo la costumbre de subir version a todas las librerías que uso tan pronto como me es posible, le tengo pavor a la obsolescencia).

Me intriga saber que encontraste que te freno...

Julián
20-10-2011, 19:46:41
Me intriga saber que encontraste que te freno...


Pues hace ya tiempo y no me acuerdo concretamente, tendría que rebobinar mucho, pero lo que pasó fue muy sencillo: estuve siguiendo tutoriales de la web, creo que de la misma web de pyhton, copiandolos y viendo lo bien que funcionaban en el navegador, y me estaba gustando bastante, pero llegué a un punto en el cual, una vez las pruebas que hacia ya eran un poquito mas complejas, aunque no mucho, y me encontré con que habiendo seguia las instrucciones correctamente, y no me funcionaban. Y no encontraba solución buscando en internet.

Si saco algún rato intentaré encontrar en donde me atranqué.

Un saludo!