https://en.wikipedia.org/wiki/Draft:Roc_(programming_language)
This is a DRAFT ONLY, and has NOT been submitted for review to become the article.
It won't be submitted for review by me unless an expert fixes it up first, or signs off on it, which perhaps none of you have time for, and if so it won't get published and will get deleted, which is fine.
There are likely to be errors.
This is great! Thanks for taking the time to do this. I'd love to see Roc on Wikipedia soon :smiley:
Some comments;
"Roc's syntax is heavily influenced by Elm and roughly resembles ML-family languages. It uses indentation to define code blocks."
I think this was definitely the case for the original version -- the "new" compiler uses a syntax with parens and commas which looks less like Elm. I'm not sure how it would be described though.
- Pipelines: The
|>operator allows chaining function calls.
This has been deprecated in the new compiler, and now we use static dispatch.
Pattern Matching: The
when ... isconstruct
Also deprecated, the new syntax uses a match expression instead
Instead, it uses a
Resulttype
This has been renamed to Try
Maybe it would be better to leave these details out for now, and instead say the syntax has changed with the new compiler to improve the developer experience and compiler performance.
Thank you. I agree. If it hasn't been documented yet it's best to just omit these details.
I'm curious about the "Try" decision. Is the discussion for that publicly available, like in a Github issue?
See
Maybe not helpful now that it's been closed, but I love the Outcome suggestion :sweat_smile: or maybe Status.
I vote for Attempt (noun rather than verb, but also a verb)
I shouldn't have started a discussion about this here :smile: . Too late now! I think ideally the name of a multiple return type should describe all of the sub types. Ok and Err are both a status in my opinion, although one could also describe them as outcomes or results. I wouldn't call them attempts. But the other issue with attempt is the one you mentioned. It is also a verb and it still reminds me of try as in try catch (exceptions) and an imperative keyword rather than a type.
my sense is: we have an Attempt at an operation. the operation could succeed or fail. if it fails, knowing the specific failure out of a myriad of possible failures is useful. Operation ?
Try has been settled and implemented for a long time. I don't think we need to revisit it. :smile:
:smile: Understood sir.
Thanks for setting this up @riverstone :heart: Can I edit the article directly or should I suggest edits here on zulip?
@Anton Please do edit directly if you're willing! Thanks
Edit is done!
Do you want to do a final pass @Richard Feldman? It's pretty short.
Discussion of features etc. is about alpha4, I didn't want to mix in stuff that's in development
Thanks Anton. From my understanding, Richard deserves credit as the main designer in the infobox. We could put "and the Roc team" if their design involvement has been more than what is already implied by having "Roc Team" as the developer.
looks great overall, thanks for putting this together! :smiley:
From my understanding, Richard deserves credit as the main designer in the infobox.
just looking at other languages' wikipedia pages, it does appear that what consistently goes that box is whoever originally created the language - so I think they're using "designer" to mean "original creator"
it uses a multiple return type (containing either an
Okvalue or anErrvalue)
I would refer to this as an "algebraic data type" (and link to the article on it) rather than a "multiple return type" - just because "multiple return types" usually refers to a different language feature :smile:
also for "implementation language" I'd just put Rust and Zig rather than "Rust --> Zig" - because even the Rust version used Zig for the stdlib, so using both seems appropriate
Richard Feldman said:
just looking at other languages' wikipedia pages, it does appear that what consistently goes that box is whoever originally created the language - so I think they're using "designer" to mean "original creator"
Yes I agree
I'll make all of those changes
Richard deserves credit as the main designer in the infobox.
There is no doubt that Richard is the main designer. We have had extensive discussions about the design of Roc here on zulip and I wanted to make sure to acknowledge everyone's efforts here. I first thought about making it "Richard Feldman & Roc team" but Richard is part of the Roc team so that's kind of weird. Anyway, if the convention is that it means original creator, I am fine with it just being Richard.
Feel free to submit the article for review.
Submitted. We'll see how picky the reviewer is about third party sources. If they reject it it'll have to stay as a draft until more third party sources have been written or provided about Roc.
Any articles from reliable sources including academic journals, magazines etc would help.
I first thought about making it "Richard Feldman & Roc team" but Richard is part of the Roc team so that's kind of weird.
Not at all weird, IMHO. Totally normal turn of phrase.
Rejected! Presumably not enough of the third party sources were considered "independent" enough due to being mostly interviews with Richard. We'll just have to wait for more reliable sources to write about Roc. In the meantime, the draft is a great place to collect third-party sources about Roc, and touching it at least once every 6 months should prevent it being deleted.
thanks for putting it together!
No worries. Thanks for inventing the language.
I've reworked the definition for a Platform and would love suggestions for further improvements if it's not accurate:
The Platform is a domain-specific compilation framework. It acts as as interface between the application and the operating system and allows code compilation to be optimised for the given domain.
Additionally (my take), the boundary for impure functions. Roc itself is pure. Any impure functions in Roc must be calling hosted (platform) functions. The platform is the only possible source of impurity, by design. Platforms necessarily provide I/O and memory management functionality required by a "pure" application.
There is a conceptual distinction beyond a compilation framework. The hosted portion of a platform cannot be implemented in Roc, by definition, and is typically in a systems language, and such build environments can provide access to systems libraries that would not otherwise be available to Roc.
Thanks. I don't know how to word that yet but I'll have a think about it.
I recommend get some else's more authoritative take, and consider mine food for thought. Make sure to review https://www.roc-lang.org/platforms (updated: @Alec Gargett ) I notice this doc is much improved, recently.
Just letting you all know the draft will be deleted in a month if nobody edits it further. No big loss If anyone wants you can save the markdown for if Roc ever meets their weird criteria for notability.
That sounds super frustrating. I wonder if there is anyone who knows anyone who can help?
Hi! I haven't participated here or on Roc in a while, but I'm a fairly active and somewhat experienced Wikipedia editor, so feel free to ping me for any Wikipedia-related questions. As Alex said, I don't think it really matters too much if the draft is deleted, since you can always save the wikitext somewhere else, then recreate the draft later once there are reliable sources covering Roc. But if you don't want the draft to be automatically deleted, literally any edit will suffice to extend it for another six months.
Also, anyone here who edits the draft (including @Alec Gargett and @Anton) should probably disclose a conflict of interest to be on the safe side. And if multiple people edit the draft again, make sure to read Wikipedia's policy on meatpuppetry to make sure not to break it.
I've done a little bit of searching for sources that Wikipedia would consider reliable and independent with significant coverage of Roc, but I can't find any right now, unfortunately. For a draft to meet the general notability guideline and be accepted, it's best to have at least three. (Also see WP:42.) I'm happy to help evaluate any sources if you guys find any in the future.
After the mess of the Odin language page being deleted from Wikipedia I'm not sure how any language gets a Wikipedia page :sweat_smile:
https://www.gingerbill.org/article/2026/04/20/odin-wikipedia-fiasco/
https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Odin_(programming_language)
It feels like unless the New York Times covers your language it doesn't meet their criteria
Well, books by a reputable publisher or academic articles in reasonably well-regarded journals/conferences would work too, but yeah, there's a sense in which your feeling is right. Wikipedia's general notability guideline needs to be extremely general; it's the same guideline that's often used to decide whether to include a person, a sports team, a song, or a philosophical concept. Some subjects have their own notability guidelines, but there isn't currently one for programming languages.
I don't think the author of that post understands how Wikipedia works very well. It's totally understandable that they'd suspect a personal vendetta from a "Wikipedia mod", since it looks like some of the comments in that discussion were pretty mean. But none of the participants were Wikipedia admins (assuming that's what they mean by "mod"). Anyone can participate in a deletion discussion, and the mean quote is from an unregistered account that's only ever made one edit. I would guess that that comment didn't really affect the result.
I do agree that it would probably be good to have a separate notability guideline for programming languages and related topics, but it seems to me like the existing guideline was applied neutrally and correctly in this case. Similarly, I personally really like Roc, but I don't think it satisfies Wikipedia's criteria yet either.
Hannes said:
It feels like unless the New York Times covers your language it doesn't meet their criteria
Or Women's Weekly
I have saved the draft
I think we can do this... someone must know a tech journalist who can throw a quick post together. We should only need a few articles right? The rewrite story is probably a perfect bit of content?
I don't think there is much about programming languages in their "reliable" sources these days, because most programming journalism self-published as blogs, but if someones know a tech journalist who works for a "reliable" publication by their standards and who would write about Roc, then yes.
I don't think we need to be in a rush to get a Wikipedia article haha
if we're successful it'll happen :smile:
Richard Feldman said:
I don't think we need to be in a rush to get a Wikipedia article haha
I very much appreciate it when people have that attitude, and I think a lot of other Wikipedians do too :)
Last updated: Jul 23 2026 at 13:15 UTC