Hacker News new | ask | show | jobs
by wdanilo 3080 days ago
@seanmcdirmid We are not yet there, but we develop Luna to target EXACTLY these use cases - program modification AND very direct data manipulation. We see Luna as an unified platform for building rich DSL's. An example of such rich DSL is what Bret Victor demonstrated in his talk. You can read more about rich DSL's and what Luna is meant to be in our blog post here: https://medium.com/@luna_language/luna-the-visual-way-to-cre...

Regarding your thoughts, Luna is a fusion of both approaches. When you create and connect nodes, you are manipulating the program structure - you define how data flows between components. However, every node has the ability to display an interactive results visualization and input data widgets. Basically these visualizations and widgets allow you to work directly with data – you can create canvas visualization which let you paint on it, you can create a 3D scene visualization which would allow you to not only inspect 3D scenes but also modify them etc. These visualizations can be displayed below nodes or can be detached to be separate windows and are defined as HTML/js snippets.

Does it make sense to you?

2 comments

I guess at this point, I just see a nice VPL; it seems to have the liveness properties of Quartz Composer, at least, which, as you say, displays an interactive results visualization and input data widgets (though you might have to turn the patch around or mouse over an input pin). It seems to fit into Tanimoto's liveness level 4 taxonomy.

If you have some direct manipulation and gradual abstraction going on, I haven't seen it in your examples or explained in your docs.

Also, have you checked out Conal Elliott's Tangible Functionla Programming (Eros) work? It is a bit dated (2007) but explores being more direct in a Haskell-like language.

http://conal.net/papers/Eros/