Como Hacer Una Actividad Sugar

¿Qué tengo que saber para hacer una Actividad Sugar?

Para escribir una Actividad Sugar debes saber algo de los temas que menciono en este capítulo.

No hay que ser experto en ninguno de los temas, pero es necesario mantener como referencias marcadores las páginas web de cada uno y darle una ojeada a los tutoriales mencionados. Esto te ayudará, también, a entender los ejemplos de código que iremos viendo.

Python

Python es el lenguaje más usado para escribir Actividades.  Aunque se usen otros lenguajes, la mayoría de las Actividades usan algo de Python en ellas. Sugar incluye una API (Interfaz de Programación de Aplicaciones) para Python que simplifica la creación de  las Actividades. Es bastante inusual, aunque posible, desarrollar una Actividad sin utilizar nada de Python (como en Etoys).

Todos los ejemplos de este libro están integralmente escritos en Python.

Existen lenguajes compilados y lenguajes interpretados. En el lenguaje compilado el código que uno escribe es traducido a lenguaje de máquina y esta traducción es la que realmente se ejecuta en el sistema operativo. En un lenguaje interpretado interviene otro programa, llamado intérprete, que va leyendo el código que se escribió y haciendo lo ahi indicado (esto está demasiado simplificado pero suficientemente aproximado a la verdad para este capítulo).

Python es un lenguaje interpretado. Todos los lenguajes, interpretados o compilados, tienen ventajas específicas. Las ventajas de Python para el desarrollo de Actividades son:

  • Es portable. En otras palabras, permite que tu programa corra en distintos procesadores y distintos sistemas operativos sin tener que hacer una versión para cada uno. El programa compilado funciona según el sistema y el procesador para el cuál se haya compilado.
  • Como el ejecutable es el propio código fuente, no es posible darle a alguien un programa en Python sin darle el código fuente. Hay entonces mucho material para estudiar y se puede aprender muchísimo sobre programar Actividades estudiando código escrito por otros.
  • Es un lenguaje fácil de aprender para un programador principiante pero a la vez tiene las características que un experto necesita.
  • Su uso está muy difundido. Google es uno de los usuarios más famosos de Python. Tanto lo usan, que lanzaron un proyecto llamado "Unladen Swallow" para que los programas en Python corran más rápido.

La gran ventaja del lenguaje compilado es que puede correr mucho mas rápido que el interpretado. Pero, en la práctica un programa Python puede tener una performance igual de buena que un programa escrito en lenguaje compilado. Para entender esto, hay que entender como está hecho un programa en Python.

Se conoce a Python como un lenguaje "glue" (pegamento en inglés). La idea es poder tener módulos escritos en otros lenguajes (generalmente C y C++) y "envolverlos" en Python. Python se usa para pegar (glue) estos módulos y así crear aplicaciones. En la mayoría de las aplicaciones, la mayor parte de las funciones del programa se hacen a través de estos módulos compilados. Es poco, entonces, el tiempo que la aplicación gasta en correr el código Python que es el que integra estos módulos en una sola unidad.

Además, no sólo las Actividades usan Python, la mayor parte del entorno Sugar está escrito en Python.

Si ya programaste en otros lenguajes, hay un buen tutorial para aprender Python en el propio sitio: http://docs.python.org/tutorial1 

Si estás recién empezando a escribir programas, tal vez sea mejor mirar Invent Your Own Computer Games With Python, que puede leerse gratis en http://inventwithpython.com/.

PyGTK

GTK+ ( Gimp Tool Kit +) es un set de módulos para crear interfaces de usuario. Estos módulos incluyen botones, barras de desplazamiento, listas desplegables, etc. Es el utilizado por el escritorio de GNOME y por las aplicaciones que allí funcionan. Las actividades de Sugar usan un tema de GNOME que les da a estos controles hechos en GTK+ un aspecto único.

PyGTK es el set de librerías de Python que te permiten usar los módulos de GTK+ en programas Python.  Para ver cómo se usa, hay un tutorial en el sitio de PyGTK: http://www.pygtk.org/tutorial.html.

PyGame

La alternativa al uso de PyGTK en tu Actividad es usar PyGame (game es juego en inglés). PyGame puede crear el tipo de imágenes llamada "sprite" y moverlas alrededor de la pantalla ( "sprites" refiere a los duendes que hacían de personajes en videojuegos) . Como podía esperarse Pygame se usa principalmente para escribir juegos.  Su uso en Actividades es menos frecuente que el de PyGTK.

El tutorial para aprender PyGame está en el sitio de PyGame: http://www.pygame.org/wiki/tutorials . En el sitio hay también un lote de proyectos que se pueden descargar y probar.

  2 

  1. NT: Recursos en español acerca de python, pygame, pygtk (2011)

    https://sites.google.com/site/sugaractivities/ 

    http://iie.fing.edu.uy/cursos/course/view.php?id=173

    https://sites.google.com/site/flaviodanesse/programacion-p

    http://ceibaljam.org/drupal/?q=documentacion

    gstreamer: http://codigosdeejemplo.blogspot.com/


    ^
  2. Traducido Ana Cichero Uruguay^