rcardin.bsky.social
@rcardin.bsky.social
A new month, a new version of #YAES 🥳 Version 0.8.0 finally introduces the `YaesApp`. Now, you can develop your direct style #Scala app, and Yaes will take care of the execution of most of the effects 🙌

Plus, we redesigned Channels and added overflow policies! 💪

github.com/rcardin/yaes...
November 12, 2025 at 7:39 AM
#Scala Effects lovers, here is the Halloween 🎃 release of #YAES. We introduced Channels in the library. Now, fibers can communicate asynchronously through message passing 📨. #Kotlin Channels heavily inspired the feature.

Here are the release notes: github.com/rcardin/yaes...
October 23, 2025 at 8:26 AM
Version 0.5.0 of the #YAES effect system is here 🚀 (just in time for @scaladays.org...fiuuu). We added the `State[S]` effect to the #Scala 3 party 🥳. However, be careful that the current version is not thread-safe.

Here are the release notes: github.com/rcardin/yaes...
August 16, 2025 at 11:55 AM
I'm reading @sam-cooper.bsky.social's "Kotlin Coroutine Confidence". It's a masterpiece💫, even if you already know #Kotlin coroutine machinery:

It's worth your money 💰: pragprog.com/titles/sckot...
August 8, 2025 at 9:26 AM
#DropsOf #Kotlin: Kotlin was the first language on the JVM implementing continuation passing style (CSP) directly in the compiler 🚄. It rewrites every suspending function using CSP, adding a `Continuation` object to the parameters and rewriting the body accordingly 🪄
July 20, 2025 at 1:53 PM
#DropsOf #Java: Checked exceptions were a good idea ✨. They are some form of an effect system. You know precisely what kind of effects a function performs. To eliminate the effect, you need to handle it, and the compiler forces this behavior. However, they don't compose with lambdas 🤷‍♂️
July 19, 2025 at 11:58 AM
#DropsOf #kotlin: Do you know you can implement the race primitive 🚗 for coroutines in just one line of code?

The `channelFlow` has its coroutineScope, and when the `first` function cancels the Flow execution, it cancels all the running coroutines that did not win the race. 😍
July 18, 2025 at 9:10 AM
#Scala lovers, version 0.4.0 of the #YAES effect system is out!🚀 What a journey.🤪 The new `Resource` effect is here, and now you can even zip two different `Flow`. Wow, concurrent programming on flows! 🎉

Here are the release notes: github.com/rcardin/yaes...
June 9, 2025 at 3:21 PM
Hey, #Scala lovers! I'll give a talk at the next @scaladays.org 2025 🎉. I still can't believe it 🤪.

Let's meet in Losanna to share our experiences on direct-style and monadic effect systems! I'll bring my (on-going) knowledge about the former, with my library #YAES ⭐️

See you there 👋
May 30, 2025 at 7:51 AM
Version 0.3.0 of the #YAES library just landed 🚀. No new effects this time, but the porting of the first bunch of methods of the #Kotlin `Flow` type! #Scala has flows now, and they compose well with YAES effects 🙌

Here are the release notes: github.com/rcardin/yaes...
May 9, 2025 at 2:12 PM
Yesterday I played with the #YAES library to understand what is missing to gain RT. Guess what 🤔? Maybe I managed to introduce some form of RT in a #Scala direct-style approach. I need you 🫵 to join the discussion:

github.com/rcardin/yaes...

cc @scalatimes.com
April 30, 2025 at 6:31 AM
Hey, #Scala devs! To celebrate the Liberation Day in Italy 🇮🇹(April 25th), here is a new version of the #YAES library! We added the `Log` effect that does what its name promises 😅

Keep on coding! 🙌

github.com/rcardin/yaes...

@scalatimes.com
April 24, 2025 at 1:05 PM
#Scala Effect Systems' lovers 💕, version 0.1.0 of the #YAES library is out! 🎉 We added the `Clock` and the `System` effect. I know, not too much, but it's still honest work 😜

Check it out: github.com/rcardin/yaes...

cc @scalatimes.com
April 16, 2025 at 12:11 PM
On my way to Italy 🇮🇹. Again, thanks to @scalar-conf.com and @softwaremill.com for such a fantastic organization 👏. The talks had an extremely high quality 📈

See ya!

Don't forget to leave a star ⭐ to my project, github.com/rcardin/yaes 🙏
March 29, 2025 at 4:38 AM
The last day of the @scalar-conf.com is over. Oh boy, what an adventure. 🎉 Many thanks to all the people who work to make it happen 🙏

Thanks to @rockthejvm.com for being such a great mentor and friend. Thanks to Martin for all the rest 😜
March 28, 2025 at 6:40 PM
In #YAES, the Async effect lifts a #Scala program to the structured concurrency world. 🚀 We have Fibers to have complete control over the concurrency, but we also provided the standard primitives 🧱 like `race`, `pair` and `racePair`.

github.com/rcardin/yaes...
March 13, 2025 at 4:22 PM
📣Hey, #Scala devs. It's a pleasure my last fatigue: #YAES, a shiny new Effect System library implementing Algebraic Effects. What's different with YAES? Well, you can use a for-comprehension or a capability passing style! 😱

github.com/rcardin/yaes/

See you at the @scalar-conf.com 👋
March 11, 2025 at 4:16 PM
#Java architects are so coherent in implementing the new JDK's features 😎. In structured concurrency, thread canceling is still based on Thread interruption. All the parent-child relationships are tailored around it. Cooperative scheduling, the Java way 🙌.

rockthejvm.com/articles/str...
January 6, 2025 at 11:44 AM
The better way to close 2024 is with version 0.5.0 of the #Scala #Raise4s library! 🎉 Now, you can enable tracing and print the exact place where an error was raised 😱.
In addition, we added integration with Scalameta mUnit 🙌

cc @scalatimes.com

github.com/rcardin/rais...
December 30, 2024 at 4:08 PM
#Java Project Loom introduced the `ShutdownOnFailure` structured policy. It's easy to implement the `par` structured concurrency primitive using it 🥳

Check it out in my last article on the @rockthejvm.bsky.social blog! 🚀

rockthejvm.com/articles/str...
December 14, 2024 at 12:43 PM
The last version of #Raise4s introduced the `accumulate` API. It's so powerful it also accumulates errors in `map` applications on lists! 😱
If you want to use logical typed errors in #Scala, try it! (or at least give me feedback about it 😝)
github.com/rcardin/rais...
December 13, 2024 at 9:59 AM
Extending the `StructuredTaskScope` type introduced by Project Loom, standard structured concurrency primitives like `race`🏎️ can be implemented in #Java.

Check out the new article on @rockthejvm and learn how to do it! 🚀

rockthejvm.com/articles/str...
December 12, 2024 at 11:56 AM
🥁 Version 0.4.0 of #Raise4s is out! We saw the awesome `accumulate` API added in #Kotlin Arrow-Kt 2.0, and we didn't resist porting it into the #Scala world!🙃

Now, it's easier than ever to implement direct style, smart-constructors 🙌

github.com/rcardin/rais...
December 11, 2024 at 8:03 PM
Hey, folks. Version 0.3.0 of #Raise4s is here 🍻 After a while, we added some interesting operators on #Scala iterables (and Typelevel Cats 🐈 `NonEmptyList`) to traverse collection with raised errors.

Check it out! 🙌

github.com/rcardin/rais...
December 4, 2024 at 7:36 AM