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