Duration: 4 hours
The idea is to get out of the workshop excited about a better way of coding JS and with enough confidence, knowledge and materials to code and continue with ClojureScript programming.
All of it will be as hands-on as possible, while clarifying any doubts.
For a general view of the great things we will go through and why ClojureScript is awesome, see the following section aimed at prospective learners.
Why learn ClojureScript
Some of the advantages of the language that will be shown and learnt are:
You can use external JS libraries with ClojureScript.
Interactive development (REPL driven development)
Don’t reload your page millions of times a day. ClojureScript is thought up to be dynamic and to encourage an interactive development style. You can eval your code and test it as you go coding, making the feedback loop instant, providing the satisfaction and security that you are coding exactly what you want.
Think of having your browser, and the developer tools REPL in the same place, with a solid dynamic code injection mechanism.
Immutable by default
ClojureScript favors immutability by default, making it easier to program with values, and to reason about your code. All that at a really good performance.
Modern data structures
ClojureScript includes a set of rich modern data structures that are immutable by default and have good performance. Vectors, lazy lists, hash maps, sets, a whole group of performant immutable data structures to have you covered when expressing your programs.
The pack is completed with the excellent standard lib that comes with the language.
Excellent standard library
ClojureScript is very well suited for functional programming with its data structures and the libraries of functions for manipulating and composing data and functions, and being expression oriented.
Favor pure functions when possible with immutable inputs and outputs, and write solid and expressive code.
Modern language (and backwards compatible)
Namespaces, destructuring, short function, code generation macros, lazyness, functional programming, immutability, multi-platform, variadic functions, polimorphism via protocols…
With a library called core.async, ClojureScript provides CSP semantics (like in go lang) for great use with concurrent code. A great alternative to callbacks, promises, reactive programming and streams.
I hope to convey and excite you about all this advantages, introduce and teach you the language, and make you enjoy the coding and learning with it.
- Tools and ecosystem for developing with ClojureScript applications.
- How to do interactive development of web applications.
- To create a small web game with ClojureScript.
- To create a small web application with ClojureScript.
- Learning resources and guidance to continue learning ClojureScript.
- A taste of CSP semantics in ClojureScript and why they are awesome.
- Interest about learning ClojureScript
- A laptop.
- Java > 1.6 http://www.java.com/en/download/help/download_options.xml
- In a terminal do
java -versionand expect to see something similar:
java version “1.6.0_65” Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
- In a terminal do
- Leiningen > 2.0 http://leiningen.org/#install
- If somebody can’t get this to work, I can help you in the workshop
- Lighttable http://www.lighttable.com/
- A working Git installation https://help.github.com/articles/set-up-git
or a Git capable application like the Github app.
- http://mac.github.com/ or http://windows.github.com/
- Maybe a Github account
- Chrome (latest stable)
- Wifi enabled