Inicio

GoliaTh, una nueva librería matemática en Java

GoliaTh es una librería para cálculo matricial escrita al 100% en puro Java sin métodos nativos que ha sido diseñada buscando dos objetivos fundamentales: Tener un núcleo ligero y ser muy fácil de usar.

Una apuesta por el alto nivel

Los lenguajes de alto nivel están ganando terreno en el mundo de la programación a un ritmo imparable y Java se encuentra a la cabeza con su JVM disponible para todo tipo de máquinas y sistemas operativos.

Las desventajas iniciales del uso de máquinas virtuales (como su menor velocidad o mayor consumo de recursos) han sido superadas gracias a varias mejoras como la tecnología JIT Just In Time compilation. Por otra parte, el alto coste de aumentar la velocidad de los microprocesadores está derivando los esfuerzos por aumentar la velocidad de cómputo hacia la programación en paralelo. En este aspecto, las características de un lenguaje como Java (la portabilidad garantizada, la cómoda implementación de programas multi-hilo o de la sincronización y el manejo de excepciones automatizado) le proporcionan una clara ventaja frente a los lenguajes de bajo nivel y de máquina específica.

Como consecuencia vemos que año tras año las estadísticas muestran un mayor número de estudiantes que se inician en Java siendo por lo general el lenguaje más aprendido. GoliaTh es una apuesta por la programación de alto nivel y pretende suplir algunas deficiencias de otras librerías para matrices en Java.

Qué aporta GoliaTh

GoliaTh  cubre un hueco importante que dejan otras librerías matemáticas escritas en Java y se diferencia de ellas en varias características que la hacen cómoda y atractiva para el programador.
  • Sin métodos nativos: Muchas librerías matemáticas profesionales y completas para Java están basadas en librerías  nativas como LAPack, LinPack, ... por lo que realmente son una interfaz en Java con un núcleo escrito en lenguajes como Fortran o C. Esto elimina la ventaja de la portabilidad de Java e impide la adaptación del código a nuevos esquemas de computación (como el uso de streams de datos para matrices de gran tamaño o la paralelización de algoritmos clave como la SVD). GoliaTh es 100% puro Java, lo que permite olvidarse de recompilaciones y de problemas de integración o adaptación.
  • Estructura sencilla: Uno de los puntos más difíciles a la hora de comenzar a usar una librería nueva en java es acostumbrarse a la compleja estructura de clases de los proyectos realizados con POO: una gran multitud de clases distintas, unas abstractas y otras no, unas heredadas de otras y que implementan ciertas interfaces. Cada herencia e implementación aporta una serie de atributos y/o métodos, muchos de los cuales podrían estar sobreescritos y/o sobrecargados.
        Esto tiene ciertas ventajas, pero GoliaTh ha querido liberar su núcleo de esa complejidad. El núcleo de GoliaTh consta tan sólo de ocho clases públicas con métodos estáticos que operan sobre matrices de tipos primitivos de Java. Así que no es necesario aprender a crear una matriz con GoliaTh ni a acceder a sus elementos o escribir en ella, ... puedes usarlo directamente sobre las matrices de siempre. Con esta estructura el núcleo de GoliaTh se convierte en una herramienta cómoda y fácil de incluír en cualquier proyecto, además de ser la base perfecta para el desarrollo de librerías más complejas del estilo propio de la POO.
  • Núcleo ligero: Al trabajar directamente con tipos primitivos, el núcleo de GoliaTh se ve libre del peso de los Wrappers, getters, setters, ... Las ventajas de esos elementos se dejan para niveles más altos de programación. GoliaTh es con esto mucho más rápido y ligero que cualquier librería creada con alto nivel de abstracción desde su base.

¿Más ventajas?

Pues sí, alguna más queda por decir.
  • Profesionalidad: No busques en la facilidad de uso de GoliaTh una muestra de posible falta de profesionalidad. GoliaTh está escrita con mucho rigor matemático, optimizando el código y prestando especial atención a la estabilidad numérica de cada uno de sus algoritmos. El diseño tiene una cuidada estructura, lógica y ordenada y la documentación está completa y disponible según las convenciones de estilo de Java. GoliaTh es una librería profesional de alto nivel en todos los aspectos.
  • Flexibilidad: Comprobarás que GoliaTh ha sido diseñada lo más abierta posible a cualquier tipo de necesidad. Por citar un ejemplo, la mayoría de sus métodos (siempre que tenga sentido) funcionan bien con matrices que tengan filas de distintos tamaños o incluso filas NULL. No podrás transponer una matriz de este tipo, pero sí podrás buscar su máximo valor, convertirla en fila, sumarla con otra de sus mismas dimensiones... GoliaTh se adapta.
  • Precio: GoliaTh es completamente gratuíto o gratis, como más te haga sonreír. Puedes usarlo en tus proyectos sin pedir permiso e incluso puedes lucrarte de esos proyectos sin avisarnos. Lúcrate, lúcrate. No pretendemos vivir de GoliaTh, en cambio sí creemos que GoliaTh merece vivir.