Update README.org
This commit is contained in:
parent
4a506033a0
commit
d35bd34a70
1 changed files with 42 additions and 16 deletions
58
README.org
58
README.org
|
|
@ -7,17 +7,40 @@
|
|||
body {
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
background-color: ivory;
|
||||
line-height: 1.3;
|
||||
line-height: 1.5;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 1.8rem;
|
||||
padding-left: 0.5rem;
|
||||
border-left: 4px solid #3498db;
|
||||
}
|
||||
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content {
|
||||
max-width: 48em;
|
||||
}
|
||||
|
||||
.outline-2 div {
|
||||
margin-left: 1em;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
a:link { color: #0066CC; text-decoration: none;}
|
||||
a:visited { color: #551A8B; }
|
||||
a:hover { color: #004499; text-decoration: underline; }
|
||||
a:active { color: #FF6600; }
|
||||
a:link {
|
||||
color: #2E5EAA;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:visited {
|
||||
color: #663399;
|
||||
}
|
||||
a:hover {
|
||||
color: #1a4480;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
#+END_EXPORT
|
||||
#+title: Grimu-R
|
||||
|
|
@ -32,7 +55,7 @@ It consists primarily of the following components:
|
|||
- [[#inspiration][Inspiration]]
|
||||
- [[#goals][Goals]]
|
||||
- [[#immediate-feedback-and-composability][Immediate feedback and composability]]
|
||||
- [[#executable-build-targets][Executable build targets]]
|
||||
- [[#embeddable-build-targets][Embeddable build targets]]
|
||||
- [[#hassle-free-reproducible-builds][Hassle-free reproducible builds]]
|
||||
- [[#reactivity-taken-seriously][Reactivity taken seriously]]
|
||||
- [[#malleability][Malleability]]
|
||||
|
|
@ -71,11 +94,11 @@ It consists primarily of the following components:
|
|||
Grimu-R makes it easy to inject new processing steps, visualize intermediate results,
|
||||
experiment and reuse previous work.
|
||||
|
||||
** Executable build targets
|
||||
** Embeddable build targets
|
||||
|
||||
A live visual editor allows one to prototype, debug and execute one-off jobs comfortably.
|
||||
An interactive visual editor allows one to prototype, debug and run one-off jobs comfortably.
|
||||
|
||||
But the work can always be distilled into an executable artifact, such as:
|
||||
But the work can always be distilled into an executable artifact:
|
||||
a CLI tool, an RPC server, or a web application, to be distributed as such or integrated into larger workflows.
|
||||
|
||||
** Hassle-free reproducible builds
|
||||
|
|
@ -102,7 +125,9 @@ Real code blocks in familiar languages are prioritized from day one, leveraging
|
|||
|
||||
** Powerful out-of-the-box toolkit
|
||||
|
||||
To get you started without implementing your own components.
|
||||
Get started without implementing your own components.
|
||||
|
||||
No code to low code to high code.
|
||||
|
||||
* Non-goals
|
||||
Some things Grimu-R itself will not take care of, delegating them to the surrounding environment:
|
||||
|
|
@ -125,6 +150,8 @@ Grimu-R aims to take the best without the worst from:
|
|||
- Rigid, limited or proprietary visual programming environments
|
||||
- Messy, brittle script bundles held together by spit and duct tape
|
||||
- Opaque, obscure, perishable code notebooks
|
||||
|
||||
while being developer-first.
|
||||
* Nomenclature
|
||||
Grimu-R introduces some fanciful jargon to avoid the wrong technical connotations.
|
||||
|
||||
|
|
@ -171,7 +198,7 @@ directly in the visual editor, enabling live code changes without rebuilding the
|
|||
|
||||
Grimu-R projects being Nix flakes, the development tooling ("loom") is provisioned as a Nix shell.
|
||||
|
||||
It gives you the visual editor, the companion CLI tool and the scroll-defined execution context for spells.
|
||||
It gives you the visual editor, the companion CLI tool and the execution context for spells.
|
||||
|
||||
** Workflow
|
||||
|
||||
|
|
@ -186,7 +213,7 @@ Think Unix pipes but with structured data formats like JSON lines instead of pla
|
|||
|
||||
** Execution environment
|
||||
|
||||
Scrolls used in a weave define their requirements in Nix terms.
|
||||
Scrolls used in a weave have their requirements defined in Nix terms.
|
||||
|
||||
For example, if several scrolls need Node.js, they can all refer to the same nodejs Nix package defined in the flake.
|
||||
All of that, and optionally the visual editor, is bundled into a target build ("edition").
|
||||
|
|
@ -198,7 +225,7 @@ All of that, and optionally the visual editor, is bundled into a target build ("
|
|||
| | CLI client + RPC server | React component |
|
||||
| | Web application | |
|
||||
| | | |
|
||||
| Scripting languages | TypeScript/JavaScript | DuckDB SQL |
|
||||
| Scripting languages | TypeScript | DuckDB SQL |
|
||||
| | Bash | Python |
|
||||
| | Haskell | R |
|
||||
* FAQ
|
||||
|
|
@ -208,8 +235,7 @@ No, but it could be.
|
|||
|
||||
One framework called [[https://cycle.js.org/][Cycle.js]] defines a web application as a pure dataflow mapping that has sinks wired back to sources, proxied by drivers that handle side effects.
|
||||
|
||||
Grimu-R can do a similar thing if you want it to, although this usage is not supported out of the box.
|
||||
|
||||
Grimu-R can do a similar thing if you want it to.
|
||||
Or you could use any framework you like with the dataflow stuff being incidental.
|
||||
|
||||
** A user can execute arbitrary code on my backend? Really?
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue