Programación

Simplejizando…

20 Diciembre 2011

Una de las ventajas de publicar Ogu en esta etapa es que me permite confrontar mi diseño con los lectores y potenciales usuarios. He recibido comentarios en el blog y en privado que me han permitido enriquecer y determinar algunos problemas en la sintáxis. El principal problema reside en la ambigüedad de las declaraciones, la gramática hasta ahora permitía el uso opcional de las palabras reservadas ‘def’, ‘var’ y ‘val’. De este modo la siguiente declaración x := 1 era equivalente a esta otra: val x := 1 y obligaba al uso de var para las variables mutables: var...

Read more »

El sistema de tipos de Ogu (1)

17 Diciembre 2011
El sistema de tipos de Ogu (1)

Es momento de analizar más detalles del lenguaje de programación Ogu, vamos a partir por su sistema de tipos, este artículo es una introducción al tema.   Ogu es un lenguaje con declaración de tipos estáticos, aunque implementa inferencia de tipos. Veamos algunos ejemplos: i : Int = 0 j := i // j es de tipo Int s : String = “un string” t := s   Ogu tiene “sacarina sintáctica” para soportar tuplas naipe : (Int,String) = (10, “espadas”)  // naipe es una tupla as := (1,”espadas”) Naipe = (Int,String) // Introduce el tipo Naipe como alias...

Read more »

Compiladores

15 Diciembre 2011
Compiladores

Compiladores ahora es un ramo electivo para ingeniería en computación, en la facultad en que estudié. Al menos cuando yo estudié me parece que era obligatorio, y creo que debería ser un ramo obligatorio. Ignoro por que la Universidad de Chile decidió hacer este ramo optativo, ignoro también cuanta gente toma esta materia cada semestre,también he escuchado que la matrícula en computación ha bajado, espero que algún académico me confirme esa información. Como sea, creo que la la no obligatoriedad del curso de compiladores es un error, porque es uno de los ramos que mejor sintetiza todo lo aprendido...

Read more »

Java debe morir

8 Diciembre 2011
Java debe morir

“De todas las formas de adquirir libros se considera la más gloriosa el escribirlos uno mismo” – Walter Benjamin “’Ta muy malo el corralero, y allá en el potrero como viejo está. Hay que ayudarlo a que muera para que no sufra más.” – Sergio Sauvalle Esa pareces ser la consigna desde hace unos dos o tres años, java, como lenguaje de programación, debe dar el paso a lenguajes más modernos. Cuando uno ocupa durante mucho tiempo una herramienta empieza a descubrir sus limitaciones, y trata de hacer cambios para mejorarla, adaptaciones, o derechamente vas a adquirir otra. Es...

Read more »

Comprensión de lectura

12 Noviembre 2011
Comprensión de lectura

Resulta que el modelo de cascada es quizás uno de los mayores errores de comprensión de lectura en toda la historia de la ingeniería de software. En 1970 Winston Royce escribe un paper donde, desafortunadamente, usa las palabras “grandiosa aproximación” para referirse a la siguiente figura: En realidad Winston Royce escribió este paper para criticar este modelo, pero terminó siendo citado una y otra vez por la comunidad “científica” como un modelo clásico y establecido. Es típico encontrar referencias del tipo: “el modelo de cascada es un modelo probado (Royce, 1970)”. Pero en realidad Royce inventa este diagrama en...

Read more »

DMR

13 Octubre 2011
DMR

“C is quirky, flawed, and an enormous success.” – Dennis Ritche C es el lenguaje madre de todos los lenguajes de programación que importan hoy en día.Si fueramos linguistas C sería como el protoindoeuropeo, la teorica lengua que dio origen al sanscrito, el griego antiguo, el germánico, el latín, y de ahí las lenguas romances… Conozco muchos lenguajes de programación, y he escrito miles de lineas de código desde assembler hasta Groovy, pero mi lenguaje matriz es C, a pesar de que aprendí Ratfor, y Pascal antes. Hace poco escribí en mi trabajo un programita en C que convirtió...

Read more »

Creadores de Universos

11 Octubre 2011
Creadores de Universos

The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs. (El programador de computadoras es un creador de universos para los cuales es el único responsable. Universos de complejidad virtualmente ilimitada pueden ser creados en la forma de programas de computadora.) – Joseph Weizenbaum, Computer Power and Human Reason

Read more »

Datos, datos, datos…

3 Octubre 2011
Datos, datos, datos…

En 1980 IBM introdujo estos dispositivos de almacenamiento de aproximadamente 2.5 Gigabytes:   Si mal no recuerdo vi algún "refrigerador" parecido a estos en la sala de servidores del CEC en la Escuela de Ingeniería cuando estudiaba. Ya para 1987 este modelito más compacto tenía la asombrosa capacidad de almacenar 7.5 Gigabytes: Hoy en día, tan solo 24 años después, contamos con dispositivos como este:   Con una capacidad de 1 Terabyte, unas 134 veces más capacidad que , en la palma de la mano. Asombroso ¿verdad? Dado que tenemos esta capacidad de almacenamiento de información, a costos cada...

Read more »

El mejor proceso de desarrollo de software

29 Septiembre 2011

Olviden el agilismo y los manifiestos, el mejor proceso para desarrollar software es muy simple. 1. Entender el problema, en este punto es buen conversar con el usuario, escucharlo. 2. Anotar en alguna parte lo que se debe hacer. 3. Sentarse a programar la solución. 4. Pasar a producción. 5. Corregir los bugs rapidamente y volver al punto 4. 6. Si funciona, buscar otro problema a resolver. Este proceso mejora si no se le piden muchas opiniones a los usuarios y se cuenta con programadores capaces de programar.

Read more »

Poesía, Caligramas y la Belleza del Código

11 Septiembre 2011
Poesía, Caligramas y la Belleza del Código

La lectura de un párrafo de texto  requiere un recorrido lineal de izquierda a derecha. Esto debido a la conformación de nuestro sistema de escritura, si estuvieramos en el oriente medio el sentido sería el contrario, de derecha a izquierda. La lectura es lineal, en una dimensión. A diferencia de la comunicación oral, por ejemplo, que tiene 2 ó quizás más dimensiones. Al conversar no sólo usamos el habla, está el lenguaje corporal, los gestos que acompañan nuestra expresión, la respuesta límbica, etc. ¿Cuantas dimensiones tiene el código de un programa? Escribir un programa no es lo mismo que...

Read more »