Readit News logoReadit News
stblack · 6 years ago
The Rust playground is one of the many great things about Rust.

It's really helpful to share code and try concepts. The mere existence of the playground is a catalyst to reduce and refine problems before airing them to get help from the wider community.

Furthermore it's well integrated with the Rust community forums. The share button functionality is brilliant.

A minor quibble: its state management is not particularly intuitive. There's no notion of "save" or "branch" or versions as in Gists, for example. If there is, I haven't found it. The playground URL appears to be a hash of its contents? That's my guess. Does anybody know?

steveklabnik · 6 years ago
Code is here: https://github.com/integer32llc/rust-playground

> Does anybody know?

Yes, there's no branching for gists, but there are saves. If you hit "Share", you get various options:

* Permalink to the playground <- this creates a gist. URL is the gist hash.

* Direct link to the gist <- this gives you a link to the gist

* Embedded code in link <- this URLencodes the source and puts it in a parameter

* Open a new thread in the Rust user forum & Open an issue on the Rust GitHub repository <- hopefully self-explanatory

koffiezet · 6 years ago
Looks like it's heavily inspired by the Go playground (which took it's inspiration also elsewhere, but afaik was a first for a compiled language).

There's always a trade-off between ease of use and flexibility, and I think the KISS principle is great for a tool like this. Never used it for Rust (only playing with it at the moment) - but in the Go world it's also referenced and used everywhere.

selykg · 6 years ago
I really like to use CodeRunner for these types of purposes, I just save off the snippets of code into a folder so I can easily locate those ideas/thoughts/snippets later.

https://coderunnerapp.com

dom96 · 6 years ago
I wonder why we're seeing this on HN's front page now. Did something change recently in the playground?
ones_and_zeros · 6 years ago
xpe · 6 years ago
I disagree with the tweet:

> The Rust playground is pretty dope. D*mn near a full blown IDE running in your browser ...

I am not a fan of exaggeration. No, it is not ‘near’ a full-blown IDE.

That said, I think the Playground is wonderful, especially for a compiled language.

skocznymroczny · 6 years ago
See Rust, upvote
melling · 6 years ago
One of the many stages of acceptance. It’s a long road. I don’t hold it against anyone.

Rust does sound interesting but I’m holding out until the job market begins to grow.

Corporate America tends to be slow in adopting new technologies.

Heck I think Java 8 is still the most popular version of a Java.

bigdict · 6 years ago
Mostly because someone submitted it, then a bunch of people upvoted…
mcintyre1994 · 6 years ago
Something I really like about the Typescript playground is it has lots of examples with documentation and, not to put too fine a point on it, they all compile and run. Obviously this isn't designed for the same use case, but it'd be nice (from my perspective!) to be able to load in some example code that already works and doesn't produce an inscrutable (to a beginner) compile error.

I'm sure this would be a great resource if I did start trying to learn the language though, so thanks for sharing it :)

steveklabnik · 6 years ago
Yeah, the relationship is a bit different. In Rust, we tend to have docs that embed the playground or link to it, rather than having the playground link to docs.
mkesper · 6 years ago
Examples from the book shouldn't be too hard or at least some link to it?
MR4D · 6 years ago
Output of the default code in the app generates errors:

=================

   Compiling playground v0.0.1 (/playground)
error: unexpected token: `...` --> src/main.rs:13:15 | 13 | for x in 0...10 { | ^^^ | help: use `..` for an exclusive range | 13 | for x in 0..10 { | ^^ help: or `..=` for an inclusive range | 13 | for x in 0..=10 { | ^^^

error: aborting due to previous error

error: could not compile `playground`.

To learn more, run the command again with --verbose.

rckoepke · 6 years ago
I've wanted to turn some students onto Rust, so I tried to give them https://github.com/rust-lang/rustlings loaded into a repl.it account -- but the way repl.it works breaks rustlings in multiple ways.

I'd love if this Rust playground could eventually provide that experience.

miccah · 6 years ago
I appreciate the vi mode editing. `:w` will compile and run the program, but that is the only colon command I have discovered.
steveklabnik · 6 years ago
It farms out this behavior to the Ace editor it uses. I'm not sure what all it supports, but that's how you'd figure it out.
miccah · 6 years ago
Thanks for the tip! If anyone is curious I found the list of commands here: https://github.com/ajaxorg/ace/blob/master/lib/ace/keyboard/...
secondcoming · 6 years ago
Compiler Explorer lets you see the generated assembly code, if you're into that sort of thing. Supports loads of languages and compilers too!

https://godbolt.org/z/qM67Pe

masklinn · 6 years ago
Playground also provides that feature, but it doesn't clean the assembly as well, nor does it provide side-by-side view and coloration.

Dropdown menu next to run, select "asm".

didip · 6 years ago
Is there a way to browse what's in it? I'd like to see how people write Rust.
steveklabnik · 6 years ago
There is not, mostly because nothing is “in it”; any persistent state is farmed out to localstorage or gists, as far as I know.