Tengo el agrado de anunciar que este miércoles 2 de Julio daré una charla titulada Django, desarrollo web veloz y de calidad en la UNMSM por la semana de Computación Científica.

Para los interesados:

Lugar: Campus Universitario de la UNMSM - Facultad de Ciencias Matemáticas

Dirección: Av. Venezuela Puerta Nro 1- Pabellon Nuevo 3er piso

Fecha y Hora: Miércoles 2 de Julio a las 7pm.

No he encontrado un enlace al horario del evento, si alguien lo conoce comuniquelo para publicarlo.
Están invitados.

Update:

Ya tengo el horario de las conferencias, descargenlo con gusto.

¿ Alguna vez de niños no soñaron con volar ?, si su respuesta es negativa fueron unos infantes muy raros dejenme decirles.

Yo si. A una personalidad algo soñadora agreguenle gran cantidad de ciencia ficción y entenderán lo interesado que estuve apenas leí sobre un jet personal en discovery magazine.

Pensado con fines militares ha sido desarrollado en Alemania por ESG Elektroniksystem and Drager Aerospace (si, el alemán es un idioma para entrenar perros).

Hola a todos

Los próximos Viernes 07 y Sábado 08 de Marzo, tendremos un evento fuera de lo
común en Lima, gracias al apoyo de la Fundación GNOME tendremos con
nosotros a algunos colaboradores y desarrolladores latinoamericanos
del proyecto.

Nos visitan:

- Germán Poó-Caamaño (GNOME, Universidad del Bio-Bio - Chile)
- Fernando San Martín Woerner (GNOME, Universidad Autónoma de Chile - Chile)
- Pedro Villavicencio (GNOME, Canonical Ltd - Chile)
- Manuel Cerón (MonoUML - Colombia)

¿Dónde? en la sede de la Facultad de Ingenieria de Sistemas, Computo y
Telecomunicaciones de la Universidad Inca Garcilaso de la Vega (Lima).
El ingreso es libre aunque necesitarán inscribirse. Eso y conocer más
detalles del evento lo puedes hacer desde la web:
http://www.involucrate.org/2008/3/

Para registrase http://www.involucrate.org/2008/3/registro/

Si no eres de Lima o Perú y planeas venir a participar, puedes
contactarte con nosotros vía la lista de DebianPerú[0] o el foro[1] y
con gusto te daremos orientación sobre la mejor manera de llegar y
donde alojarte.

No olvides que puedes comenzar a involucrarte en el evento desde ya;
¡reenvía este correo a todos tus conocidos, dile a tus amigos sobre el
evento, ponlo en tu blog, linkea la web!.

¡Falta poco para Marzo!

El equipo de Involucrate.org

0 - http://listas.apesol.org/listinfo.cgi/debian-apesol.org/
1 - http://www.debianperu.org/forum/37/

Difunde en donde puedas este mensaje, contamos contigo ;)

Ya salió el segundo programa que grabamos junto con Arturo en Impagable.

Desmintiendo eso de segundas partes nunca fueron buenas, nos toco departir sobre lo que se nos viene este 2008 en el campo de la tecnología, tal y como expresa el resumen.

Cada año es un cumulo de promesas en el siempre imprevisible campo de la tecnología. Este 2008 viene con su cuota de promesas bajo el brazo. Nuevas tecnologías, nuevos productos, nuevos formatos, alguna probable revolución, todos los cambios que se vienen prometen un año movido.

Una experiencia muy agradable, sobre todos los comentarios al video :)

El ya famoso artículo, cuyo título en castellano lo es de este post, ha suscitado comentarios y reacciones varias pese a las relativamente pocas lineas que contiene.

La premisa del artículo es simple: la calidad de los graduados en Ciencias de la Computación esta cayendo debido al uso de Java como lenguaje introductorio a la programación, lo cual acarrea problemas de origen que se arrastran a través de toda la carrera.

Ya la introducción deja en claro esta posición de los autores.

Desde nuestro punto de vista la educación en Ciencias de la Computación esta fallando en habilidades básicas, en particular en las áreas de programación y métodos formales. consideramos que la adopción general de Java como primer lenguaje de programación es en parte, responsable de esta decadencia. Examinaremos brevemente el conjunto de habilidades en programación que deben ser parte del repertorio de todo profesional del software.

It is our view that Computer Science (CS) education is neglecting basic skills, in particular in the áreas of programming and formal methods. We consider that the general adoption of Java as a first programming language is in part responsible for this decline. We examine briefly the set of programming skills that should be part of every software professional’s repertoire.

La decadencia a la que hace mención la resumen en los siguientes tres puntos:

1. Los requerimientos de matemáticas en los programas de CS disminuyen.

2. El desarrollo de habilidades en varios lenguajes esta dando paso a aproximaciones “receta de cocina” usando librerias y paquetes a medida.

3. Las capacidades resultantes son insuficientes para la industria del software actual (en particular para propositos de seguridad) e infortunadamente, encaja bien con lo que la industria de outsorcing ofrece. Estamos formando profesionales fácilmente reemplazables.

1. Matemáticas requirements in CS programs are shrinking.

2. The development of programming skills in several languages is giving way to cookbook approaches using large libraries and special-purpose packages.

3. The resulting set of skills is insufficient for today’s software industry (in particular for safety and security purposes) and, unfortunately, matches well what the outsourcing industry can offer. We are training easily replaceable professionals.

Algo preocupante para Estados Unidos, teniendo en cuenta la enorme cantidad de profesionales en la materia formados tanto en China como India. Y para todo occidente y en especial América, considerando que USA marca la pauta en la alta tecnología por estos lares.

Y no es algo teórico el tener profesionales menos capacitados, la competitividad de un país se mide por la de sus habitantes, y que competencia puede tener una nación donde la calidad de su educación baja. La empresas se ven en problemas al reclutar personal, deben tercerizar en otros países con la consecuente perdida de capitales y empleos.

Métodos Formales y Construcción de Software

La decadencia se hace sentir en todas la áreas, la falta de formación en matemáticas y métodos formales conlleva a problemas como el nopoder contratar empleados con las necesarias competencias en matemáticas para determinadas tareas.

SPARK es un subconjunto de Ada con añadidos que permiten al diseñador probar importantes propiedades de un programa:fin, ausencia de excepciones en tiempo de ejecución, uso de memoria, etc. Es obvio que este tipo de metodología de análisis y diseño (apodada Corrección por Construcción) va a añadir fiabilidad al diseño de un sistema cuyo diseño a envuelto SPARK desde el principio. No obstante, PRAXIS, la compañía desarrolladora de SPARK y que diseña iFACTS, encuentra difícil contratar personas con las necesarias competencias en matemáticas (y esto en el Reino Unido, donde los métodos formales son mas enseñados y usados que en USA).

SPARK is a subset of Ada augmented with assertions that allow the designer to prove important properties of a program: termination, absence of run-time exceptions, finite memory usage, etc. [2]. It is obvious that this kind of design and analysis methodology (dubbed Correctness by Construction) will add substantially to the reliability of a system whose design has involved SPARK from the beginning. However, PRAXIS, the company that developed SPARK and which is designing iFACTS, finds it hard to recruit people with the required mathematical competence (and this is present even in the United Kingdom, where formal methods are more widely taught and used than in the United States).

Dejando de lado la propaganda a Ada, nada sorprendente viniendo del presidente y vicepresidente de la compañía desarrolladora. Es preocupante el hecho de que las competencias en habilidades básicas como las matemáticas sean dejadas de lado en función del inmediatismo. Widgets en lugar de vectores, fonts en vez de derivadas, canvas por métodos numéricos.

Los problemas de Java como primer lenguaje de programación

Es innegable, Java es popular, y aunque no sea aficionado a este debo reconocer que es útil. Usado tanto para aplicaciones Web como para escritorio, la facilidad con que genera programas gráficos lo han vuelto un lenguaje enormemente difundido tanto en las empresas como universidades.

Pero esto trae un problema que ya he visto con otros lenguajes. Si uno aprende a programar usando un lenguaje gráfico como Java o peor aun VB, se ha acostumbrado a una respuesta vistosa al código escrito, una retroalimentación po demás defectuosa que en vez de incentivar el gusto por la lógica y la resolución de problemas, se queda en el aspecto estético, superficial, aficionado al novel programador a resolver rápidamente sus problemas, ensamblando componentes pre-hechos sin meditar mucho en lo que esta haciendo.

Dejennos proponer el siguiente principio: La irresistible belleza de la programación consiste en la reducción de complejos problemas formales a un pequeño conjunto de operaciones básicas. Java, en vez de exponer la belleza, anima al programador a adoptar un enfoque de plomero: rebuscar entre una multitud de cajas (¿ paquetes ?) donde terminará encontrando algún objeto (¿ una clase ?) que mal que bien hará lo que se desea. ¡Como lo hace no es interesante! El resultado es un estudiante que sabe como ensamblar un simple programa, pero que no sabe programar. Otro obstáculo del temprano uso de librerias y el framework de Java es que es imposible para el estudiante desarrollar un sentido del costo de ejecución de lo que ha escrito, ya que es muy difícil saber que método ejecuta que cosa.

Let us propose the following principle: The irresistible beauty of programming consists in the reduction of complex formal processes to a very small set of primitive operations. Java, instead of exposing this beauty, encourages the programmer to approach problem-solving like a plumber in a hardware store: by rummaging through a multitude of drawers (i.e. packages) we will end up finding some gadget (i.e. class) that does roughly what we want. How it does it is not interesting! The result is a student who knows how to puta simple program together, but does not know how to program. Otro pitfall of the early use of Java libraries and frameworks is that it is impossible for the student to develop a sense of the run-time cost of what is written because it is extremely hard to know what any method call will eventually execute.

Estoy de acuerdo en la crítica a Java y su uso indiscriminado de paquetes y librerias con finalidades educativas. Nada tan poco pedagógico como aprender a programar utilizando clases y paquetes a montones, miles de funciones listas para ser usadas, donde el trabajo no es la lógica sino la memoria para bucear entre montones de software ya escrito.

Pero no estoy de acuerdo con aplicar ese criterio al mundo comercial. En este muchas veces no se justifica sacrificar velocidad de desarrollo por ahorrar tiempo de ejecución, el tiempo del desarrollador vale más que el coste de hardware potente.

Un verdadero programador puede desarrollar en cualquier Lenguaje (C, Java, Lisp, Ada)

El lenguaje en que se forma un programador lo influencia en toda su vida profesional, pero eso no debe ser óbice para que adquiera competencias en otros lenguajes importantes. Un programador de C/C++ a su vez debería poder escribir código en Lisp de manera fluida, es el planteamiento de los autores. Lo comparto en parte pero debo discrepar. No dedicaría tiempo a lenguajes con tan poco uso (al menos en nuestro medio) como a C/C++ que son fundamentales para aprender a desarrollar de “en el mundo real”, por así decirlo.

A continuación hacen comentarios sobre los lenguajes mencionados.

C

Es un lenguaje de bajo nivel portable, que todos deberían conocer. Obliga al estudiante a conocer la máquina sobre la que programa forzándolo a conocer la relación entre el hardware y el software. Una excelente herramienta de aprendizaje usada a su vez en el mundo empresarial

C++

Descendiente de C, C++ le agrega conceptos fundamentales como clases, encapsulación, información protegida a través de datos privados y públicos entre otros, así como un manejo de memoria más simple pero no por eso más hipertrofiado.

Lisp

Este un lenguaje del cual he seguido un par de cursos en la universidad, y aunque en un principio me extraño por lo diferente que es a todo aquello que había visto antes le tome cierto interés por la forma tan fuera de lo común en que se resolvían problemas.

La programación funcional, sin estar tan extendida como la imperativa es un interesante ejercicio, abre horizontes y nuevas maneras de pensar además de ser muy usada en el procesamiento de lenguaje e inteligencia artificial.

Java

Luego de darle con palo a Java como lenguaje de formación, le reconocen dos virtudes que lo hacen importante.

1. Entendimiento de la concurrencia, donde sus hilos dan un bajo nivel básico.

2. Reflexión, un programa puede ser programado para examinar us propio estado y determinar su compartamiento en un entorno dinámico y cambiante

1. An understanding of concurrent programming (for which threads provide a basic low-level model).

2. Reflection, namely the understanding that a program can be instrumented to examine its own state and to determine its own behavior in a dynamically changing environment.

Ada

Este lenguaje nunca lo he usado, pero como mencioné no extraña que lo alaben si ellos son los desarrolladores del mismo.

Los lenguajes de programación no son toda la historia

No solo de lenguajes vive el hombre. Los estudiantes necesitan aprender otras materias como métodos de prueba del software, software que corra en tiempo real, métodos numéricos entre otras habilidades que se hacen indispensable para formar no monos, sino profesionales que sean capaces de afrontar problemas basados en un adecuado bagaje de conocimientos.

Días atrás recibí la amable invitación de Carlos para participar en Impagable, el nuevo vblog temático de Inventarte, los responsables de telúrica entre otros.

Acepté con gusto y el día señalado me dirigí al local de Inventarte, conversamos un rato con Carlos, llegó Arturo y procedimos a empezar el programa.

Un gusto participar :)



BlogsPeru.com Peru Blogs BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog Directorio de blogs Directorio de blogs Deyaboo | Directorio de enlaces web Politics blogs Votame iPing-it!