small medium large xlarge

Functional Programming Patterns in print; Backbone Marionette

November 13, 2013

Absolutely nothing interesting happened on this day in history. Yet. This is your chance to change that!

Now's your chance to understand functional programming with Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM, now in print and shipping from

And if you struggle with growing JavaScript apps, tame that beast with Backbone Marionette, now available from

Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM

Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you'll gain a broad understanding of functional programming.

For each pattern, you'll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you’ll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you’ll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion.

Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you'll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM.

On the book's home page (on the Details tab), check out a Q&A with Michael Bevilacqua-Linn and 5 tips for when you dive into the functional programming world.

Now in print and shipping from

Backbone Marionette

Backbone.js has become a popular library for developing modern web applications as their complexity and size increase. With Marionette.js, boilerplate code is handled by the library, letting you focus on your application's specifics. You'll discover Marionette components, along with when and why to use them. After you've made it through the book, you'll be comfortable writing a Marionette application on your own.

Exercises covering the basic concepts are included (with solutions), so you can check for yourself if you've properly understood the functionality that was covered in a given chapter.

You'll learn how to build an application (demo online at davidsulc) step by step, including:

  • Structuring your large apps with modules to manage complexity
  • Using regions and layouts to segment your displays and make them manageable
  • Managing forms, along with error display
  • Handling data latency and displaying loading views
  • Filtering collections and updating views, matching URL fragments to filtering criteria
  • Extending the Marionette framework to clean up your code and make your life easier
  • Using mixins to add common functionality to objects
  • Defining your own view classes to extend from, sharing common behavior
  • Implementing Backbone routing properly
  • Swapping sub-applications
  • Managing menu entries with non-persisted models

And much more! All of this is covered step by step so you fully understand how and why code is being added, removed, or refactored.

This book was written and produced entirely by the author. We are proud to be distributing it.

Now available from

Did You Know?

You can synch your ebooks amongst your devices via Dropbox, including updates! Just login to your account on, edit your profile, and connect your dropbox account. See our FAQ for details.

Upcoming Author Appearances

  • 2013-11-13 Johanna Rothman, Better Software/Agile Development East, Boston MA
  • 2013-11-14 Jonathan Penn, CocoaConf Atlanta
  • 2013-11-14 Tony Hillerson, AnDevCon
  • 2013-11-14 Johanna Rothman, Better Software/Agile Development East, Boston MA
  • 2013-11-14 Chris Adamson, CocoaConf Atlanta
  • 2013-11-15 Jonathan Penn, CocoaConf Atlanta
  • 2013-11-15 Chris Adamson, CocoaConf Altanta
  • 2013-11-15 Chris Adamson, CocoaConf Atlanta
  • 2013-11-16 Jonathan Penn, CocoaConf Atlanta
  • 2013-11-17 Johanna Rothman, Problem Solving Leadership Workshop, Albuquerque, NM
  • 2013-11-18 James Grenning, BITS – Software Developer Conference, Denmark
  • 2013-11-20 Rachel Davies, Agile Iceland
  • Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this Follow us on Twitter: @pragprog, @pragpub, Andy @PragmaticAndy and Dave @pragdave.

    Coming Soon:

    • Developing Android on Android: Automate Your Device with Scripts and Tasks
    • The Dream Team Nightmare
    • Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development
    • Build Awesome Command-Line Applications in Ruby, 2nd Ed.
    • Create Mobile Games with Corona: Build with Lua on iOS and Android
    • Node.js the Right Way: Practical, Server-Side JavaScript That Scales

    Recently Released:

    Thanks for your continued support,

    Andy & Dave The Pragmatic Programmers

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts