blog de bferro

Lo "nuevo" en Java 8: interfaces funcionales

En Lo nuevo en Java 8 describimos brevemente las expresiones lambda en esta nueva versión de Java. Es necesario asociar a esas expresiones un tipo para de esta manera satisfacer la comprobación de tipos que el lenguaje utiliza. La interfaces funcionales cumplen ese objetivo, además de poder ser usadas como siempre.
Una interfaz funcional es una interfaz que contiene un único método abstracto, además de algunos métodos implementados. Estos últimos se conocen como métodos de default o métodos de extensión virtual. Las interfaces también pueden contener funciones estáticas, aunque esto último nada tiene que ver con el adjetivo funcional que se les da.
Una expresión lambda encapsula una funcionalidad específica y parece "normal" asignarle a ellas un tipo dado por una interfaz que declara la firma de esa función.
Ya estamos acostumbrados a utilizar una interfaz con un solo método para precisamente manipular la funcionalidad de ese método y poder reutilizarlo. El ejemplo más común es el de las interfaces que definen los "event handlers" en Swing y otros APIs.

Lo "nuevo" en Java 8 (Java Standard Edition)

Oracle ha liberado recién la nueva versión de Java. En casi 20 años de historia el lenguaje dispone de 8 versiones y de innumerables actualizaciones para cada una de las que han existido. Sigo el lenguaje desde que nació y lo he usado para varias cosas, entre ellas para enseñar programación orientada a objetos cuando el sombrero que llevo puesto es el de profesor.
Escribo entre comillas la palabra nuevo para satisfacer a aquellos que consideran que no hay innovación alguna en las cosas que en la nueva versión se introducen. Casi siempre se cumple eso de que "no hay nada nuevo bajo el sol", pero siempre se recibe son agrado si los que diseñan el lenguaje que usas para ganarte el pan de cada día, incorporan a ese lenguaje las cosas buenas que otros han incorporado. Sucede aunque con menos frecuencia, que también se incorporan cosas malas.

Siempre es importante el modelo de objetos

Si el modelo de objetos de Javascript es bien entendido, entonces lo siguiente se entiende:

>var a =5
undefined
a.value =9
9
>a.value
undefined

Si no, se aprenderá el lenguaje, pero no se llegará con él al Nirvana.

Curso de Scala presencial "en línea"

En breve estaré impartiendo un curso de Fundamentos del lenguaje de programación Scala, presencial "en línea", usando el sistema Webex Training Center, con todas sus posibilidades. Lo estaré ofreciendo en el horario de la tarde noche dos veces por semana con una duración de 30 horas (5 semanas). Los interesados pueden enviarme un correo a barbaro.ferro@gmail.com para conocer temas, precios y calendario.

¿Cómo crear objetos?

La pregunta que da título a esta entrada, parece tener una respuesta trivial, y en efecto la tiene. No existe otra manera de crear objetos en Java u otros lenguajes similares que no sea a través del operador new del lenguaje. Pero la pregunta se hace interesante si nos detenemos a pensar en qué lugar del código debemos escribir esa creación de objetos, de suerte que un usuario de nuestras clases pueda usar objetos de ella.
En estos días estoy platicando sobre la creación de objetos en uno de los cursos que imparto y me resultó interesante compartir esas pláticas aquí. Siempre habrá alguien que se interese por estas cosas.

Ceylon: Introducción rápida

Una forma de contribuir con Ceylon, o con cualquier otro proyecto de open source, es escribir en la lengua de Cervantes (modificada por Bárbaro), mucho de lo que ya está escrito en el sitio de Ceylon en la lengua de Shakespeare ( modificada por Gavin). Mi intención es traducirlo todo al español y confío en Manzanero con su semana de más de 7 días.
Por lo pronto lo que sigue es una traducción libre de Quick Introduction

Introducción rápida

Es imposible captar la esencia de un lenguaje de programación observando solamente la lista de características. Lo que realmente hace al lenguaje es la combinación de esa pequeñas cosas trabajando juntas. Y resulta que es imposible apreciar esa sinergia sin escribir código. En esta sección vamos a mostrar de manera rápida lo suficiente de Ceylon para lograr un interés suficiente que te conduzca a probar el lenguaje. Lo que sigue por supuesto que no es una lista completa de las características del lenguaje.

Una sintaxis legible y familiar

Curso de programación con el lenguaje Scala

Primera llamada al Curso de Programación con Scala.

Scala es uno de los tantos lenguajes de programación que en los últimos años han surgido para la máquina virtual de Java. Es un lenguaje que combina de manera muy elegante el estilo imperativo de la programación orientada a objetos, con el estilo de la programación funcional.
Scala permite hacer uso de todo el potencial del lenguaje Java e ir mucho más allá para resolver problemas donde la transparencia referencial que se obtiene con la programación funcional es un ingrediente imprescindible para escribir código "limpio".
Este curso introduce al participante conocedor de Java en el mundo de Scala, siguiendo un camino ni largo ni tortuoso y asimilando la "complejidad" del lenguaje "sorbo a sorbo".

Introducción e instalación de Scala

Ya está el sitio de ceylon-lang.org

El día de ayer Gavin King anunció la "salida al aire" del sitio http://ceylon-lang.org. De hecho puse el anuncio en un post anterior, pero me lo marcaron como spam.
Aunque aun no se libera al público, ya está disponible en Github: http://github.com/ceylon.

Welcome to ceylon-lang.org!

Esto seguramente les interesa a varios.

Welcome to ceylon-lang.org!

by Gavin King 17 Nov 2011 ceylon-lang.org

Today, we're proud to announce a dedicated Ceylon community, ceylon-lang.org. Simultaneously, we're opening up access to our git repositories and even providing a special pre-release build of the Ceylon IDE, only for the truly adventurous.

We're not yet quite ready to release Milestone 1, due to a number of unsolved bugs and integration issues. But we're working really hard to get these sorted out!

I'm taking this opportunity to thank Red Hat's James Cobb for the web design, Emmanuel Bernard for setting up the infrastructure behind this site, and Tom Bentley for helping with much of the content. And, while I'm mentioning people's names, I would also like to thank new hires Stef Épardaud and Tako Schotanus for all the work they did getting the compiler up and running as volunteer contributors before coming on board, and David Festal from SERLI for making the IDE happen.

If you're interested in contributing to Ceylon, now is a really great time to get involved!

Discurso de Steve Jobs en Stanford en 2005

Este discurso de Steve Jobs lo paso a menudo en mis clases. Está lleno de bellos mensajes.

I am honored to be with you today at your commencement from one of the finest universities in the world. I never graduated from college. Truth be told, this is the closest I've ever gotten to a college graduation. Today I want to tell you three stories from my life. That's it. No big deal. Just three stories.

The first story is about connecting the dots.

I dropped out of Reed College after the first 6 months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out?

Distribuir contenido