Después de prácticamente dos meses, retomo el blog, que no quiere decir que no haya estado trabajando en el proyecto, en concreto en la traducción de aquel proyecto Scala del que hable en la anterior entrada y que había que traducir.
Si estuviese aplicando metodologías ágiles y tuviera que realizar una planificación del sprint, a este le hubiese titulado en grande y con mayúsculas "Traducir en Java 8" para hacer saber que el objetivo no es más que ese.
Me encontré con varios problemas en el proyecto de Scala que se hacían casi imposibles para desarrollarlos en Java (campos opcionales, funciones como parámetro, los nuevos métodos en estructuras de datos, streams y sus filtros...) pero..se encendió la luz con Java 8.
Lo primero que hice fue ponerme un poco al día de todas las novedades de Java 8, en estas páginas encontré buena información:
https://docs.oracle.com/javase/8/docs/api
http://openjdk.java.net/projects/jdk8/features
http://www.oracle.com/technetwork/es/articles/java/expresiones-lambda-api-stream-java-2633852-esa.html
http://www.javahispano.org/portada/2014/3/22/novedades-y-nuevas-caracteristicas-de-java-8.html
http://www.dosideas.com/noticias/java/983-java-8-mas-alla-de-los-lambdas.html
Después, aprovechando el código que tenía ya desarrollado hice un refactor a Java 8, prácticamente tenía la mayor parte de clases cubiertas ya con Java 7, y me faltaban los métodos que incluían operaciones con promesas, estructuras de datos con tuplas o funciones como parámetro, para los streams los filtros... en definitiva las cosas que con Java 8 se hacen más sencillas que con la versión anterior.
Para manejar los JSON el proyecto de Scala usa la librería Argonaut. Para manejar los JSON en el proyecto Java opté por la librería Gson de Google:
https://github.com/google/gson
http://www.blog.teraswap.com/gson-introduccion
A falta de organizar un poco mejor los paquetes y hacer pequeños cambios, la librería thrust_java está funcionando, para muestra una foto:
En la siguiente entrada entraré un poco más en detalle de la parte técnica de la librería thrust_java y espero tener ya en github la librería completa.

No hay comentarios:
Publicar un comentario