Clojure is a simple and beautiful language, but one source of friction to programming in Clojure is getting a development environment setup correctly. Sometimes setting up the development environment can be so daunting that people give up before even getting to actual programming. This is often true with Clojure development, requiring developers to install and setup: java/node.js, emacs (cider, clojur-emode, paredit), vim, IntelliJ/Cursive, Lighttable, git, leiningen/boot before a single line of Clojure code is written. Learning to use these tools effectively is another major source of friction. So far we've only experimented with HTML because it only requires a text editor.
While setting up a development environment is unavoidable, we can delay the pain and have a taste of what programming is like without the complex setup: Power Turtle to the rescue
Power Turtle is a project, built on top of a Google project Clojure Turtle that allows coding Clojure in a visual and fun way directly in the browser without any additional dependencies
Here is a talk by the creators introducing the project Learning Clojure through Logo - Elango Cheran, Timothy Pratley
This site is called Lambda Kids. λ is the Greek letter used to represent a mathematical model of computation called Lambda Calculus. The other model of computation is called Turing Machine. It turns out both models of computation are isomorphic, a fancy math word meaning equivalent. Anything that a Turning Machine can compute, the Lambda Calculus can compute also. Likewise anything that the Lambda Calculus can compute, a Turning Machine can compute.
If Turning Machines and Lambda Calculus are equivalent, why not just learn one way of programming? Because true understanding of anything comes from seeing that thing from multiple perspectives. This is true in life and in mathematics. In fact mathematics is useful because it gives us tools to see problems from many different perspectives. In mathematics this is called isomorphism , a fancy word for finding an equivalance between two different systems. You are already familar with this concept. Analogies, metaphors, and parables are examples of isomophisms (more accurately homomorphisms ) and are useful tools we all use to learn new concepts and ideas or to understand a familar idea better. You do not truely understand something until you can see it from multiple perspectives.
Lambda Calculus is the theoretical foundation of a programming paradigm called functional programming. The purpose of this site is to teach programming in general with a focus on functional programming from the perspective of kids using a dialect of LISP called Clojure
As a parent, I'm always thinking of what the future will be like and how to prepare my son Connor for it. Technology changes quickly and computer languages come and go. Why teach kids an old language like LISP? Wouldn't it be obsolete by the time they enter the workforce?
Predicting the future is hard, but the faster technology changes, the more important it is to understand from first principles. The ideas in LISP are timeless because it is based on Lambda Calculus. Lambda Calculus was discovered/invented before electronic computers existed. It existed before humans were around and will exist after humans are extinct. No matter what new language becomes popular, having a solid understanding of LISP will prepare them to learn much faster than someone who does not understand LISP.
Clojure is a practical LISP. They can use it now to create useful things from desktop, server and mobile and web apps. They do not have wait to "grow up" to create something useful for the world or earn money. If these kids continue to pursue self-study of Clojure, they don't need to study computer science in university and can pursue other interests either in the arts/humanities or the sciences/mathematics The future is multidisciplinary and knowing computer science alone will not be enough.