Settings

Theme

Maria: A ClojureScript coding environment for beginners

maria.cloud

212 points by macco 3 years ago · 33 comments

Reader

h34t 3 years ago

Developer here. We wrote Maria 6 years ago, and this fall I accepted a ClojuristsTogether grant to bring it back into active development. We hope to simplify/modernize the codebase to make it something people can hack on top of to add features & apply to new use-cases.

Repo: https://github.com/mhuebert/maria

ClojureD talk introducing Maria: https://www.youtube.com/watch?v=CUBHrS4ZzO4

Description of 2022 grant work: http://blog.maria.cloud/2022/09/30/Maria-and-Clojurists-Toge...

I'll be posting updates to twitter, @mhuebert.

Happy to answer any questions / hear ideas for improvement & extension.

  • Royalaid 3 years ago

    Just want to say love your work! Js-interop was super useful when I was working in clojurescript land.

esrh 3 years ago

This is really fantastic!

I've always felt like the lisp family could be a potentially killer educational language, with clojure being a good pick for its focus on functional ideas while being a bit more concise (and practical (looking at scheme)) than some other lisps.

Typically, most programmers start out with an imperative language and then eventually learn a functional language. I've wondered what it would be like to learn programming from scratch starting from key functional concepts like lists, map/fold/filter, recursion, and first class functions.

This kind of drawing program also has the benefit of making it simpler to explain some of the benefits of lisp-like languages specifically, in the sense of "wow i'm typing s-exps of the same structure a whole lot, I wonder if i could make it more elegant to type some how" -> macros.

Clojure has one of the heavier installation procedures, with its dependency on java. Plus, getting a decent repl environment takes at the very least installing rlwrap, and at the most emacs and CIDER. On that note, does anybody know of an all-in-one, simple, repl-focused, lightweight clojure IDE, like the IDLE for Python?

CLJS is looking pretty optimal. I only just played around with Maria, but it seems like a really friendly environment, especially the helpfully named functions, autocomplete, and of course the repl. It's overall super polished, 100% already rivals pygame and logo as educational tools which were super fun for me when I started programming.

  • epgui 3 years ago

    Have you ever looked into Racket?

    • bobbylarrybobby 3 years ago

      Agree, Racket was my first PL (well, it was Scheme back then) and in hindsight it was incredibly refreshing to not have to fight the computer to get my program to work. No syntax errors (no real syntax to speak of), no gotchas, no UB, no integer overflow... the list goes on. It gives you the opportunity to sit back and just think through your algorithms, which is what I think beginners would most benefit from.

    • canadianfella 3 years ago

      You’re right, that’s exactly where Racket really shines.

pgayed 3 years ago

Example gallery is quite beautiful!

https://www.maria.cloud/gallery?eval=true

filoeleven 3 years ago

This is really great. A zero-installation CLJS notebook would have already been cool, and Maria has that, powered by (defcell). It also has the shape library, which makes playing around with higher-order functions more intuitive to understand than just seeing a series of numbers as a result. It can also output HTML!

user3939382 3 years ago

Nice since the 4clojure exercises went down, which I had a lot of fun with.

* Just found this! https://4clojure.oxal.org/ Yess

dsnr 3 years ago

What’s with this new fashion of using feminine names for tech products? Imagine being a woman, working in an office, and hearing your first name in random contexts. I see how that could become annoying.

katspaugh 3 years ago

That's really cool, great work!

I've been wanting to take https://lambda.quest in a similar direction. Interactive tutorials are the future!

zubairq 3 years ago

Very nice. Reminds me of LightTable in the early years

willsmith72 3 years ago

I was just looking for something like this to learn Clojure. Thanks!

  • willsmith72 3 years ago

    One note: maybe I missed it, but it could help beginners to mention somewhere that you need your cursor outside of the expression to run it. Caught me up..

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection