Diabólico python … ¿o son cosas mías?

 

El otro día me dio por retomar python y en concreto, me puse a ver cómo podía enviar y recibir correos con python y gmail. Y la verdad, es cada vez entiendo menos el éxito de python.

Me puse a googlear, para ver cómo se hacía lo del envío y recepción de correo. Sobre el envío hay muchos ejemplos y tutoriales, no me costó mucho hacer un poco de copy-paste de esos ejemplos, ajustarlos a lo que quería y ponerlos en marcha. La recepción de correos es otro tema, apenas hay tutoriales o, por lo menos, no los he encontrado, salvo uno que parece copiado una y otra vez que es el de ver cuántos correos tengo y sacar por pantalla, en bruto, lo que recibimos del servidor. No me extraña, porque python se usa sobre todo con aplicaciones web y en estas aplicaciones web lo habitual es enviar correos, no leerlos. Me costó un montón encontrar cómo se "parsea" el mensaje leido, para extraer sus adjuntos, el texto, etc, etc. Al final encontré un ejemplo en un foro perdido de alguien que lo había puesto para contestar a alguien.

Pero bueno, eso son mis peripecias concretas y no tienen nada que ver con que python sea bueno o malo. Las cosas que veo mal de python son las siguientes:

Por un lado, al no ser en absoluto tipado, me da la impresión de que debe ser muy, pero que muy complejo, hacer y mantener un programa grande. O pones muy buenos comentarios, o nunca sabrás qué te esta llegando como parámetro en una función, qué tienes que pasar como parámetro a una función o qué te devuelve una función.

Los IDE lo tienen bastante dificil con los autocompletar. Desde luego la sintaxis coloreada ayuda mucho, pero lo fundamental para mí de un IDE es el autocompletar. Sin necesidad de ir a mirar dónde está definida la clase o sin tener que ir a la documentación, tener accesible qué métodos tiene y qué parámetros puedo pasarle. Eso, en python, con un IDE, es poco menos que imposible, salvo quizás (no lo he probado), que se haga el "new" en el mismo sitio. El único autocompletar que he visto lo que hace es ponerte los métodos que ya has usado para esa variable poco más arriba en el código. El primer autocompletar de esa variable sale vacío, el segundo sale con el método que hayas usado en el primero y así sucesivamente.

Bueno, el autocompletar, aunque es una ayuda importante, no sería tan grave si la documentación estuviera en condiciones. Pero me temo que, al menos para mí, tampoco es así. Con esto del correo me he ido a la documentación, a ver los métodos de clases como POP3_SSL o SMTP. Vamos, por ejemplo, al método list() de POP3 o el retr() que está justo detrás. Bien, ambos devuelven una cosa estilo (response, [‘message num_octects’, … ], octects). ¡¡ Mande !!. Lo de response pone más arriba que es el texto de respuesta del servidor, así que en principio no hay mucha pega. Lo de message num_octects… bueno, intuiremos que es un string por aquello de que está entre comillas, intuiremos que es el número de bytes del mensaje y que esa lista tiene tantos números-string como mensajes. Lo del octects del final ya se me escapa. También es cierto que eso que hemos intuido del segundo parámetro, lo he intuido después de haber hecho el ejemplo, porque en mi primera lectura me sonó a chino.

Dicen que la ventaja de python sobre java es que se escribe menos código (ver imagen), pero mi impresión es que cuesta más escribirlo. Y desde luego, me hace la impresión de que cuesta muchísimo más mantenerlo. Pero si tiene el éxito que tiene y se usa tanto, supongo que todo esto en realidad son las impresiones de un novato mal acostumbrado a java. Seguramente estoy equivocado y tendré que seguir con ello para ver si llego a acostumbrarme.

Las mujeres piensan en java, los hombres en python.

Entradas relacionadas:

Esta entrada ha sido publicada en python y etiquetada como , , . Guarda el enlace permanente.

3 respuestas a Diabólico python … ¿o son cosas mías?

  1. blaxter dijo:

    Los «problemas» que estás comentando no son de python, son de los lenguajes de script.

    Para programar en ellos (ruby, python, perl) todo tiene que documentarse, y hacerse bien. Hay que pensar mucho, muchísimo más que programando en algo tipo java, pero también obtienes muchísima más productividad. El problema está en que si trabajas en un equipo, el resultado será tan bueno como el peor eslabón que lo forme, es decir que si no tienes buenos programadores, no les pongas a hacer una aplicación en perl, porque eso será un desastre.

    Aunque desde luego para hacer programas grandes (de muchos cientos de miles de líneas) un lenguaje de script no es una opción por los problemas que comentas (pero ahí ya estamos en otras ligas).

    ps: a mi tampoco me gusta python, al menos frente a ruby o perl 😛

  2. Joaquin Fernandez Campo dijo:

    Primero a mi python me encanta. No he cacharreado mucho todavía con el pero lo que he hecho me ha gustado. De los problemas que mencionas:
    – Autocompletar: Netbeans. Es un plugin en desarrollo pero yo lo que lo he probado ha funcionado bastante bien.
    – Si tienes alguna duda si posteas la pregunta aquí http://www.stackoverflow.com seguro que te responden rápido.
    Saludos, Joaquín!

  3. Pingback: Diario de Programación » Blog Archive » Twitter

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.