Picat es el nuevo lenguaje que finalmente ha llegado a la versión 1.0. Tiene algunas características interesantes, pero quizás el hecho de que soporte la programación lógica lo hace más novedoso. Sabemos que la programación lógica es la base de Prolog (Programming in Logic), un lenguaje que se creó a principios de los años 1970s pero que no pudo entrar al gusto del programador cotidiano porque las computadoras simplemente no tenían los suficientes recursos para que funcionara adecuadamente. Fue hasta que apareció la PC que empezaron a salir los primeros intérpretes de Prolog, pues la memoria ya no tenía las limitaciones de antes.
De alguna manera la programación lógica no parece haber tenido el alcance esperado. De hecho, el proyecto de quinta generación de los japoneses, que habían dicho harían todo en Prolog, no sólo no se concluyó sino que además, cambiaron muchísimas cosas pero hacia C. Así pues, el nicho de la programación lógica y funcional se convirtió en algo para especialistas en inteligencia artificial.
Picat es un lenguaje de código abierto que incluye la programación lógica y permite extenderla a programación funcional e incluso a la programación dinámica. Este enfoque permite generar un conjunto de claúsulas o reglas que definan algo y esperar que el lenguaje encuentre para qué condiciones se cumple este conjunto. Como en Prolog, en Picat se pueden resolver problemas lógicos, de análisis de ruta, de planeación, etcétera. Básicamente en la programación lógica se escribe una descripción estática del problema y el lenguaje encuentra la o las soluciones.
Lo que es curioso es que cuando los programadores encuentra lenguajes lógicos, se sorprenden de lo poderosos que son aunque claramente no funcionan para todos los casos ni son de propósito general. Prolog y Picat, sin embargo, son Turing completos, lo que significa que puede escribirse cualquier programa. Picat tiene la ventaja sobre Prolog que puede escribir cualquier programa de forma más sencilla, en algunos casos.
Vale la pena echarle un ojo. Estamos muy acostumbrados a los lenguajes tradicionales. Picat parece ser una idea fresca en el conjunto de lenguajes que hacen todos lo mismo.
Referencias: