shell reviews and mentions
-
Show HN: Diggy – run practical and recreational languages in a browser
Hi HN. Over the last week, I was working on a playground that could run practical and recreational languages in a browser. To a certain extent, it is a follow-up to a recent (and much upvoted) HN post about one famous company trying to kill a like-minded open-source project. I am unaffiliated with both parties, but I felt unpleasantly frustrated with the story and decided to give something back to the community and build a similar project from scratch. [0]
To be frank, there is not much new about Diggy. It stands on the shoulder of giants: the code is executed in a Python process that is launched through NsJail. On the frontend it is Svelte. The code is executed inside protected environments, but there are some limitations such as time & memory limits, no networking, etc. It is a boring tech-stack. I like it.
But, hey, Diggy runs on a cheap DigitalOcean instance in a docker-compose environment (drum roll… awaiting the HN hug of death?) One can complete computer science assignments, try new languages. Sure, there are no accounts. It is a sandbox, and everyone is welcome. Grab a large bucket and a shovel; it is playtime!
Oh, yeah, I think I said it already, but Diggy is open-source, and anyone can self-host it. It won’t blow a hole in your budget, and it is simple to install. [1]
Currently, Diggy could run only two languages: Python and Ruby. Python has two pre-installed libraries: numpy and matplotlib. Not much, you say? I will add support for more languages over the next week. It is super easy. This is what I have in mind: compiled languages: C, C++, Clojure, C#, Erlang, Go, Java, Rust, Scala, and interpreted languages: Bash, Basic, Common Lisp, Haskell, Javascript, Typescript, Lua, Markdown, OCaml, Perl, PHP. Huh… did I miss anything?
This is just a small weekend project. But there is a reason Diggy will stay light (except that I haven’t finished it yet): programming is not the luxury of a few people. It must be simple to learn.
[0] http://diggy.sh/
[1] https://github.com/diggyhq/shell
Stats
The primary programming language of shell is Python.
Sponsored