FAQs
How is it pronounced?
Graph-uhl.
I don't like the license
Not a question, but, please reach out to me and let's discuss!
Do please read the other relevant FAQ though.
Why source-available?
Aren't all programming language's open source now?
All textual languages are. Not all IDEs are. This is more of an IDE. And the textual part of the language, including the entire webassembly compiler is open source [here](https://github.com/MichaelBelousov/graphlt).
One of my design goals has been to make sure that the visual programs can be cleanly isomorphic to a textual language, and I am committed to open sourcing everything at that layer. The visual IDE though I am not committed to open sourcing at the moment.
I will write more about this on my personal blog at some point, but at its core, I would love to be able to work on this full-time sooner than later. I think I can do that reasonably without making it free for commercial usage immediately, and then once there is enough support, I think we can plan to transition even the IDE to open source. I know to some that might sound like an empty promise, but I've tried to make the initial license as free as possible. If you still don't like it, please refer to the previous question.
What are the usage restraints?
Go read the license.
If you want to use it commercially, there's a big 12-month trial period.
How is this different from other visual scripting languages?
The project has a few goals to circumvent the problems of many visual scripting languages:
- The IDE and runtime should be portable to almost all systems (hence zig, WebAssembly and [dvui](https://github.com/david-vanderson/dvui))
- The language should be deterministically interchangeable with a textual language (graphlt), this means a few things:
- Existing text based tools (like version control or classical text editors) can be used without issue. (I myself really want to be able to edit people's nodes in vim!)
- Both the text language (graphlt) and the node language should use strict but fair deterministic formatters to eliminate the need for people editing the text to have to declare node positions, and to also prevent merge conflicts on node position changes.
- Certain concepts like backwards node edges must be disallowed or limited very carefully to prevent overly complex node formatting algorithms.
- The graph macro system allows emulating other visual scripting systems in the language!
- Control flow, types, and objects will be a first class citizen.