Skip to content

Commit

Permalink
docs: end basics
Browse files Browse the repository at this point in the history
  • Loading branch information
tassiluca committed Mar 4, 2024
1 parent 5e31e84 commit 7c360a9
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 86 deletions.
7 changes: 4 additions & 3 deletions docs/content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

## Goals of the project

> In the realm of asynchronous programming, the Scala ecosystem offers a set of solid monads constructs to tackle complex task functionally with elegance and efficiency, like [Monix Tasks]( and [Cats ](
> In the realm of asynchronous programming, the Scala ecosystem offers a set of solid monads constructs to tackle complex task functionally with elegance and efficiency, like [Monix Tasks](https://monix.io/docs/current/eval/task.html) and [Cats Effect](https://typelevel.org/cats-effect/).
>
> However, we are assisting to the increase in adoption of continuation and coroutines in modern runtimes, either exploiting some kind of fibers support, like the project Loom with Virtual Thread in the JVM ecosystem, or via code generation, like Kotlin Coroutines.
> However, we are assisting to the increase in adoption of continuation and coroutines in modern runtimes, either exploiting some kind of fibers support, like the project Loom with Virtual Threads, or via code generation, like Kotlin Coroutines.
>
> The goal of this project is to delve into this field through the lens of direct style, developing few examples (not too complex) leveraging the new *strawman* library [Scala Gears](https://github.com/lampepfl/gears), comparing it with Kotlin's Coroutines and the current implementation of monadic Futures, seeking to analyze aspects such as:
> - ergonomicity of the two styles (which one results more thoughtful and/or verbose)
> - which of the two approaches has a real advantage in adoption
> - pros and cons of the two styles
Expand All @@ -15,7 +16,7 @@
## Overview

The project is built around three main example, delving from the fundamentals of the direct style framweork for simple asynchronous computation to reactive like systems.
The project is built around three main examples, delving from the fundamentals of the direct style frameworks for simple asynchronous computation to more complex reactive-like systems.

1. [`Boundary` and `break`](./docs/01-boundaries)
2. [Basic asynchronous constructs](./docs/02-basics)
Expand Down
2 changes: 2 additions & 0 deletions docs/content/docs/01-boundaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,5 @@ object EitherConversions:
/** Converts a `Throwable` to a `String` with its message. */
given Conversion[Throwable, String] = _.getMessage
```

This kind of data type will be particularly useful in the next examples to quickly break in case of failures, returning the caller a meaningful error message, and simplifying the error-handling code.
Loading

0 comments on commit 7c360a9

Please sign in to comment.