Stream: beginners

Topic: Newstarter


view this post on Zulip Gary Sassano (May 17 2024 at 19:03):

Does it make sense to learn ROC without knowing Zig and Rust?

view this post on Zulip Ian McLerran (May 17 2024 at 19:14):

Yes! As an application (or package) author, you don't need to have any knowledge of Rust or Zig. If you want to start contributing to the Roc language / compiler, you'll need to learn Rust (and or Zig). I've been enjoying playing around with Roc since 2022 and published a couple Roc packages, and haven't learned any Rust or Zig yet.

However, the longer I write Roc, I occasionally run into compiler bugs that are increasingly inspiring me to learn Rust so I can tackle some of them myself.

view this post on Zulip Gary Sassano (May 17 2024 at 19:19):

What was your motivation for learning and starting to contribute to Roc? How did you hear about it for the first time? I've just discovered it thanks to this talk: https://www.youtube.com/watch?v=jIZpKpLCOiU

view this post on Zulip Ian McLerran (May 17 2024 at 19:28):

I thought that video might have put you onto it! I was actually just watching that video when you posted your question! My motivation for learning/contributing to Roc was two fold - or really one thing combined with another.

Back in college I took a programming language design class, during which I had to learn and write some Haskell. Haskell really blew my mind at the time. It was a completely different paradigm to all the procedural and object oriented programming I had done thus far, and really forced me to think about problems in a new way. I really enjoyed this, but Haskell is not a very practical language for most applications.

Well back around mid 2022, I was on a youtube binge, listening to a bunch of Richard Feldman's talks. Roc came up quite frequently, and I became intrigued. Various language features sounded interesting, the guarantees of pure functional programming always seem enticing, and I liked the idea of a 'fast & friendly' purely functional language.

view this post on Zulip Ian McLerran (May 17 2024 at 19:30):

So here I am today! I really love writing Roc. I find it generally to just be a really enjoyable language to work with. The ecosystem is still young, which means there's lots of opportunity to write a package, platform, or other tool that doesn't exist yet, and the community is helpful and friendly!

view this post on Zulip Gary Sassano (May 17 2024 at 21:43):

So Roc is Rust but functional programming langauge? I saw Richard comes from Elm (Haskell)

view this post on Zulip Ian McLerran (May 17 2024 at 22:16):

Not quite - Roc is like Elm but for general purpose programming (the “long tail of domains”).

view this post on Zulip Ian McLerran (May 17 2024 at 22:26):

Having written neither Elm nor Rust, I am not the most qualified to speak to that subject, but I can try to compare/contrast a little. From my limited knowledge of Rust, I would say that while Roc does borrow a few ideas from the language, it has very little in common with Rust, either in syntax, function, or ethos.

Syntactically I think Roc looks quite similar to Elm, but through its concept of “platforms”, adapted for general purpose programming. Like Elm, Roc is purely functional, and so many errors which cannot be caught until runtime in other languages (including Rust) can be caught at compile time.

I would say that it is much closer Haskell than Rust, if only for the simple fact that neither support mutation. Both are purely functional languages, and so on that basis are similar. Meanwhile Rust is an imperative language that allows you to do some functional things.

view this post on Zulip Ian McLerran (May 17 2024 at 23:23):

For context, the reason for the development of the language pretty much boils down to Richard wishing he could have the Elm developer experience when writing for the backend or other domains.

view this post on Zulip Tobias Steckenborn (Jul 06 2025 at 10:16):

Maybe to just add it here - given somebody who hasn't used Roc in the course of the last year is right now a good time to pick it up again? I saw some discussions about syntax changes and new functionality that might come with the new compiler. Is that ready for taking a dip (just on AoC level, nothing actual) or would it better to wait a few months as the changes or not yet available / ready?

view this post on Zulip Luke Boswell (Jul 06 2025 at 10:32):

Roc is very nice to use for AoC type things or basic webservers rn. This is the published nightly version which is written in rust.

The new syntax is in the zig compiler which isn't usable rn. We have roc check working for single modules and some language features but you would have to compile roc from source. We're aiming to have it usable again for the next AoC.


Last updated: Jul 06 2025 at 12:14 UTC