Llegamos a ustedes gracias a:



Noticias

Luna lleva el desarrollo visual a la programación funcional

[07/06/2017] Descrito por los creadores como una pizarra blanca 'con esteroides' para desarrolladores, el lenguaje funcional de Luna promete ensamblar las aplicaciones haciendo clics y arrastrando los elementos visuales para unirlos.

Su compilador, que se espera sea lanzado como código abierto cuando Luna llegue a beta, producirá código nativo para que el programador escoja entre Linux, MacOS, Windows o JavaScript. El equipo detrás de Luna está buscando candidatos para un lanzamiento alfa privado.

Los creadores de Luna afirman que debido a que los desarrolladores generalmente comienzan esbozando los componentes y dependencias en una pizarra blanca antes de escribir el código, no tiene sentido para ellos implementar esa lógica solo en los textos. El software puede tener miles de líneas de código distribuidas en cientos de archivos, lo cual puede confundir la implementación de ese flujo de datos visuales y arquitectura de aplicaciones. Las herramientas como los diagramas de arquitectura UML solo tratan los síntomas y no la fuente del problema, afirman los creadores de Luna.

Por eso Luna cuenta con representaciones tanto visuales como textuales. Los desarrolladores pueden mantener sus hábitos de creación de código y a la vez tener también una interfaz gráfica tipo pizarra.

Las representaciones visuales de Luna revelan la estructura, comportamiento y flujo de datos. Permite que la creación de prototipos y el perfilado visual entiendan los cuellos de botella del desempeño. Luna reúne estadísticas incluyendo el tiempo de cómputo, asignación de memoria CPU/GPU, transferencia de red y modelo de subprocesamiento.

Entre las otras capacidades que se han prometido para Luna se encuentran:

  • paralelismo
  • funciones de orden superior
  • semántica no estricta
  • tipos algebraicos definidos por el usuario
  • un sistema I/O monádico que incluye un comprobador de tipo e influenciador que entienda qué funciones son acciones I/O y cuáles son puras.
  • manejo de errores del flujo de datos
  • un sistema de tipos dependiente fuerte

Luna también soportará la interoperabilidad de lenguajes, en donde los desarrolladores podrán crear un nodo "extranjero y pegar en código Python o Haskell. También se tiene planeada la interoperabilidad con JavaScript y C++. Sin embargo, los creadores de Luna advierten que otros lenguajes no fueron diseñados con la representación visual en mente, por lo que su código fuente no se puede representar gráficamente como lo puede hacer el código de Luna.