B4A

sábado, enero 05, 2013

BioSmalltalk

BioSmalltalk es un proyecto de gran interés para la comunidad científica y también para nosotros los programadores, ya que a través de proyectos como este es que aportamos valor a otras ramas de la ciencia y la tecnología.


Descripción


De la página del proyecto leemos que BioSmalltalk es una biblioteca open source para trabajar en bioinformática con Smalltalk.

BioSmalltalk posibilita el desarrollo de scripts y aplicaciones bioinformáticos usando la más poderosa tecnología de objetos, es decir un ambiente Smalltalk.

BioSmalltalk es adecuado para sus proyectos bioinformáticos:
  • Si Ud quiere un lenguaje fácil de usar y de aprender (sólo 5 palabras clave).
  • Si Ud quiere explorar y manipular sus objetos interactivamente a través de herramientas creadas y testeadas desde hace más de 30 años.
  • Si Ud quiere aprender APIs de bioinformática mientras las porta a tecnología de objetos pura.
  • Si Ud quiere explorar una jerarquía de clases con sólo dos clicks.
  • Si Ud no se siente cómodo leyendo código en miles de archivos.
  • Si Ud quiere fácilmente (a través de 1 click) recorrer.
    • Remitentes de métodos.
    • Referencias a clases.
    • Implementadores de métodos.
  • Si Ud quiere refactorizar código en el mismo ambiente del navegador de clases.
  • Si Ud no quiere buscar, memorizar, analizar y tipear comandos y parámetros en una consola.
  • Si Ud no quiere complicarse más con estructuras de directorios.
  • Si Ud no quiere revisar visualmente y recorrer miles de líneas de código en un archivo.
  • Si Ud quiere codificar en el ambiente de objetos creado por el inventor de la tecnología de orientación a objetos.
  • Si Ud quiere codificar en un ambiente con tecnologías como recolector de basura generacional, compilación Just-In-Time, metáfora modelo-vista-controlador, framework de testing y muchas características más

Ambiente Puro de Objetos


Uno de los objetivos de BioSmalltalk es conciliar los beneficios de un ambiente de objetos puros con tareas relacionadas con la bioinformática. En BioSmalltalk científicos o programadores no profesionales pueden desarrollar rápidamente sin las complejidades de los entornos de programación tradicionales.
  • La reflexión computacional es de naturaleza original en Smalltalk.
  • Objetos puros, no hay mezcla innecesaria de objetos con tipos de datos primitivos. No se requiere inicialización ni conversión a objetos como en los lenguajes de tipado estático.
  • Ambiente de desarrollo único, que soporta navegación del código fuente a través de navegadores y herramientas integradas (Refactorización, Depurador, Introspección, Inspección, Exploradores, etc).

Para ver el uso y progreso del proyecto BioSmalltalk puede visitar el blog del proyecto y para los desarrolladores interesados existe una Guía de Desarrollo en la sección Descargas.


Contribuyendo

BioSmalltalk necesita su ayuda! Todos son bienvenidos; si Ud quiere suscribirse a las listas de correo existen una lista orientada a desarrolladores y otra para usuarios. El código fuente está en un repositorio de SqueakSource3

Estado

BioSmalltalk está actualmente bajo fuerte desarrollo y testeo en el Instituto de Veterinaria Genética (IGEVET) y patrocinado por el Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) en Argentina.

Licencia

Todo el código desarrollado y guardado en el repositorio de BioSmalltalk es licencia MIT.

Trabajando con Cuis

Cuis es un Smalltalk-80 gratuito y libre, desarrollado por Juan Vuletich originalmente derivado de Squeak, pero con objetivos propios como la potencia y la simpleza, la portabilidad, y la velocidad y eficiencia, como describe su autor en la página del producto.

Poco a poco su comunidad va creciendo, como se puede ver en la lista de correo, y también a medida que su uso se hace más masivo, van apareciendo necesidades de funcionalidades no presentes en el core de Cuis.

Asi que siendo actualmente Cuis el Smalltalk que más me entusiasma, estoy trabajando en portar algunos paquetes que se necesitan para diversas funcionalidades (Los ports vienen de Pharo o Squeak según el caso).

Una lista de los paquetes actualmente disponibles está en el mismo repositorio de GitHub de Cuis, en esta dirección.


En lo personal, estoy trabajando con varios proyectos:

WebClient: Es una implementación de Andreas Raab de un cliente y servidor Web. Actualmente funcionan la mayoría de las funcionalidades a nivel cliente y estoy comenzando a trabajar con el servidor.

Para poder hacer funcionar este paquete son necesarias algunas clases que conforman la categoría Network de Cuis/Pharo y que no están presentes en Cuis, la cuales también están portadas, algunas con todos los tests en verde, en este repo.

Además, como Cuis es una implentación limpia y particular, para facilitar las tareas de port de paquetes, tengo un repositorio donde hay unas cuántas clases y métodos necesarios para compatiblidad con otros Smalltalks.

Artefact: Es un generador de pdfs de Olivier Auverlot y Guillaume Larcheveque que ya funciona de la misma forma que lo hace en Pharo. Sin embargo el propio Olivier me comentó que han reescrito totalmente el engine y que publicarán una nueva versión aproximadamente en Marzo de 2013.

Para portar Artefact fue necesario también portar el paquete de Expresiones Regulares.

Criptografía: En este apartado tengo portado Blowfish, del paquete de Criptografía de Pharo/Squeak así como System-Hashing, ambos perfectamente funcionales y con 100% de código Smalltalk.

JSON: Me queda por resolver un test que no pasa, pero el paquete está usable.

SandstoneDB: Es un esquema de persistencia simple, al estilo de ActiveRecords portado de un trabajo de Ramon Leon. También queda sólo 1 test por resolver, pero está funcional.

SimpleLogger: Este es un mini framework de mi autoría originalmente para Pharo, documentado en el libro colaborativo de Pharo.

En mi GitHub hay otros trabajos también pero que son menores o no están terminados ni usables. El desafío actual, conforme el tiempo libre lo permita, es hacer funcionar en Cuis el web server Swazoo de manera que el autor de Aida pueda intentar el port a Cuis. Si logramos concretar esto, tendremos un servidor de aplicaciones web robusto y mantenido corriendo en Cuis.

Entonces el siguiente paso será hacerlo funcionar en el servicio PaaS de RedHat, llamado OpenShift.

Por supuesto que estos son los planes tentativos, los cuales pueden variar en base a las necesidades que vayan surgiendo y, fundamentalmente, en base al tiempo libre disponible.

Cuis es un proyecto interesantísimo y desafiante y ojalá este artículo sirva para que más gente interesada se sume a colaborar con el proyecto. Adelante Cuis!