Roc Language - a new purely functional programming language built for speed and ergonomics

Hi folks,

I don’t know if I saw this here but, here’s a new programming language, called Roc
Reminds me a bit of Elm and thus Haskell. I’m not so surprised as it’s a talk made by Richard Feldman.
I really like this guy’s talks, especially ones about why FP is not the norm and from RoR to Haskell.

A little tour of the language here:

4 Likes

Corresponding tweet for this thread:

Share link for this tweet.

2 Likes

Can I read more about it. I have seen the YouTube links but prefer to read about it.

2 Likes

Unfortunately, I’ve not found any article about it yet.

2 Likes

Looks interesting Maartz - thanks for posting :023:

I only watched the first few minutes, do you know who created it and what it’s intended purpose is?

Personally I am not a fan of whitespace dependent syntax as I think my brain just isn’t wired for it :lol:

4 Likes

I don’t really know who create it. But since it’s a talk from Richard Feldman I guess it comes from NoRedInk.

One of its posts on LinkedIn says:

Roc is a bleeding-edge, purely functional programming language built for speed and ergonomics [etc]

Same, I can’t stand Python because of that. The same goes for Elm.

3 Likes

I’m not actually seeing what it brings over OCaml yet based on that video. A lot of the language is almost identical to OCaml, even Tags in it are just Polymorphic Variants (except the presenter doesn’t seem to show tag constraints, meaning it’s a very restricted list of capabilities compared to what polymorphic variants can do). I’m not seeing what it brings over OCaml at all based on that video… Backpassing is also odd, OCaml did that completely via libraries as well (with even more simple syntax, no weird arrow thing, and yes OCaml’s does the same “lambda flip” that the roc backpassing one does via its let(%) keyword, etc…). It also seems to be missing a vast amount of optimizations that ocaml has as well, let flattening single arg lambdas into multi-arg calls (which gives you ‘free’ currying in most cases or just a single function call in others), so it constrains you into not allowing you to build function lambdas cleanly.

And worst of all, it doesn’t appear to be an open source development… o.O
Either that or I just can’t seem to find a repository via google, which would definitely hamper its OSS visibility…

Plus there’s some… odd design decisions of what’s shown about the standard library, like writing to stdout is infallible… which is absolutely not true… o.O

But yeah, I’m not a fan of these languages from these specific authors that keep coming out saying it has all this new cool stuff that’s just rehashing of what OCaml and Haskell (usually just OCaml) has already done, it’s really weird and really really disingenuous especially with how often this seems to keep happening with these same authors over the past many years…

3 Likes

I’ve understood throughout the forum that you’re a huge OCaml fan!

You’re right there’s nothing. And to answer the question about the fact that it’s published, I guess it’s still in its early stage, but why would you do a talk about it, and give a link to the website if there’s no repo? Didn’t think of that tbh.

Makes me think of ReasonML.

Besides, which book would you recommend me to learn OCaml? I’m really eager to try an ML language.

2 Likes

I quite like OCaml, other than how extremely slowly it moves, and maybe a couple of design decisions in it, lol.

Early or not the source should still be somewhere if it exists at all. Without having the source we can’t even assume that the examples in the video were actually real and not just part of the powerpoint presentation…

ReasonML is actually OCaml though, lol. OCaml’s compiler has pluggable front-ends (language syntax), backends (compile to native code, interpreter, javascript, lots of other things), as well as middle plugins (at lots of various stages of the compiler pipeline), it’s truly an amazing compiler. ReasonML is just a pluggable front-end on the OCaml compiler, it’s basically a javascript’y OCaml, not really my preference but I can see why some would like that syntax, I prefer to just keep with OCaml though.

The online books are quite good, I’m unsure what physical books to suggest, even the classes we’ve had here for OCaml just used the online references (OCaml has a pretty good documentation ecosystem, not as good as like Rust (but few things are), but still quite good).

OCaml is truly a fantastic language to learn in, it’s like as succinct as Python, as fast as C, and as safe as, well, any other very strongly typed language (if you ignore Obj.magic, which is the OCaml version of the Rust’s unsafe keyword, which you definitely shouldn’t touch either unless you very very very well know what you are doing).

EDIT: And yes, Roc definitely looks like it could just be a frontend to the OCaml language, except it’s not, what I could find out about it online makes it look like it’s either going to be made or at least partly made now in Rust, not that I could find any code for it.

3 Likes

Yeah, kinda flies in the face of “built for […] ergonomics”, when “ergonomic” preferences in languages vary so widely.

2 Likes

Sorry, I couldn’t help it … I’m sure Roc is a Roc’in’ new language :smiley:

5 Likes

I’m with you on this one. Way too easy to screw up your real intent and it is not always easy to spot the problem. Python anyone?

Same thing holds true for “config”-like files in my mind too. YAML? :face_vomiting::joy:

4 Likes

Check out this on Coursera:
They actually start off with ML, then Rackett then Ruby.

3 Likes

lmao that’s the horrible truth!

2 Likes

I agree and I smile at the meme…

but that said, the world does not need any more love songs or sunset photos and yet we keep on…

I’ve seen multiple Roc videos (one from ETE and that linked one). Richard is a fantastic teacher and presenter. I have a lot of respect for him and his work. I think there are some interesting ideas about platforms, security and the developer code editing experience inside of Roc. I have no plans to really invest in learning Roc for production concerns atm but enjoy seeing the project progress.

4 Likes

I agree that Richard Feldman is a fantastic teacher and I really liked his introduction to Elm.

That’s the main reason for this post. I’m always glad to see new things, especially in FP.

Despite that, it’s very sad there’s no repo to check the roadmap or the actual state of dev.

4 Likes