Stream: beginners

Topic: Congratulations 🥳 (The Future of Roc)


view this post on Zulip ShalokShalom (Nov 24 2025 at 20:08):

Hi there :)

I congratulate to the new directon Roc is reflecting in this video.

https://youtu.be/VnPw9rk8FI8

I think its pretty clear to see, that the syntax improved A LOT, and Roc is on my list of potential contenters to become my main language.

Me and a couple of friends research on concatinative languages to do our own language.

Did Roc consider that as well, as it was originally conceptually?

Do you allow for multiple dispatch?

That would be absolutely game breaking for me :smile:

view this post on Zulip Richard Feldman (Nov 24 2025 at 21:34):

I never considered concetenative for Roc - feels like it makes the language way harder to learn and the benefit doesn't seem to justify it to me

view this post on Zulip Richard Feldman (Nov 24 2025 at 21:35):

by multiple dispatch do you mean you can define multiple implementations of a function with the same name, and then the compiler dispatches to one of them based on the type matching?

view this post on Zulip ShalokShalom (Nov 25 2025 at 00:28):

Richard Feldman said:

I never considered concetenative for Roc - feels like it makes the language way harder to learn and the benefit doesn't seem to justify it to me

Interesting, what do you find harder about it?
Because it is unusual, or some objective reason?

And yes, multiple dispatch as in Julia and Raku.

view this post on Zulip Richard Feldman (Nov 25 2025 at 00:51):

unusual and especially because it's unusual in an unusual way if that makes sense - like it's unusual for Roc to use -> instead of |> but languages use slightly different sets of operators all the time so it's at least the type of thing people are used to being different between languages

view this post on Zulip Richard Feldman (Nov 25 2025 at 04:09):

being unusual about how functions get called is pretty much unique to concatenative languages :smile:

view this post on Zulip Richard Feldman (Nov 25 2025 at 04:10):

multiple dispatch I wouldn't consider because of compiler performance

view this post on Zulip Richard Feldman (Nov 25 2025 at 04:10):

I don't think it's likely that you can both have that and a fast compiler

view this post on Zulip Richard Feldman (Nov 25 2025 at 04:11):

the compiler just has to try a bunch of different options in a bunch of different places, no way around doing tons of extra work

view this post on Zulip ShalokShalom (Nov 25 2025 at 09:04):

Richard Feldman said:

multiple dispatch I wouldn't consider because of compiler performance

Oh, I would have expected that you think it can only be applied with dynamic dispatch, so that argument instead surprised me. :slight_smile:

Well, Raku and Julia both have proper compiler performance, so I don't think its unsolvable.

Obviously, this depends a LOT on how strong the global type inference is, and there are ways to make that performant.

As an argument for it:
It solves the expression problem (almost no language does that, besides dynamically typed ones) and it is the obvious way to perform polymorphism for open source projects.

You cannot extend freely with most other forms of polymorphism, which is desirable for closed source projects.

Which is probably the reason for its absence in popular languages.

About concatenation, I will say that this is an understandable reasoning from a human perspective, and a non-argument from an engineering perspective:

Unusual syntax and semantics can simply mean, we are are used to doing it wrong.

Getting off cigarettes also feels unusual, I don't see how this is an argument against it.

Being compatible with the expectations of people can simply suggest that we repeat the mistakes of the past:

Its compatability to disfunction.

view this post on Zulip Anton (Nov 25 2025 at 10:51):

We often think in terms of weirdness budget, something can be unusual/weird if it brings enough benefits and does not make the language too weird overall. If the language is optimal from an engineering perspective but so unusual that basically nobody wants to try it out, we will not have made a meaningful impact on programming. So we want to strike a good balance here.


Last updated: Nov 28 2025 at 12:16 UTC