aboutsummaryrefslogtreecommitdiff
path: root/docs/ASYNC.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ASYNC.md')
-rw-r--r--docs/ASYNC.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/ASYNC.md b/docs/ASYNC.md
new file mode 100644
index 0000000..5b9fa7e
--- /dev/null
+++ b/docs/ASYNC.md
@@ -0,0 +1,17 @@
+# Asynchronous Programming
+
+I don't know enough about asynchronous programming to get started with this section.
+
+Existing systems to learn from:
+- https://github.com/status-im/nim-chronos
+- https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
+- https://tokio.rs/tokio/tutorial
+- https://morestina.net/blog/1686/rust-async-is-colored
+- https://ziglearn.org/chapter-5/
+- https://kristoff.it/blog/zig-colorblind-async-await/
+- https://en.wikipedia.org/wiki/Async/await
+- https://old.reddit.com/r/elixir/np688d/
+
+Asynchronous programming is hard to design and hard to use. Even Rust doesn't do a great job. It *shouldn't* need built-in language support - we should be able to encode it as a type and provide any special syntax via macros. Note that async is not just threading! threading is solved well by Rust's rayon and Go's (blugh) goroutines.
+
+Is async worth having separate from effects?