Book description
Explore the world of lightning fast Clojure apps with asynchronous channels, logic, reactive programming, and more
About This Book
- Discover Clojure's features and advantages and use them in your existing projects
- Explore lesser-known and more advanced features, constructs, and methodologies such as asynchronous channels, actors, logic programming, and reactive programming
- Measure and monitor performance, and understand optimization techniques
Who This Book Is For
If you're looking to learn more about its core libraries and delve into the Clojure language in detail, then this book is ideal for you. Prior knowledge of the Clojure language is required.
What You Will Learn
- Understand tools for the Clojure world and how they relate to Java tools and standards (such as Maven)
- Write simple multicore programs using Clojure's core concepts, such as atoms, agents, and refs
- Get to grips with Clojure's concurrency and state-management primitives in depth
- Analyze latency using the Criterium library
- Avoid reflection and boxing with type hints
- Maximize the impact of parallelization, functional composition, and process transformation by composing reducers and transducers
- Modify and add features to the Clojure language using macros
- Test your code with unit tests, specs, and type checks to write testable code
- Troubleshoot and style your Clojure code to make it more maintainable
In Detail
Clojure is a general-purpose language from the Lisp family with an emphasis on functional programming. It has some interesting concepts and features such as immutability, gradual typing, thread-safe concurrency primitives, and macro-based metaprogramming, which makes it a great choice to create modern, performant, and scalable applications.
This learning path aims at unleashing the true potential of the Clojure language so you can use it in your projects. It begins with installing and setting up the Clojure environment before moving on to explore the language in depth. You'll get acquainted with its various features such as functional programming, concurrency, reducers, transducers, core.async and core.logic, and so on with a great level of detail.
Moving on, you'll also learn how to enhance performance using Java interoperability and JVM-specific features from Clojure; you'll even master language features such as asynchronous channels, actors, logic programming, reactive programming, metaprogramming, and so on.
This learning path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products:
- Clojure for Java Developers by Eduardo Díaz
- Clojure High Performance Programming, Second Edition by Shantanu Kumar
- Mastering Clojure by Akhil Wali
Style and approach
This is an easy-to-follow, step-by-step guide to start writing Clojure programs, making use of all of its varied features and advantages.
Table of contents
-
Clojure: High Performance JVM Programming
- Table of Contents
- Clojure: High Performance JVM Programming
- Credits
- Preface
-
1. Module 1
- 1. Getting Started with Clojure
- 2. Namespaces, Packages, and Tests
- 3. Interacting with Java
- 4. Collections and Functional Programming
- 5. Multimethods and Protocols
- 6. Concurrency
- 7. Macros in Clojure
-
2. Module 2
- 1. Performance by Design
- 2. Clojure Abstractions
- 3. Leaning on Java
- 4. Host Performance
-
5. Concurrency
- Low-level concurrency
- Atomic updates and state
- Asynchronous agents and state
- Coordinated transactional ref and state
- Dynamic var binding and state
- Validating and watching the reference types
- Java concurrent data structures
- Concurrency with threads
- Clojure parallelization and the JVM
- Parallelism with reducers
- Summary
- 6. Measuring Performance
- 7. Performance Optimization
- 8. Application Performance
-
3. Module 3
- 1. Working with Sequences and Patterns
- 2. Orchestrating Concurrency and Parallelism
- 3. Parallelization Using Reducers
- 4. Metaprogramming with Macros
- 5. Composing Transducers
- 6. Exploring Category Theory
- 7. Programming with Logic
- 8. Leveraging Asynchronous Tasks
- 9. Reactive Programming
- 10. Testing Your Code
- 11. Troubleshooting and Best Practices
- A. References
- Bibliography
- Index
Product information
- Title: Clojure: High Performance JVM Programming
- Author(s):
- Release date: January 2017
- Publisher(s): Packt Publishing
- ISBN: 9781787129597
You might also like
book
Clojure Programming
Clojure is a practical, general-purpose language that offers expressivity rivaling other dynamic languages like Ruby and …
book
Clojure High Performance Programming - Second Edition
Become an expert at writing fast and high performant code in Clojure 1.7.0 About This Book …
book
Clojure Programming Cookbook
Handle every problem you come across in the world of Clojure programming with this expert collection …
book
Mastering Clojure Macros
Level up your skills by taking advantage of Clojure's powerful macro system. Macros make hard things …