3 min read

Luna, a data processing and visualization environment, provides a library of highly tailored, domain-specific components as well as a framework for building new components. Luna focuses on domains related to data processing, such as IoT, bioinformatics, data science, graphic design and architecture.

What’s so interesting about Luna?

Data flow modeling

Luna is a data flow modeling whiteboard that allows users to draw components and the way data flows between them. Components in Luna have simply nested data flow graphs and users can enter into any component or into its subcomponents to move from high to low levels of abstraction. It is also designed as a general purpose programming language with two equivalent representations, visual and textual.

Data processing and visualizing

Luna components can visualise their results and further use colors for indicating the type of data they exchange. Users can compare all the intermediate outcomes and also understand the flow of data by looking at the graph. Users can also work around the parameters and observe how they affect each step of the computation in real time.

Debugging

Luna can help in assisting and analyzing network service outages and data corruption. In case any errors occur, Luna tracks and display its path through the graph so that users can easily follow and understand where it comes from.  It also records and visualizes information about performance and memory consumption.

Luna explorer, the search engine

Luna comes with Explorer which is a context-aware fuzzy search engine that lets users query libraries for desired components as well as browse their documentation. Since the Explorer is context-aware, it can easily understand the flow of data and also predict users’ intentions and adjust the search results accordingly.

Dual syntax representation

Luna is also the world’s first programming language that features two equivalent syntax representations, that is visual and textual.

Automatic parallelism

Luna also features parallelism that uses the state of the art Haskell’s GHC runtime system which helps to run thousands of threads in a fraction of a second. It also automatically partitions a program and schedules its execution over available CPU cores.

Users seem to be happy with Luna, a user commented on HackerNews, “Luna looks great. I’ve been doing work in this area myself and hope to launch my own visual programming environment next month or so.”

Few others are happy because Luna features text syntax supports building functional blocks. Another user commented, “I like that Luna has a text syntax. I also like that Luna supports building graph functional blocks that can be nested inside other graphs. That’s a missing link in other tools of this type that limits the scale of what you can do with them.”

To know more about this, check out the official Luna website.

Read Next

Declarative UI programming faceoff: Apple’s SwiftUI vs Google’s Flutter

Polyglot programming allows developers to choose the right language to solve tough engineering problems

Researchers highlight impact of programming languages on code quality and reveal flaws in the original FSE study