Book Image

Learning ClojureScript

By : W. David Jarvis, Allen Rohner
Book Image

Learning ClojureScript

By: W. David Jarvis, Allen Rohner

Overview of this book

Clojure is an expressive language that makes it possible to easily tackle complex software development challenges. Its bias toward interactive development has made it a powerful tool, enabling high developer productivity. In this book, you will first learn how to construct an interactive development experience for ClojureScript.. You will be guided through ClojureScript language concepts, looking at the basics first, then being introduced to advanced concepts such as functional programming or macro writing. After that, we elaborate on the subject of single page web applications, showcasing how to build a simple one, then covering different possible enhancements. We move on to study more advanced ClojureScript concepts, where you will be shown how to address some complex algorithmic cases. Finally, you'll learn about optional type-checking for your programs, how you can write portable code, test it, and put the advanced compilation mode of the Google Closure Compiler to good use.
Table of Contents (15 chapters)
Learning ClojureScript
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Preface

Chapter 4. Web Applications Basics with ClojureScript

ClojureScript, because of its very essence (Clojure targeting JavaScript through the use of the Google Closure library), has led to various approaches as far as developing on the browser is concerned.

As being a hosted language with powerful JavaScript interoperability primitives, ClojureScript empowers its developers to mirror their JavaScript DOM manipulation and events handling habits in their ClojureScript code, as if they were translating it verbatim.

But one can go one level further in abstraction, and take advantage from the Google Closure library's central place in ClojureScript to write better and more browser-agnostic DOM manipulation and events handling routines.

The DOM can also be accessed through the usage of ad hoc developed ClojureScript libraries, built to abstract away the raw browser's API in an idiomatic Clojure-esque way.

Besides manipulating directly the DOM, the development on the browser can be addressed through client...