Mostrando las entradas con la etiqueta open-source. Mostrar todas las entradas
Mostrando las entradas con la etiqueta open-source. Mostrar todas las entradas

Que trae de nuevo Eclipse Luna

Como todos los años, viene mi review de que puede parecer interesante en la nueva versión de Eclipse. Este año eligieron una palabra bien "castellana", le tocaba a la letra "L" (el nombre anterior había sido Kepler y el anterior Juno): Luna.
Lo más llamativo de esta versión es el soporte para java 8, pero ya veremos eso con más detalle. Inicialmente podemos apreciar un nuevo logo mucho más flat, acorde a estos tiempos. El splash-screen es mucho más chico y sobrio que antes, me parece acertado el cambio, lo hace más serio y más maduro. A simple vista parece mucho más rápido que las versiones anteriores, seguramente asociado a las mejoras que continuamente se implementan relacionadas a la performance.
Para repasar, comenzaremos con las mejoras en la plataforma, lo primero que llama la atención, es tener por fin el soporte para split editors, algo que es muy interesante y se puede acceder con un par de atajos de teclado.
Otra cosa interesante es el agregado de un nuevo tema dark, a simple vista me parece muy bueno, pero no me gusta como quedan algunos iconos, ya que se ve que quedan pixeles blancos en el borde (algunos fueron rearmados con formato png, pero quedan varios con problemas de transparencia todavía), es algo que deberían mejorar. Lo bueno, sin embargo, es que al fin lograron implementar de que no sea necesario reiniciar la IDE para que tome los cambios del nuevo tema seleccionado.
Nuevo theme
Otra de las cosas nuevas es que ahora hay dos modalidades para las vistas minimizadas, una que es la original, en la cual se muestran "flotando" sobre las demás vistas, cuando uno hace click en el ícono correspondiente; y una nueva en la cual en vez de mostrar la vista superpuesta, se muestra en su ubicación original. Personalmente creo que me sigo quedando con la versión original ya que prefiero que no afecte el layout de las demás vistas.
Otro de los pequeños detalles que si hacen la vida del programador un poco más fácil, es la opción de abrir un explorador de windows en la ubicación en la que se encuentra un archivo. Para acceder a esa opción, click derecho sobre el archivo, "Show in" y luego "System Explorer".
Bueno, luego moviéndonos a las mejoras para los desarrolladores java, la estrella es el manejo de la sintaxis nueva que trae java 8. Lo mejor es la conversión automática de código que puede representarse de mejor manera usando expresiones Lambda. Se puede hacer en un método específico o a nivel global.
Soporte para expresiones lambda
También se puede convertir de expresiones block a expresiones body de un solo paso y ver el método implementado por la instancia de la interfaz utilizada, simplemente pasando el mouse por encima del símbolo "->" o el "::".
Con la venida de las anotaciones de tipo (JSR 308), el compilador de eclipse lleva el análisis de posibles NullPointerExceptions al siguiente nivel, ya que prácticamente puede detectar todos los errores de este tipo en tiempo de ejecución. Solo es necesario utilizar las anotaciones @Nullable y @NonNull de forma correcta en la definición de los parámetros de los métodos.
El depurador también ganó nuevas características relacionadas a lo nuevo que trae java 8, como por ejemplo poner breakpoints adentro de las expresiones lambda.
Eso en lo que respecta a una pasada muy por arriba de las cosas nuevas en la versión base. También como es de costumbre, hay numerosos cambios en todo el ecosistema de plugins de este megaproyecto.
En fin, me parece que este año se notan un poco más las mejoras que en lo que fue kepler, más que nada por lo que es java 8. Igualmente se nota que el esfuerzo se imprime sobre los plugins y no sobre la IDE que sigue bastante parecida a la primer versión.
Alguna otra funcionalidad que valga la pena mencionar?
Saludos!

El software libre en acción

Hace muchos años, desde que conocí el concepto de software libre, pase por varias etapas. Al principio: me preguntaba constantemente: cómo puede ser rentable y mantenible una idea semejante?, luego de un tiempo, de comenzar a sacudirme de encima todos los preconceptos que un joven freelancer amateur puede tener encima, comencé a darme cuenta de la importancia de las ideas sobre el código, y la importancia que puede tener alguien, por entender realmente el producto o servicio que desarrolla, mantiene y vende. Finalmente pase a entender que gracias al software libre, la relevancia de las ideas y las ganas de llevar a la realidad lo que uno tiene en la cabeza, superan ampliamente al concepto tan antiguo de que el código es algo similar a una cosa física que uno construye y vende.
Pero bueno, volviendo un poco al post, tenía ganas de contarles acerca de tres casos diferentes en magnitudes, pero relacionados entre sí, que a mi entender, demuestran como gracias al software libre, se pueden superar barreras que con software pago y licenciado, no se podían pasar.

CASO 1: DB DESIGNER

Hace unos años, cuando estaba comenzando a desarrollar un sistema, me tocó elegir algún soft, en lo posible gratuito, para poder hacer diseño de modelo de datos, y llegué al DB Designer. Era una herramienta interesante, porque permite trabajar cómodamente con diagramas que podían crecer bastante en tamaño, sincronizar con la base de datos los cambios, generar los scripts de generación de tablas con muchas opciones diferentes, etc. Como el proyecto en cuestión, debía correr contra una base MySQL, pude usar sin problemas la herramienta, ya que estaba específicamente diseñada para trabajar con dicho RDBMS. En realidad esto era un problema, ya que si hubiese necesitado otro Vendor de base de datos, no hubiese podido utilizarla.
Hace poco me surgió una necesidad similar, pero para PostgreSQL, y, habiendo olvidado de esa restricción, opté por descargar DBDesigner para trabajar. Cuando quise hacer una exportación, recordé de que solo funcionaba con MySQL. Fue entonces que visité la página de FabForce, incrédulo de que después de tanto tiempo no hubiesen desarrollado algún plugin, o algo parecido, para poder exportar a otra base … pero nada.
Después de un par de búsquedas, me encontré con DBDesigner Fork. Como su nombre lo indica, se trata de un fork, que agrega soporte para muchas bases de datos, entre ellas PostgreSQL. Luego de descargarla, pude importar el modelo y lograr lo que necesitaba.

CASO 2: TWITTER Y SU VERSIÓN DE MYSQL

Si bien estamos hablando de otra magnitud, es algo, a mi parecer, comparable.
Hace poco me enteré de que Twitter publicó un fork de MySQL con algunas características interesantes, como por ejemplo:
  • Nuevas variables de estatus para el motor INNODB
  • Optimización del acceso a memoria no uniforme (NUMA)
  • Timeout de las querys del lado del servidor
  • Exportación y restauración del pool de conexiones de manera más liviana
  • Optimización para dispositivos SSD

Me pareció una muy buena idea, y una muy buena movida por parte de twitter. Tomar algo que es bueno, adaptarlo para mis necesidades, y retroalimentar a la comunidad con este desarrollo.

CASO 3: JENKINS

Bueno, para los fanas como yo de la integración contínua, esto no es algo desconocido.
El proyecto Hudson, construido prácticamente entero, por uno de mis ídolos, Kohsuke Kawaguchi, comenzó como uno de los desarrollos open-source de SUN, quien luego fue adquirido por Oracle. Luego de la adquisición, Kohsuke deja la compañía, pero continúa trabajando en el proyecto. Oracle intenta influenciar el proyecto, de tal manera que cambia un poco la visión que el creador y mentor tenía sobre el producto, por lo cual él, y la comunidad de desarrolladores de extensiones, deciden hacer un fork del proyecto, cambiándolo de nombre. Pasa a llamarse Jenkins.
Cuando me enteré de esta decisión, no pude evitar pensar, de que prácticamente nadie se tomaría el trabajo de actualizar algo que ya de por sí funcionaba bien, a una versión ya no sponsoreada por el gigante Oracle, con otro nombre, y probablemente con muchos problemas de incompatibilidades.
Estaba muy equivocado, el fork estuvo excelentemente planificado, el swap era extraordinariamente simple, prácticamente no hubo incidencias, y gran parte de la comunidad comenzó a seguir a este branch, se siguieron creando muchísimos plugins más, y los mejores plugins continuaron siendo actualizados bajo este nuevo emprendimiento.
En fin, son tres casos de miles, diferentes entre sí, que me recuerdan que cuando uno desarrolla una pieza de software, lo que hace es materializar la idea del producto que uno tiene en su mente, si a esto le sumamos las ganas y la fuerza de la motivación, el software libre puede ayudar a mantener vivas nuestras creaciones y ayudar a que todos usemos estas herramientas para mejorar lo que hacemos día a día.