Demonstrating Shem & Golem

4K views · 11 years ago · talk · expert · dated

A presentation by xixixao of Shem, a Lisp-like language that compiles to JavaScript, and Golem, the browser-based IDE designed together with it. He argues that language innovation needs its own tooling and cannot happen inside a plain REPL.

HN people recommend it as a worked example of designing a language and its IDE together in the Bret Victor spirit, and often cite it for tooling features they miss elsewhere.

“for my take on PL innovation - can't happen in repl”

7 comments from Hacker News

r
@raould422016 · in “Shem [sic] and Golem s-expr language and IDE”
Submitted the video to Hacker News.
RecommendsView on HN
b
@bkase2015 · in “Shem: A Haskell-Derived Compile-to-JavaScript Lisp”
Don't miss the presentation linked at the bottom of the readme[1], and the browser-based IDE, Golem linked in the middle[2]. [1] ▶ this video [2] link
RecommendsView on HN
x
@xixixao2025 · in “The Future of Programming (2013) [video]”
Me too, for my master thesis: ▶ this video It was a language designed alongside its IDE (which was a fairly rudimentary web app).
x
@xixixao2021 · in “Passerine: A small extensible language designed for concise expression”
Not to discourage, but I think it's worth writing: I too was very much in love with conciseness, and spent a lot of my time with CoffeeScript, and had a blast. That said, if you either - Work with another one person or more - Want to come back to a code you wrote some time ago conciseness is not your friend. Second, new language is really, really, really a lot of work (I know, I spent a year building one). It'd be awesome if more folks invested their energy into improved tooling for existing languages. I desperately want to be able to select a block of Rust, then run a VS Code command and get a new function. I want type-based completion, so that types are filled in for me on conflicts. Better errors and hits for resolutions. And a better playground for Rust would be nice too. Basically most of the things I had in Golem[0]. That said, building a new language is much more fun than trying to wrestle with VS Code dev process. So enjoy the ride! :) [0] ▶ this video
CitesView on HN
x
@xixixao2020 · in “Kicking Off the Repl.it Programming Language Jam”
> We built Repl.it to make it easy to explore and learn languages and programming paradigms. We were, however, surprised by how slow-moving the programming language space seems to be. But also: You have to build a REPL. If I'm constrained to a 60s (50s?) interaction model with my language, how am I gonna build an innovate language? See ▶ this video for my take on PL innovation - can't happen in repl. That said, this is great, I'm all for encouraging experimentation.
CitesView on HN
x
@xixixao2020 · in “Hazel: A live functional programming environment featuring typed holes”
My take on designing a language and an IDE together (2015). Repo: link Playground: link Talk: ▶ this video
x
@xixixao2020 · in “Media for Thinking the Unthinkable (2013)”
Bret has spurred a following. My little contribution[0], Aurora, Lighttable. I'm afraid that wave has mostly died down (do comment if you think otherwise). Instead after 7 years we're converging on VS Code, a mostly traditional IDE "done right", and super pragmatic, but conventional languages (Typescript for high level, Rust for performance). [0] ▶ this video