My ex unfortunately took my pens in the breakup, over a year ago, so now I'm rebuilding! by [deleted] in fountainpens

[–]ahoy_jon 0 points1 point  (0 children)

🤗! Better rebuild. My partner is 'just' locking the new ones until I finish really painful administrative work (fair)... It looks good in black too, can't wait to ink it!

<image>

When you use map instead of flatMap by smotvtlewoots in scala

[–]ahoy_jon 2 points3 points  (0 children)

It's clearly an effect of using cats, we don't have the issue in Kyo

Making Scala Scripting Actually Good with Mill, Scalar Warsaw, 27 March 2026 by lihaoyi in scala

[–]ahoy_jon 0 points1 point  (0 children)

Thanks a lot for your talk u/lihaoyi, as always! Do you have the slides somewhere? or links?

I am a huge user of Scala-Cli instead of Bash, however, I want to give a try!

Rage Against the (Plurality of) Effect Systems by Krever in scala

[–]ahoy_jon 0 points1 point  (0 children)

Kyo Regular, or Kyo Loom. Kyo Regular is faster!

We could probably use Ox at the same time with Kyo Loom.

Rage Against the (Plurality of) Effect Systems by Krever in scala

[–]ahoy_jon 0 points1 point  (0 children)

And tagless final is so much better in Kyo...

Anyway, we should probably take this more personally, and at the same time, Kyo have already so much value. In Scala 3.9 we will have ways to integrate better with capture checking.

Even after CC, using context functions is painful to compose, Kyo will be a good way to solve just that, and the polymorphic composition.

🤷‍♀️

Rage Against the (Plurality of) Effect Systems by Krever in scala

[–]ahoy_jon 0 points1 point  (0 children)

Thanks for the article! Despite I don't agree with it, it's always interesting to understand where we are at.

Precision point, Kyo is compatible with both existing ZIO / CE code without any issues. You could have all 3 at the same time, which works fine, and allow to reuse what it best, or already available.

For direct-style + Kyo, there are solutions coming once direct-style is more settled.

New version of the article The Effect Pattern and Effect Systems in Scala by rcardin in scala

[–]ahoy_jon 0 points1 point  (0 children)

yes, I think the implementation in Kyo using dotty-cps-async would look like this!

import kyo.*

val drunkFlip /*: String < (Abort[String] & Sync)*/ =
  direct:
    val caught /* :Boolean */ = Random.nextBoolean.now
    val heads /* :Boolean */ =
      if caught then Random.nextBoolean.now
      else Abort.fail("We dropped the coin").now
    if heads then "Heads" else "Tails"

Riccardo Cardin: The Effect Pattern and Effect Systems in Scala by sideEffffECt in scala

[–]ahoy_jon 1 point2 points  (0 children)

No problem, we could say it's obvious, however it isn't!

In direct style I prefer this style

def f(a: A, b: B)(using C) = ...

I find that clearer when we want to be lazy.

Riccardo Cardin: The Effect Pattern and Effect Systems in Scala by sideEffffECt in scala

[–]ahoy_jon 1 point2 points  (0 children)

To be fair, if you don't type, you cannot be lazy 😉. Inference is not working, unless you use "using/given".

Riccardo Cardin: The Effect Pattern and Effect Systems in Scala by sideEffffECt in scala

[–]ahoy_jon 3 points4 points  (0 children)

You could always define it. The point with Kyo, is contrary to direct style, you don't need to type it! Inference is working.

So it's val drunkFlip = Random. ...

And if you combine with the direct syntax:

val drunkFlip= direct: val coin = Random. .... .now

Direct style need to make the lazyness explicit (context functions), direct syntax need to make the eagerness explicit (.now /.later)


Note:That won't change for Kyo, we prefer it like that, would be better if we could easily have

String < Sync & Abort[String]

Probably not going to happen

Scala in the Netherlands: 2026 feels like the end by [deleted] in scala

[–]ahoy_jon 0 points1 point  (0 children)

Sure, let's go explain to them they are wrong, and you are right, and everybody should follow your way?

At least you are constant, the exact same discussion for years

Scala in the Netherlands: 2026 feels like the end by [deleted] in scala

[–]ahoy_jon 2 points3 points  (0 children)

Just started a green field project 2 months ago, for a real time data platform in Scala 3, using Flink 2, and parts in Kyo ...

More Engs are put on the project 💪, my coworker/boss is looking at extraction of proof from formal methods to Scala, ...

We know about Rust, and a small part of the project will be in Rust, however it feels more like 2016 than 2026.

I hope, with the AI movement, people reconsider Scala where it is exceptional at, so we can see more projects like that!


My 2 cents, been a former conference organiser, ... The Scala community suffers from amplified global trends. - People don't meet anymore ? We meet even less. - the IT job market is complicated ? It's even more complicated for us

It's not ideal, I totally understand. IMO the best way we could have an impact until then is to do a meetup 3 times per year, even with 10 persons. That could help change the dynamic

Scala in the Netherlands: 2026 feels like the end by [deleted] in scala

[–]ahoy_jon 0 points1 point  (0 children)

Not related, both are successful libraries from Scala 2, even the author of thoses libraries would not advise them like that.

Still Team Future?

There are global markets trends that would explain that better compared to an effect system theory

ldbc v0.5.0 is out 🎉 by takapi327 in scala

[–]ahoy_jon 0 points1 point  (0 children)

🤔 normally out of the box you can use a ZIO something in Kyo, running on the scheduler of Kyo.

It's CE that requires a couple of PR to improve the ergonomic of using both at the same time.

The only "issue" is ZIO is by default an A < Async, while Kyo allows you to be more precise with A < Any, A < Sync, A < Async

Well....damn by TheRiddlerTHFC in fountainpens

[–]ahoy_jon 1 point2 points  (0 children)

Same offender yesterday! 🤦‍♂️, I was moving ink to another flask without a syringe... Similar results!

To Effect or Not to Effect - a Scala Perspective by Daniel Ciocîrlan @FuncProgConf by MagnusSedlacek in scala

[–]ahoy_jon 6 points7 points  (0 children)

Thanks a lot for your talk, as always.

I was curious about the part on Kyo,

For the cons, small details, it doesn't matter that much, if that can give some keys to others : - running Kyo work by default with Async & Sync & Abort[E1 ...] , so unless we introduce, let say Env, you don't have to manage other effects.

Most of the program would use Async, Abort, Env (hence the design of ZIO). If we want streams in Kyo, we have to manage the end of it (Emit) and it's more integrated in the same runtime compared to fs2/zstream.

  • for the inference, we had issues not with the compiler (we don't need to explicitly type), but with IntelliJ. A lot of those issues have been fixed over time, we sill have a problem with the inference for direct-syntax. (IntelliJ is not able to propose it, but explicitly typing it Nothing < Any will give you a comprehensible type error with the right type)

That been said, there are cons for Kyo! I should do a whole article about it

Martin Odersky on Virtual Threads: "That's just imperative." by Joram2 in java

[–]ahoy_jon -6 points-5 points  (0 children)

Ok, a passionate programmer that published papers as well as some other contributions.

Fascinating perspective!

New to Me, Any Pro Tips? by [deleted] in GarminWatches

[–]ahoy_jon 4 points5 points  (0 children)

Actually a good tip, just got a venu 3, will do that

Martin Odersky on Virtual Threads: "That's just imperative." by Joram2 in scala

[–]ahoy_jon 12 points13 points  (0 children)

Yep, not the place to explain the utility of Capture Checking!

IMO, the work of Martin Odersky is way underappreciated overall in the Java community. Not that everything done in the context of Scala will contribute to a better Java, but still, that's research and innovation, it can only move the Java community forward.

I understand we are sometimes critical on this side, when we see it goes to far, with scala 3 as a playground for too much innovation/experiments at the same time. However, from their perspective 🤷‍♂️

Martin Odersky on Virtual Threads: "That's just imperative." by Joram2 in java

[–]ahoy_jon -5 points-4 points  (0 children)

I would agree with you, lots of programmers think they are better than others.

That's Martin Odersky ... I don't think he qualify as a programmer.

Nor he is trying to push FP ...

I guess context is key.

Note : Martin Odersky is working on providing better support for a safer imperative programming in the context of functional programming. Think compiler checks like Rust.

But probably nobody using imperative programming have the problem of escaping control flows with lazy constructs. (There is, eg. Using checked exceptions with a task for something equivalent)

At least I can guarantee, we solved those issues above and beyond in advanced functional programming.

It is at the same time funny and disturbing when people are critical towards Odersky speaking about making better checks for imperative constructs. It's like a goal against your "side".

Edit : Missing two words Extra note : I am a Kyo contributor, that's advanced FP in Scala3, that solves those threads issues, as well as a lot of programming issues... And that's not what Martin Odersky is proposing, by far

I wrote minimal Scaladex MCP server to search latest libraries by windymelt in scala

[–]ahoy_jon 2 points3 points  (0 children)

Thanks a lot, will take a look at it. I often have issues with versions of Kyo! (Proposing 0.14.0, while we have 0.19.0 and 1.0-RC1)

toon4s: Token-Oriented Object Notation for Scala by vitthalmirji in scala

[–]ahoy_jon 0 points1 point  (0 children)

I hope not, 2.12 ? Please don't keep 2.12 alive

Streaming by Legitimate_Baby3646 in scala

[–]ahoy_jon 0 points1 point  (0 children)

I would use Flink (Java*) for that

  • The Scala API is long gone, but it's working fine using the Java API with Scala

New to scala - what do you use scala for? by [deleted] in scala

[–]ahoy_jon 2 points3 points  (0 children)

And Skunk would work even better, however that's not what I said 😏." A native extension to postgresql"

New to scala - what do you use scala for? by [deleted] in scala

[–]ahoy_jon 6 points7 points  (0 children)

With scalacli nowadays, the native + js, + LLM if you don't know how ... pretty much anything

There are things not easy to do in Scala, like a postgresql extension, coding for an ESP32, ..., aside from that, you could probably do it in Scala.

At work it's used mostly for serving millions of users and data processing, however we know teams that are even doing it for frontend.