Fans pick 39 books like Domain-Specific Languages

By Martin Fowler,

Here are 39 books that Domain-Specific Languages fans have personally recommended if you like Domain-Specific Languages. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of Domain-Driven Design: Tackling Complexity in the Heart of Software

Alexander Granin Author Of Functional Design and Architecture

From my list on domain modeling.

Why am I passionate about this?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Alexander Granin Why did Alexander love this book?

My journey in the world of software development has been arduous and challenging.

One of the common struggles we all face is the overwhelming number of solutions available, making it impossible to fully grasp everything at a deep level.

Just when I thought I had mastered an approach and felt competent in it, a new shiny approach would emerge, demanding my immediate attention. It often felt like a never-ending race to keep up with the ever-evolving field.

This constant pursuit of staying relevant as a software engineer can be frustrating, as it feels like we are always lagging behind the rapidly advancing world. I discovered that knowledge of specific technologies, frameworks, or libraries does not easily transfer across different technology stacks. They are too specific and lack universality. It was then that I turned my focus to more general principles of software engineering.

I realized that there are fundamental engineering…

By Eric Evans,

Why should I read it?

2 authors picked Domain-Driven Design as one of their favorite books, and they share why you should read it.

What is this book about?

Incorporate effective domain modeling into the software development process

Software design thought leader and founder of Domain Language, Eric Evans, provides a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining system design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software modeling and development.

Domain Model: Part I outlines the goals of domain-driven development, defines terms, and gives an overview of the implications of using the…


Book cover of Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

Many functional programming books concentrate on the detail of functional techniques (things like recursion or higher-order functions), often leaving open the gap between these techniques and their concrete application to solve everyday programming tasks.

This was one of the reasons I wrote my book, and one source of inspiration for me was the work of F# evangelist Scott Wlashin.

For many years, Scott has been showing how he applies functional thinking in his daily practice centered around e-commerce, through blog posts on his popular site and his talks at programming conferences. At popular request, he's organized these ideas into his book Domain Modelling Made Functional.

The examples are practical enough that every business application programmer will be able to relate to them, and his explanation of functional programming techniques and ideas is clear and rigorous. Although Scott encourages the adoption of F# (the functional-first language of the .NET family), these…

By Scott Wlaschin,

Why should I read it?

2 authors picked Domain Modeling Made Functional as one of their favorite books, and they share why you should read it.

What is this book about?

You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established…


Book cover of Function and Reactive Domain Modeling

Alexander Granin Author Of Functional Design and Architecture

From my list on domain modeling.

Why am I passionate about this?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Alexander Granin Why did Alexander love this book?

I'm a devoted advocate of functional programming and a passionate Haskell enthusiast.

Ironically, there was a time in my life when I was a student and held the belief that functional programming was merely an impractical academic pursuit.

However, I soon had a revelation that the techniques I employed in C++ to mitigate the inherent unsafety of the language actually aligned with the core principles of functional programming: immutability, purity, and composability.

This realization left a profound impression on me, prompting me to delve into learning Haskell. It proved to be a pivotal moment that significantly shaped my entire career trajectory.

As I delved deeper into functional programming, I discovered a significant void in terms of software engineering practices that were prevalent in the realm of object-oriented programming.

Drawing from my experiences in C++ and C#, I noticed numerous gaps in our understanding of how to build robust applications using…

By Debasish Ghosh,

Why should I read it?

1 author picked Function and Reactive Domain Modeling as one of their favorite books, and they share why you should read it.

What is this book about?

Functional and Reactive Domain Modeling teaches readers how to think of the domain model in terms of pure functions and how to compose them to build larger abstractions. It begins with the basics of functional

programming and gradually progresses to the advanced concepts and patterns needed to implement complex domain models. The book demonstrates how advanced FP patterns like algebraic data types,

typeclass based design, and isolation of side-effects can make models compose for readability and verifiability.



On the subject of reactive modeling, the book focuses on higher order

concurrency patterns like actors and futures. It uses the Akka framework…


Book cover of Refactoring: Improving the Design of Existing Code

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why did Federico love this book?

This book is different from the others I recommended, because its focus is not really on creating algorithms, but rather on how to improve code with a systematic process, keeping functionality but enhancing quality.

The author shows several practical techniques that he applies to real-world problems and empower you to elevate your code's quality and adapt it seamlessly to changing needs. It's not just about writing code; it's about becoming a more effective and confident developer.

I consider this book a companion on the journey to mastering the craft of coding. With it, you’ll always be able to achieve higher-quality code, no matter the original version of the code.

By Martin Fowler,

Why should I read it?

2 authors picked Refactoring as one of their favorite books, and they share why you should read it.

What is this book about?

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…


Book cover of R For Dummies

Tilman M. Davies Author Of The Book of R: A First Course in Programming and Statistics

From my list on intro to programming and data science with R.

Why am I passionate about this?

I’m an applied statistician and academic researcher/lecturer at New Zealand’s oldest university – the University of Otago. R facilitates everything I do – research, academic publication, and teaching. It’s the latter part of my job that motivated my own book on R. From first-year statistics students who have never seen R to my own Ph.D. students using R to implement novel and highly complex statistical methods and models, my experience is that all ultimately love the ease with which the R language permits exploration, visualisation, analysis, and inference of one’s data. The ever-growing need in today’s society for skilled statisticians and data scientists means there's never been a better time to learn this essential language.

Tilman's book list on intro to programming and data science with R

Tilman M. Davies Why did Tilman love this book?

A gentle yet detailed book for beginner programmers. A great book for those who know they'll be getting up to some programming in R but who are very new to programming in general. The book's chapters are filled with content on the syntax, usage, and 'best practice' guidelines. The examples guide the reader in a step-by-step fashion to maximise understanding. An especially unique chapter providing examples on things you can do in R that you might've otherwise done in Excel is one of its stand-out features.

By Andrie De Vries, Joris Meys,

Why should I read it?

1 author picked R For Dummies as one of their favorite books, and they share why you should read it.

What is this book about?

Mastering R has never been easier Picking up R can be tough, even for seasoned statisticians and data analysts. R For Dummies, 2nd Edition provides a quick and painless way to master all the R you'll ever need. Requiring no prior programming experience and packed with tons of practical examples, step-by-step exercises, and sample code, this friendly and accessible guide shows you how to know your way around lists, data frames, and other R data structures, while learning to interact with other programs, such as Microsoft Excel. You'll learn how to reshape and manipulate data, merge data sets, split and…


Book cover of ClojureScript: Up and Running: Functional Programming for the Web

Dmitri Sotnikov Author Of Web Development with Clojure: Build Large, Maintainable Web Applications Interactively

From my list on essential Clojure resources.

Why am I passionate about this?

With over a decade of experience in web development using Clojure and active involvement in the Clojure open source community, I have gathered invaluable insights into effective use of the language. I am eager to share some of the experience and knowledge I have acquired with those new to the language.

Dmitri's book list on essential Clojure resources

Dmitri Sotnikov Why did Dmitri love this book?

This book introduces developers to ClojureScript which is a dialect of Clojure that targets JavaScript runtimes.

It's a great choice for web developers who are considering building full-stack Clojure applications. The book will help developers learn about the differences between Clojure and ClojureScript, and to make effective use of both language dialects for building applications that span both the front-end and the backend.

By Stuart Sierra, Luke Vanderhart,

Why should I read it?

1 author picked ClojureScript as one of their favorite books, and they share why you should read it.

What is this book about?

Learn how to build complete client-side applications with ClojureScript, the Clojure language variant that compiles to optimized JavaScript. This hands-on introduction shows you how ClojureScript not only has similarities to JavaScript - without the flaws - but also supports the full semantics of its parent language. You'll delve into ClojureScript's immutable data structures, lazy sequences, first-class functions, macros, and support for JavaScript libraries. No previous experience with Clojure or ClojureScript is necessary. If you're familiar with JavaScript, HTML, CSS, and the DOM, you'll quickly discover that ClojureScript has the same reach as JavaScript, but with more power.
Start writing ClojureScript…


Book cover of Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code

Naomi R. Ceder Author Of The Quick Python Book

From my list on to level up your Python skills.

Why am I passionate about this?

I’ve been teaching and writing Python code (and managing others while they write Python code) for over 20 years. After all that time Python is still my tool of choice, and many times Python is the key part of how I explore and think about problems. My experience as a teacher also has prompted me to dig in and look for the simplest way of understanding and explaining the elegant way that Python features fit together. 

Naomi's book list on to level up your Python skills

Naomi R. Ceder Why did Naomi love this book?

Al is one of the clearest writers on Python that I know. Here he distills his experience as both a working software engineer and a successful author to take coders from advanced beginner/intermediate level on to all of the “extra” knowledge one needs to write good code for practical use. When I read this book I find myself wishing I could write with such simplicity.

By Al Sweigart,

Why should I read it?

1 author picked Beyond the Basic Stuff with Python as one of their favorite books, and they share why you should read it.

What is this book about?

You're a student who wants to jumpstart their career with practical skills, or you're a self-taught beginner who has learned all you can from beginner programmer books and coding bootcamps. Now you're looking for the next step to becoming a real-world professional programmer so you can create your own apps and get started with your career. If that fits, then this book is for you! This book is perfect for self-taught programmers looking for the stuff intro books don't teach you and students wanting to get practical information before getting started with applying their new programming skills.


Book cover of A Museum of Early American Tools

Kevin Cornell Author Of New in Town

From my list on world-building.

Why am I passionate about this?

I believe stories to be our species’ instinctual tool for discovering our best selves. Sometimes those stories are about real people in the past, sometimes they’re completely imagined people in the future — sometimes we even swap out the humans for animals or aliens, or sassy anthropomorphized objects. Whatever the case, for a story to work its wonders, its details must be believable, or we reject its premise. These books help make a story believable, and, if you get the alchemy just right, those details can even help tell the story themselves.

Kevin's book list on world-building

Kevin Cornell Why did Kevin love this book?

Nothing angers me more than when a book tries to explain something in words when it can be communicated much more effectively through illustration. That’s the beauty of Eric Sloane. The man visually recorded everything from weather phenomena to architecture to tools of bygone eras. I’m recommending the book A Museum of Early American Tools because its the one I’ve found the most useful, but I recommend checking out any of his books. At the very least, it can help you appreciate how those design decisions we take for granted— the roof of a barn, or the shape of a hammer handle— were honed by a balance of tradition, practicality, and circumstance.

By Eric Sloane,

Why should I read it?

1 author picked A Museum of Early American Tools as one of their favorite books, and they share why you should read it.

What is this book about?

This absorbing and profusely illustrated book describes in detail scores of early American tools and the wooden and metal artifacts made with them. Informally and expressively written, the text covers bulding tools and methods; farm and kitchen implements; and the tools of curriers, wheelwrights, coopers, blacksmiths, coachmakers, loggers, tanners, and many other craftsmen of the pre-industrial age. Scores of pen-and-ink sketches by the author accurately depict "special tools for every job," among them a hollowing gouge, hay fork, cornering chisel, apple butter paddle, boring auger, mortising chisel, a holding dog, hauling sledge, winnowing tray, reaping hooks, splitting wedge, felling axe,…


Book cover of Antique Woodworking Tools: A Guide to the Purchase, Restoration and Use of Old Tools for Today's Shop

Graham Blackburn Author Of Traditional Woodworking Handtools: A Manual for the Woodworker

From my list on traditional woodworking.

Why am I passionate about this?

Born in London, I apprenticed under cabinetmaker Hugh Harris before moving to New York to study at Juilliard. Subsequently pursuing a career as a professional musician, recording and playing with groups including Van Morrison, Razmataz, and Full Tilt Boogie, I built a house in Woodstock, NY. In addition to operating my own custom-design furniture-making shop, and lecturing and teaching extensively from coast to coast, I’ve written and illustrated many more books on woodworking. I’ve served as Contributing Editor to Fine Woodworking (1985–1999), and Popular Woodworking (1987–1996), and as Editor-in-Chief of Woodwork Magazine (1991–1994) before becoming a featured speaker and presenter at the National Woodworking Shows.

Graham's book list on traditional woodworking

Graham Blackburn Why did Graham love this book?

Known primarily as one of America’s foremost Windsor chairmakers Michael Dunbar’s book is a great guide to the purchase, restoration, and use of old traditional wooden tools for today’s shop. This book explains and illustrates how and why so many apparently ‘antique’ tools still do the job they were designed to do, often much better and faster than many contemporary tools.

By Michael Dunbar,

Why should I read it?

1 author picked Antique Woodworking Tools as one of their favorite books, and they share why you should read it.

What is this book about?

A professional woodworker who specializes in antiques offers modern craftsmen advice on buying, restoring, and using the principal general-purpose tools of preindustrial woodworkers


Book cover of How to Use Woodworking Tools

Graham Blackburn Author Of Traditional Woodworking Handtools: A Manual for the Woodworker

From my list on traditional woodworking.

Why am I passionate about this?

Born in London, I apprenticed under cabinetmaker Hugh Harris before moving to New York to study at Juilliard. Subsequently pursuing a career as a professional musician, recording and playing with groups including Van Morrison, Razmataz, and Full Tilt Boogie, I built a house in Woodstock, NY. In addition to operating my own custom-design furniture-making shop, and lecturing and teaching extensively from coast to coast, I’ve written and illustrated many more books on woodworking. I’ve served as Contributing Editor to Fine Woodworking (1985–1999), and Popular Woodworking (1987–1996), and as Editor-in-Chief of Woodwork Magazine (1991–1994) before becoming a featured speaker and presenter at the National Woodworking Shows.

Graham's book list on traditional woodworking

Graham Blackburn Why did Graham love this book?

Published in 1881 this is an absolutely fundamental book for the beginner. Amply illustrated, you will learn important details such as how to hold tools and what to expect from them as well as how basic joints are formed and made. Focused on wooden tools this is information not commonly reproduced in more contemporary books.

This book is not currently available.

By R.L. Bridgman,

Why should I read it?

1 author picked How to Use Woodworking Tools as one of their favorite books, and they share why you should read it.


Book cover of Domain-Driven Design: Tackling Complexity in the Heart of Software
Book cover of Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#
Book cover of Function and Reactive Domain Modeling

Share your top 3 reads of 2024!

And get a beautiful page showing off your 3 favorite reads.

1,593

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in object-oriented programming, computer programming, and software engineering?