La vida de colores…

Hola mundo..!!

Pués aquí programando con python :-)

Hace mucho tiempo que no paran de hablar de este lenguaje agunos miembros del gulegro (léase dflores, Attor) pués bueno, debido a un asunto que nos traemos con el omatrix, me he puesto a estudiar pyGTK (al mismo tiempo que python) y no ma.. esta DPM!!, es u lenguaje muy bonito, muy bien estructurado, legible, con una sintaxis increíble, y muchas cosas interesantes, listas, diccionarios, tuplas, funciones anónimas, etc, etc, etc, y un sin fin de API’s con las cuales se puede hacer prácticamente de TODO, desde conectar a una RDBMS (PostgreSQL, MySQL, ODBC), scanear imágenes (python-imaging-sane) hasta imprimir documentos y/o elaborar pdf’s (reportlab).

Pero la razón por la cual “enamoré” de este lenguaje fué al leer este archivo:


import pygtk pygtk.require('2.0')
import gtk
class HelloWorld:
   def hello(self, widget, data=None):
      print "Hola Mundo"
   def delete_event(self,widget, event, data=None):
      print "delete event occurred"
      return gtk.TRUE
   def destroy(self, widget, data=None):
      gtk.main_quit()
   def __init__(self):
      self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
      self.window.connect("delete_event", self.delete_event)
      self.window.connect("destroy", self.destroy)
      self.window.set_border_width(10)
      self.boton = gtk.Button("Hola Mundo")
      self.boton.connect("clicked", self.hello, None)
      self.boton.connect_object("clicked", gtk.Widget.destroy, self.window)
      self.window.add(self.boton)
      self.boton.show()
      self.window.show()
   def main(self):
      gtk.main()
if __name__ == "__main__":
   hello = HelloWorld()
   hello.main()

Comparado con éste hecho en C:


#include "gtk.h"
void hello (GtkWidget *widget, gpointer data) {
   g_print ("Hello World\n"); }
   gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
   g_print ("delete event occured\n");
   return (TRUE);
}
void destroy (GtkWidget *widget, gpointer data) {
   gtk_main_quit ();
}
int main (int argc, char *argv[]) {
   GtkWidget *window;
   GtkWidget *button;
   gtk_init (&argc, &argv);
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL);
   gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL);
   gtk_container_border_width (GTK_CONTAINER (window), 10);
   button = gtk_button_new_with_label ("Hello World");
   gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (hello), NULL);
   gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window));
   gtk_container_add (GTK_CONTAINER (window), button);
   gtk_widget_show (button);
   gtk_widget_show (window);
   gtk_main ();
   return 0;
}

Es el mismo programa, los dos hacen absolutamente lo mismo, es el Hola mundo de GTK, así, sin saber Python, chequen cual está mas entendible, la teoría con Python (como bien me lo dijo una vez dflores) es que “con Python los nóveles aprenden más rápido a programar, y los que ya saben aumentan su productividad

Así que ahora estoy programando en pyGTK :-D, de verdad que se los recomiendo ;-).

En otras cosas, quiero compartir con ustedes este wallpaper:

Hace muchísimo tiempo que no encontraba un wallpaper tan bien hecho, de verdad que está increíble.. lo pueden bajar de la sección Fotos->Wallpapers…

Bueno eso es todo por hoy, nos estamos viendo… NaCL U2

Leave a Comment