candera edited this page Jan 25, 2012 · 94 revisions

ClojureScript One

We think that ClojureScript is amazing and that it provides endless possibilities for making web development much more fun. To realize these possibilities, we need your help. Someone has to do the work to turn the possible into reality.

We think that the best way to convince you to help us is to allow you to experience the wonder of ClojureScript development for yourself. The purpose of this project is to help you get started with ClojureScript as smoothly and quickly as possible and to set you up with an excellent working environment.

Getting started means many things. We often forget how much we need to know to be comfortable in a programming environment. How do we organize code? How do we test? What is the most productive workflow? How do I deploy my application? We will attempt to answer all of these questions and provide working examples.

The project includes a working sample application, useful tools, and libraries in various states of development. Many of the libraries in the project will eventually mature and become their own projects. The process of creating good libraries and frameworks takes time and experience. Instead of waiting until they are finished, we thought it would be better to show you now. Once you see the potential, we know that you will want to join in and help.

Why is it called "ClojureScript One"?

ClojureScript is well suited for writing client-service applications which must run reliably for long periods of time within a single page.

The project is named ClojureScript One because it is the first step in learning to write these applications which are also written in one language on both the client and the server. You deploy a single JavaScript file and can think in terms of one process and one paradigm. There is one data format for representing data both within an application and while being transmitted across the network. Finally, as you work with the included tools you will start to notice that the line between tool and application will blur and the two will appear to become one.

Apart from Clojure and ClojureScript, ClojureScript One is built on top of Ring, Compojure, Enlive and Domina. The code for every other feature is included in this repository. If you go through and understand all of this code you will learn a lot about ClojureScript. It is our hope that learning will pay off with new and even better ideas than those presented here.