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 we deploy our 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.
This project will help you lean how to:
- use ClojureScript tools and other Clojure libraries to create a productive development environment
- effectively work with the ClojureScript tools
- organize your code
- keep visual design activities separate from application code
- test ClojureScript using any Clojure test framework
- structure a ClojureScript application
- use Clojure data to talk to a Clojure service
- build and deploy to Heroku
- work with ClojureScript dependencies
Is this a library or a framework?
ClojureScript One is hard to classify. It is not a library or a framework. It is more like a classroom, a laboratory or a starter kit. Frameworks limit you to a specific way of thinking. Libraries attempt to do something for you. We hope that this project will help you to think of things that no one has ever thought of and empower you to do things that you may not have thought possible. But most of all, we hope that it will show you how much fun web development can be in ClojureScript.
The intended use of the project is:
- Get all the tools running
- Read through the wiki, running all the examples
- Fire up a browser-connected REPL and explore the sample application
- Use this project as a starting point for your own applications
- Contribute what you have learned back to this project
You will need to have Java, lein and git installed. Execute the following commands to install and run One:
git clone https://github.com/brentonashworth/one.git cd one script/deps script/run
Open your browser and navigate to http://localhost:8080
ClojureScript One welcomes help from the community in the form of pull
requests, bug reports, wiki updates, and hugs. If
you wish to contribute code, please read How We Work.
In particular, note that pull requests should target the
pull-requests branch, not
- ClojureScript One does not currently support developing under Windows. The included sample application, however, can be viewed in IE9 and (with some degradation in behavior) in IE8. Versions of Internet Explorer previous to 8 are not supported at this time.
- Everything on the project issues list.
One last rant
ClojureScript is designed to make client-service applications. Traditional web applications run mostly on a server with a small amount of UI code running on the client. The problem with this kind of application is that there is a big giant network right in the middle of your application. We have learned how to deal with this so well that we actually think this is a good way to write software. There are many applications for which this is a good approach. But there are also many applications which would be better as client-service applications where the entire application runs in the client and uses backend services which can easily be thought of as other applications.
Copyright © 2012 Brenton Ashworth and Relevance, Inc
Distributed under the Eclipse Public License, the same as Clojure uses. See the file COPYING.