Showing posts with label programación orientada a objetos. Show all posts
Showing posts with label programación orientada a objetos. Show all posts

Monday, May 27, 2013

Curso de programación lúdica


Se me ha ocurrido organizar un cursillo de programación lúdica, en donde quienes asistan podrán aprender algunos trucos e ideas que les pueden ser útiles no solamente para hacer programas simpáticos, sino como parte de sus actividades profesionales si es que se dedican a escribir código.

Son cuatro sábados (3 horas por sesión) (de 4:30 pm a 7:30 pm), empezando el 15 de junio del 2013, y quizás una quinta sesión si acaso es necesario ponerla. Nos reuniremos en un lugar que está muy cerca de lo que era el toreo de 4 caminos. Solamente cinco "alumnos" que sepan programar en algún lenguaje de alto nivel, de preferencia C, Java, Python, etcétera.  El costo por alumno es de 2000 pesos por todo el curso, pero el quinto alumno será becado, es decir, a quienes les interese, mándenme un correo a morsa@la-morsa.com y díganme los motivos por los cuales deberían ser becados. A quienes puedan pagar, les sugiero le den la chance de ser becado a otro.

Requisitos:
  1. Computadora portátil
  2. Windows 7, Vista, XP
  3. Ganas de aprender
  4. Asistir a todas las sesiones
  5. Los materiales de software los pongo yo

El plan de trabajo es aprender -desde Delphi- algunas ideas en programación. Pienso que puede ser interesante. Avísenme a quienes les interese.

Friday, November 02, 2012

La programación en el siglo 21


La programación -decía algún gracioso- es de esas pocas cosas divertidas que se pueden hacer con los pantalones puestos. Y la realidad es que para quienes programamos (y en ocasiones vivimos de esto), el hacer que la computadora se comporte como queramos, que dé los resultados deseados, que haga los cálculos que necesitamos, es algo que de entrada es satisfactorio, porque de alguna manera nos damos cuenta del cómo tener que explicarle a una máquina lo que queremos que haga.

Evidentemente con los años las cosas en programación han cambiado notablemente. Quizás una de los primeros ambientes RAD (Rapid Application Development) fue Visual Basic, de Microsoft, pero pronto salieron otros entornos igual de atractivos para lenguajes mucho más poderosos que el relativamente simple Basic. Por ejemplo, Borland presentó Delphi 1.0 en 1994 y a decir de Philippe Kahn, el creador de dicha empresa, no buscaban competir contra Visual Basic, sino contra PowerBuilder (Sybase), el cual aún existe.

La idea atrás de RADs es crear entornos de programación donde los desarrolladores tengan a la mano una serie de componentes comunes: botones, barras de progreso, editores de textos, menúes, listas de objetos, imágenes, etcétera, de forma tal que puedan ponerse en la aplicación usando drag & drop, es decir, tomando el componente y soltándolo en la ventana del programa. Cada componente tiene una serie de propiedades y métodos, lo cual cumple estrictamente -en la mayoría de los casos- con el paradigma de la programación orientada a objetos (POO), la cual se utiliza ya comúnmente en cualquier entorno moderno. La gracia de esto es que el desarrollador solamente tiene que asignar qué tipo de acción va a ocurrir cuando se le dé click, por ejemplo, a un botón. Así, no tenemos que armar de cero la aplicación. Basta con poner los componentes que necesitamos y programar los eventos de los mismos.

Evidentemente cualquier RAD moderno tiene mejores habilidades, por ejemplo, la de crear componentes que hagan tareas muy específicas, basándose muchas veces en las bibliotecas y componentes ya existentes. Para la mayoría de los medios ambientes de programación modernos es fácil hallar muchos componentes de terceros para un sinfín de aplicaciones en particular. Por ejemplo, yo he hallado un tablero de ajedrez con una serie de facilidades que permite crear programas asociados con las actividades del ajedrez sin necesidad de tenerme que sentar a escribir un componente propio que valide las jugadas en el tablero, que anime los movimientos de las piezas en la pantalla, etcétera. Vamos, que ya viene todo el componente con esa funcionalidad que evita perder mucho tiempo rehaciendo una y otra vez lo mismo.

Lo mejor del asunto es que este paradigma que RAD ha impuesto por las facilidades que da a los programadores, ya existe para los dispositivos móviles. La mayoría de ellos no tienen entornos de programación. Es decir, no programamos directamente sobre el teléfono celular o la tablet, sino que usamos una herramienta en la máquina de escritorio (PC, Mac, Linux), que nos permite hacer el desarrollo deseado, usando un emulador para probar la aplicación que está siendo escrita (o mejorada). De nuevo, estos entornos de programación para los dispositivos móviles contienen una serie de componentes ya pre-establecidos que permiten desarrollar rápidamente aplicaciones, además de darle a los programas un medio gráfico similar en todo el sistema en el que se está programando (iOS es el mejor ejemplo de esto).


Hay incluso empresas que hacen entornos para programar en iOS, Android o Windows Phone bajo este paradigma. Casualmente, la idea de los RADs ha permeado incluso en medios ambientes que bien podríamos considerar obsoletos. Veo PocketStudio, un ambiente muy parecido a Delphi (se programa en Pascal), para crear apps para la Palm, el cual es comercial. Hay alternativas como Palmphi, que pretende ser un entorno como Delphi, pero cuyo lenguaje nativo es C. Para PocketPC hay también muchas herramientas de desarrollo que incluso siguen vigentes: Pocket Programming Language, que usa su propio lenguaje (el cual no sé a qué se parece), NSBasic, el cual ya puede usarse incluso en tablets y teléfonos inteligentes en iOS y Android. Así, la miriada de posibilidades permite a los programadores elegir la mejor opción para cada quien.

Aparte de los entornos típicos (como el que da Google para programar para Android) o el que da Apple para iOS. Es cuestión de buscar y empezar a entender las características específicas de los entornos que queremos usar. Si usted se dedica a programar, debe considerar que el futuro será -y por un buen tiempo- los dispositivos móviles. Hay un gran margen de alternativas y posibilidades para quienes buscan vivir de crear código.