One of the major benefits of moving to LambdaGraph as SmSn's underlying data model (#65) is that programs will be valid elements in the graph. That means that queries can be naturally embedded in the graph as further elements. However, these elements will be somewhat more complicated to work with. In particular, we will need:
A way to display programs in a user-friendly format
A way to interpret programs in the context of the graph
A way for users to define their own programs and easily debug them
While (1) and (2) are straightforward (and will be inherited directly from Hydra), (3) could be difficult without IDE integration. It is simply too easy to define invalid programs in a Hydra DSL -- or indeed any strongly-typed language -- without spotting the problem until you attempt to run the program. Perhaps the expectation should not be that developing programs is part of the same user experience as that of jotting down notes in Emacs or another client. Instead, the user makes use of their IDE for developing programs, but includes the source directory (or a generated directory) in their graph.
Note: the same is probably true of graph schemas. While they can be included in the graph once written, they are best developed using Hydra's Types DSL with the help of an IDE.
One of the major benefits of moving to LambdaGraph as SmSn's underlying data model (#65) is that programs will be valid elements in the graph. That means that queries can be naturally embedded in the graph as further elements. However, these elements will be somewhat more complicated to work with. In particular, we will need:
While (1) and (2) are straightforward (and will be inherited directly from Hydra), (3) could be difficult without IDE integration. It is simply too easy to define invalid programs in a Hydra DSL -- or indeed any strongly-typed language -- without spotting the problem until you attempt to run the program. Perhaps the expectation should not be that developing programs is part of the same user experience as that of jotting down notes in Emacs or another client. Instead, the user makes use of their IDE for developing programs, but includes the source directory (or a generated directory) in their graph.
cc @jmatsushita