Lisp for the Web cover page

Lisp for the Web

Lisp for the Web

Simplicity, power and consistency in the age of the web.
Lisp for the Web Edit
This book is 100% complete


About the Book

When it comes to expressiveness and consistency, Lisp still holds an edge over the mainstream languages of today. Add the open-source ecosystem of Common Lisp, free high-quality environments, their optimizing compilers and we land at a technology well-suited for the productive programmer looking for a new power tool.

The goal of this book is to identify the strengths of Lisp and what they can do for us. The book puts Lisp to work developing a web application. Starting from scratch, we'll develop a three-tier web application. I'll show how to:

  • utilize powerful open source libraries for expressing dynamic HTML5 and JavaScript in Lisp,
  • develop a small, embedded domain-specific language tailored for my application,
  • extend the typical development cycle by modifying code in a running system and execute code during compilation,
  • migrate from data structures in memory to persistent objects using a third party NoSQL database (MongoDB), and
  • finally show how we can execute a MapReduce algorithm on a remote database server without even leaving our Lisp environment.

I'll do this in a live system transparent to the users of the application. The idea is to convey a feeling of how it is to develop in Lisp rather than focusing on the details. In the process we'll find out how a 50 years old language can be so well-suited for modern web development and yes, it's related to all those parentheses. Now, download the book, get the source code and let's make programming just as fun as it always should be.

Read more

Table of Contents

  • Introduction
    • What’s new?
    • Source code to Lisp for the Web
    • Preparations
      • Get a Lisp
      • Installing libraries with Quicklisp
    • About Adam and Adam
    • About Adam Tornhill
    • Credits
  • Lisp for the Web
    • What to expect
    • The Lisp story
    • Crash course in Lisp
    • The Brothers are History
      • Representing Games
      • A prototypic backend
      • Customizing the printed representation of CLOS objects
  • Entering the Web
    • Generating HTML dynamically
    • Macros: Fighting the evils of code duplication
    • More than an opera
      • Meet the Hunchentoot web-server
      • Publishing content
    • Putting it together
    • Adding Games: forms and client input
  • Expressing JavaScript in Lisp
    • Lisp for the web browser
    • Generating JavaScript
    • On event handlers
      • Extending our DSL for custom scripts
      • Towards robustness
    • The Lisp advantage
  • Persistent Objects
    • MongoDB as a backend
      • From Lisp to Mongo and back again
      • Migrating to persistence
      • Avoid Duplicates with Constraints
    • CLOS: Observers for free
    • Sorting games through MongoDB
    • Remembering the Games
  • MapReduce in Lisp
    • Pushing work to the server-side
    • The MapReduce algorithm in MongoDB
      • Specifying the steps with Parenscript
      • Executing MapReduce from the REPL
    • A natural extension: presenting charts by category
  • Endgame
    • Final considerations
    • On backends
      • SQL
      • NoSQL alternatives
      • Persistent objects protocols
    • Moving on
      • Book recommendations
      • Code reading

Read More

About the Author

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up.
See full terms