Stream: beginners

Topic: Your first impressions of Roc (beginners only)


view this post on Zulip jan kili (Feb 15 2022 at 04:28):

If you're new to the Roc community & codebase, welcome to this chatroom and welcome to this noobs-only thread! It's exciting to see so many friendly messages over in the "introductions" topic :smiley:

I'm curious - after you first opened the repo, how is/was your initial Roc learning experience? How helpful/fun is the documentation? What is coolest, what is hardest, what is missing, and what is next for you?

view this post on Zulip jan kili (Feb 15 2022 at 04:30):

All perspectives are welcome! :purple_heart:

view this post on Zulip Johannes Maas (Feb 15 2022 at 07:42):

I hope I qualify, I joined a few months ago but haven't really programmed yet.

The introduction and setup are great. You quickly learn the basics and Nim allows you to quickly run the examples. So that's a really nice experience.

My roadblock right now is that I don't want to dabble in platforms, but I don't see a way of trying out Roc with an interesting platform. For example, I would like to do the Advent of Code, but I haven't seen a platform that is "plug'n'play". I feel like I need to build my own platform.

So I guess from my perspective what would be amazing is some example platforms and a few challenges or ideas of what to do with them. Then after that I'd be interested in how to build your own platform.

I hope this is the kind of feedback you were after. :wink:

view this post on Zulip J.R. 'hiljusti' Hill (Feb 16 2022 at 06:35):

My first impression is that the end result of this language will be _very user friendly_. (Both for platform and application devs.) Not sure I can quantify it, but it's certainly the vibe I get.

Aside from that...

The setup is a lot. (Which, for a compiler, is reasonable, imo.) There are a lot of options for setup, and the end goal of cargo run ETC (or cargo build and ./target/debug/roc) are currently unclear unless you recognize Rust projects and know how to run Cargo. The saving grace for me was the nix-shell setup that just did everything for me.

Maybe I'll throw a PR up at some point as an attempt to organize the setup docs.

The editor confuses me. It seems like there's a missing top-level HOW_TO_EDITOR doc right now. It doesn't have vim bindings (yet?) and I couldn't make sense of editing by just being in the editor. I'm not sure I'll use it, but it's clearly a passion of Richard's so I suspect it will end up amazing at some point.

I have a lot of experience with languages that bundle an editor and arguably do it pretty well. I've seen something like a spectrum that starts at "fancy REPL" to "living document" and some notable stops along the way might be Factor, Dr Racket, RStudio, MATLAB, Jupyter, Excel. While I'll still usually prefer some editor-of-choice, I find the extremes tend to be more useful (Factor and Excel) and the middle ones less interesting for "programming" and more interesting for hacking around.

view this post on Zulip Brendan Hansknecht (Feb 16 2022 at 07:34):

@Anton I'm not sure if we have this written anywhere in the repo, but maybe we should put a doc about state and expectations around the editor. How usable is it? How stable should it be? If you want alpha testers yet. Maybe even some rough timeline estimates.

view this post on Zulip Anton (Feb 16 2022 at 08:46):

I have "Work In Porgress" mentions in multiple places but I'll elaborate and try to improve visibility :+1: .

view this post on Zulip Zeljko Nesic (Feb 16 2022 at 10:27):

@Anton If you wish I can do that today

view this post on Zulip Anton (Feb 16 2022 at 10:39):

Yeah sure, thanks @Zeljko Nesic !

view this post on Zulip Zeljko Nesic (Feb 17 2022 at 01:05):

https://github.com/rtfeldman/roc/wiki/Why-Editor%3F-Why-not-VSCode-Emacs-Vim-Notepad--%3F

view this post on Zulip Zeljko Nesic (Feb 17 2022 at 01:05):

Feedback welcome :)

view this post on Zulip Johannes Maas (Feb 17 2022 at 07:39):

Would it be fitting to link to something like Brett Victor's demos in the doc? I totally get what you're aiming for with the editor, but I think to someone only used to textual programming seeing how non-textual interfaces can help you is much more convincing.

Maybe there is a common pain that you already have a good idea of how to solve with the Editor. Telling that story can be really convincing too.

view this post on Zulip Brian Carroll (Feb 17 2022 at 08:00):

Yeah I think it's focusing on the fact that things haven't changed in a long time, but it would be good to expand the parts about what might be possible. Good document!

view this post on Zulip Zeljko Nesic (Feb 17 2022 at 11:29):

Thanks!
This actually forces me to document all the ideas that I have collected and gathered during working on design too! I've been so deep into them that it felt even redundant to communicate them.

I will work on extending the document so it includes some tasty details :)

view this post on Zulip Anton (Feb 18 2022 at 13:50):

I trimmed this down a lot to briefly answer the essence of the question and moved it to a new "Frequently Asked Questions" page on the wiki.
I saved the original text for future use: zeljko-editor.txt

view this post on Zulip jan kili (Feb 18 2022 at 14:09):

Let's also link to the wiki from the README, since I didn't know the wiki existed until this discussion

view this post on Zulip Jose Quesada (Feb 18 2022 at 20:59):

I just finished going through the tutorial. I am pleasantly surprised how simple the language is and am excited to start digging into the nitty-gritty with platforms. I was able to pick up the language in about 1 hours, though this is mostly due to me coming from elm. Very happy to see pipe operators and the addition of back (I forgot the formal name, lol, this thing _ <- _).

I did run into a few issues, however, going through the tutorial, though this is expected at this stage. At the bottom of the tutorial, there's a table of operations, specifically there is one that does not work, as it seams to be superfluous? Perhaps it could be removed. That would be the mod operator %%. Trying to use it produces the error module Num does not export mod.

Phantom data makes sense to me because I saw a talk from Richard about it for Elm in a preview for a course. I'm guessing it's the same thing here.

I think the tutorial should link to the relevant documents guiding the user on how to install everything. I have yet to find a document mention the Roc Editor, but I'll keep digging to find it.

The only other issue I had going through the tutorial was that I remember getting stuck on the first exapmle containing Stdin.line because some issue kept crashing the program. However, I recalled to use roc check before trying to run the script, which definitely halped.

Overall, very pleased with the simplicity and power of the language constructs!


Last updated: Jul 06 2025 at 12:14 UTC