Racket is famously a "language to create languages", so Urlang is leveraging that capability inside Racket. It isn't Racket (or Scheme, even). The author calls it "JavaScript with a sane syntax", but it's a lot more than just a direct translation -- you can have macros and the Racket editor understands the syntax appropriately and does checking at compile time. Taking advantage of the macros, it also offers rich loop constructs and other conveniences. Number one advantage for me is I can use standard JavaScript libraries like three or mithril.js.