Hacker News new | past | comments | ask | show | jobs | submit login
Maria: A ClojureScript coding environment for beginners (maria.cloud)
212 points by macco on Nov 17, 2022 | hide | past | favorite | 32 comments



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.


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


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.


Have you ever looked into Racket?


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.


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


Example gallery is quite beautiful!

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


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!


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

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


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.


As a Jason, you get used to it.


Good one :)


Ships are given female names too because, apparently, they used to be dedicated to goddesses. I do think even common female names sound more majestic to me than common male names for projects whether that's because of cultural tradition or because women are still abstract mysteries to me (jk).

Fwiw, Travis CI never bothered me despite its ubiquity when I got into software dev. It's not really "random contexts". The context of whether someone is talking about me or CI is actually quite clear. It's 1000x more confusing when someone else shares your name in the office.


I imagine they’d find it no more annoying than do Frank, Bob, Doug or Russell.

In fact I might call my next project Karen. Because things can only get better for her.


https://everything2.com/title/People+with+programming+langua...

(Spoiler: It's mostly men.)

AI Personal assistants on the other hand do seem to have feminine names or voices.


Those are last names.


haskell is a first name.



MariaDB is a fork of MySQL and was introduced in 2009. Is this new?

Other than that, Maria is also a male name although not very common.

~50% of humans are female and if there is a „trend“ for giving female names to software, yes, please do it more.


My point is, I don’t recall seeing any tech product named “John”. We shouldn’t be using first names for random products regardless of gender. People somehow assume that female first names are somehow better suited as names for some software product, than male names.

It’s new in the sense that I keep noticing them more often lately.



Haskell, Erlang, Pascal… Maria is a reference to Maria Montessori, whose educational philosophy inspired Maria.cloud.


> Haskell, Erlang, Pascal

Those are family names, correct me if I’m wrong.



You're wrong. Haskell is named after Haskell Brooks Curry. There might be an opportunity for a new functional language named Brooks.



https://www.houseofnames.com/maria-family-crest/Italian#:~:t....

Maria is also a surname, what's your point?


Haskell and Erlang perhaps, but Pascal is both.

But I think the larger point, that male names are only rarely used, stands.


That's really cool, great work!

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


Very nice. Reminds me of LightTable in the early years


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


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..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: