Learn You Some Erlang for Great Good

As you dive into Erlang’s functional fantasy world, you’ll learn about: –Testing your applications with EUnit and Common Test –Building and releasing your applications with the OTP framework –Passing messages, raising errors, and ...

Learn You Some Erlang for Great Good

Erlang is the language of choice for programmers who want to write robust, concurrent applications, but its strange syntax and functional design can intimidate the uninitiated. Luckily, there’s a new weapon in the battle against Erlang-phobia: Learn You Some Erlang for Great Good! Erlang maestro Fred Hébert starts slow and eases you into the basics: You’ll learn about Erlang’s unorthodox syntax, its data structures, its type system (or lack thereof!), and basic functional programming techniques. Once you’ve wrapped your head around the simple stuff, you’ll tackle the real meat-and-potatoes of the language: concurrency, distributed computing, hot code loading, and all the other dark magic that makes Erlang such a hot topic among today’s savvy developers. As you dive into Erlang’s functional fantasy world, you’ll learn about: –Testing your applications with EUnit and Common Test –Building and releasing your applications with the OTP framework –Passing messages, raising errors, and starting/stopping processes over many nodes –Storing and retrieving data using Mnesia and ETS –Network programming with TCP, UDP, and the inet module –The simple joys and potential pitfalls of writing distributed, concurrent applications Packed with lighthearted illustrations and just the right mix of offbeat and practical example programs, Learn You Some Erlang for Great Good! is the perfect entry point into the sometimes-crazy, always-thrilling world of Erlang.

Learn You Some Erlang for Great Good

Learn You Some Erlang for Great Good! is a hilariously illustrated guide to the concurrent functional programming language.

Learn You Some Erlang for Great Good


Building Web Applications with Erlang

perhaps you have become frustrated with some aspect of building web applications in those other languages and are looking for ... There are already a number of good resources for that, including: ' Learn You Some Erlang for Great Good, ...

Building Web Applications with Erlang

Why choose Erlang for web applications? Discover the answer hands-on by building a simple web service with this book. If you’re an experienced web developer who knows basic Erlang, you’ll learn how to work with REST, dynamic content, web sockets, and concurrency through several examples. In the process, you’ll see first-hand that Erlang is ideal for building business-critical services. Erlang was designed for fault-tolerant, non-stop telecom systems, and building applications with it requires a large set of skills. By the end of the book, you’ll have the information you need to build a basic web service and get it running. Explore the power of Erlang and REST for building web services Serve static and dynamic content with the Yaws web server Use different methods for outputting data to user, such as encoding Erlang data structures into JSON or XML Build an application to listen for HTTP requests, process them, store data, and return useful data Go beyond the request-response model—push data to clients with web sockets Use Erlang and Yaws to stream data from the server to a client "A book which is truly needed and will help get Erlang to the next level." —Francesco Cesarini, CEO of Erlang Solutions, author of Erlang Programming.

Introducing Erlang

For more, see Chapter 18 of Erlang Programming, where you can learn about fun things like the ... (O'Reilly); Sections 2.3, 2.5, and 2.7 ofErlang and OTP in Action (Manning); and Chapters 2 and 3 of Learn You Some Erlang For Great Good!

Introducing Erlang

If you’re new to Erlang, its functional style can seem difficult, but with help from this hands-on introduction, you’ll scale the learning curve and discover how enjoyable, powerful, and fun this language can be. Author Simon St. Laurent shows you how to write simple Erlang programs by teaching you one basic skill at a time. You’ll learn about pattern matching, recursion, message passing, process-oriented programming, and establishing pathways for data rather than telling it where to go. By the end of your journey, you’ll understand why Erlang is ideal for concurrency and resilience. Get cozy with Erlang’s shell, its command line interface Become familiar with Erlang’s basic structures by working with numbers Discover atoms, pattern matching, and guards: the foundations of your program structure Delve into the heart of Erlang processing with recursion, strings, lists, and higher-order functions Create processes, send messages among them, and apply pattern matching to incoming messages Store and manipulate structured data with Erlang Term Storage and the Mnesia database Learn about Open Telecom Platform, Erlang’s open source libraries and tools

Introducing Elixir

For an online experience (now also in print from No Starch Books) with more snark and funnier illustrations, you should explore Learn You Some Erlangfor Great Good! The two classic general books on Erlang are the similarly titled ...

Introducing Elixir

Smooth, powerful, and small, Elixir is an excellent language for learning functional programming, and with this hands-on introduction, you’ll discover just how powerful Elixir can be. Authors Simon St. Laurent and J. David Eisenberg show you how Elixir combines the robust functional programming of Erlang with an approach that looks more like Ruby, and includes powerful macro features for metaprogramming. Updated to cover Elixir 1.4, the second edition of this practical book helps you write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you’ll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease. Get comfortable with IEx, Elixir’s command line interface Learn Elixir’s basic structures by working with numbers Discover atoms, pattern matching, and guards: the foundations of your program structure Delve into the heart of Elixir processing with recursion, strings, lists, and higher-order functions Create Elixir processes and send messages among them Store and manipulate structured data with Erlang Term Storage and the Mnesia database Build resilient applications with the Open Telecom Platform

Clojure for the Brave and True

Learn the Ultimate Language and Become a Better Programmer Daniel Higginbotham. Visit https://www.nostarch.com/clojure/for ... by alsweigart april 2015, 504 pp., $29.95 isbn 978-1-59327-599-0 LEaRn yOU SOmE ERLang fOR gREat gOOd!

Clojure for the Brave and True

For weeks, months—nay!—from the very moment you were born, you’ve felt it calling to you. At long last you’ll be united with the programming language you’ve been longing for: Clojure! As a Lisp-style functional programming language, Clojure lets you write robust and elegant code, and because it runs on the Java Virtual Machine, you can take advantage of the vast Java ecosystem. Clojure for the Brave and True offers a "dessert-first" approach: you’ll start playing with real programs immediately, as you steadily acclimate to the abstract but powerful features of Lisp and functional programming. Inside you’ll find an offbeat, practical guide to Clojure, filled with quirky sample programs that catch cheese thieves and track glittery vampires. Learn how to: –Wield Clojure’s core functions –Use Emacs for Clojure development –Write macros to modify Clojure itself –Use Clojure’s tools to simplify concurrency and parallel programming Clojure for the Brave and True assumes no prior experience with Clojure, the Java Virtual Machine, or functional programming. Are you ready, brave reader, to meet your true destiny? Grab your best pair of parentheses—you’re about to embark on an epic journey into the world of Clojure!

Tests and Proofs

Cesarini, F., Thompson, S.: Programming Erlang: A Concurrent Approach to Software Development. O'Reilly Media Inc., Beijing (2009) 7. Hebert, F.: Learn You Some Erlang for Great Good!: A Beginner's Guide.

Tests and Proofs

This book constitutes the refereed proceedings of the 10th International Conference on Tests and Proofs, TAP 2016, held as part of STAF 2016, in Vienna, Austria, in July 2016. The 8 full papers, 2 short papers, and 1 tool demonstration paper presented in this volume were carefully reviewed and selected from 19 submissions. The book also contains one invited talk in full-paper length. The TAP conference promotes research in verification and formal methods that targets the interplay of proofs and testing: the advancement of techniques of each kind and their combination, with the ultimate goal of improving software and system dependability.

Neuronale Netze Selbst Programmieren

- Tariq Rashid hat eine besondere Fähigkeit, schwierige Konzepte verständlich zu erklären, dadurch werden Neuronale Netze für jeden Interessierten zugänglich und praktisch nachvollziehbar.

Neuronale Netze Selbst Programmieren

Neuronale Netze sind Schlüsselelemente des Deep Learning und der Künstlichen Intelligenz, die heute zu Erstaunlichem in der Lage sind. Dennoch verstehen nur wenige, wie Neuronale Netze tatsächlich funktionieren. Dieses Buch nimmt Sie mit auf eine unterhaltsame Reise, die mit ganz einfachen Ideen beginnt und Ihnen Schritt für Schritt zeigt, wie Neuronale Netze arbeiten. Dafür brauchen Sie keine tieferen Mathematik-Kenntnisse, denn alle mathematischen Konzepte werden behutsam und mit vielen Illustrationen erläutert. Dann geht es in die Praxis: Sie programmieren Ihr eigenes Neuronales Netz mit Python und bringen ihm bei, handgeschriebene Zahlen zu erkennen, bis es eine Performance wie ein professionell entwickeltes Netz erreicht. Zum Schluss lassen Sie das Netz noch auf einem Raspberry Pi Zero laufen. - Tariq Rashid hat eine besondere Fähigkeit, schwierige Konzepte verständlich zu erklären, dadurch werden Neuronale Netze für jeden Interessierten zugänglich und praktisch nachvollziehbar.

RabbitMQ in Action

5 You Some Erlang for Great Good: http://learnyousomeerlang.com/starting-out-for-real#bit-syntax:. Last but not. For the purposes of this chapter let's say that binaries are an efficient way to represent strings in Erlang.

RabbitMQ in Action

Summary RabbitMQ in Action is a fast-paced run through building and managing scalable applications using the RabbitMQ messaging server. It starts by explaining how message queuing works, its history, and how RabbitMQ fits in. Then it shows you real-world examples you can apply to your own scalability and interoperability challenges. About the Technology There's a virtual switchboard at the core of most large applications where messages race between servers, programs, and services. RabbitMQ is an efficient and easy-to-deploy queue that handles this message traffic effortlessly in all situations, from web startups to massive enterprise systems. About the Book RabbitMQ in Action teaches you to build and manage scalable applications in multiple languages using the RabbitMQ messaging server. It's a snap to get started. You'll learn how message queuing works and how RabbitMQ fits in. Then, you'll explore practical scalability and interoperability issues through many examples. By the end, you'll know how to make Rabbit run like a well-oiled machine in a 24 x 7 x 365 environment. Written for developers familiar with Python, PHP, Java, .NET, or any other modern programming language. No RabbitMQ experience required. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Learn fundamental messaging design patterns Use patterns for on-demand scalability Glue a PHP frontend to a backend written in anything Implement a PubSub-alerting service in 30 minutes flat Configure RabbitMQ's built-in clustering Monitor, manage, extend, and tune RabbitMQ ========================================​==== Table of Contents Pulling RabbitMQ out of the hat Understanding messaging Running and administering Rabbit Solving problems with Rabbit: coding and patterns Clustering and dealing with failure Writing code that survives failure Warrens and Shovels: failover and replication Administering RabbitMQ from the Web Controlling Rabbit with the REST API Monitoring: Houston, we have a problem Supercharging and securing your Rabbit Smart Rabbits: extending RabbitMQ

Erlang Programming for Beginners

"In this introduction to Erlang, you'll learn where the language came from, how it is different from other languages and get hands on experience.

Erlang Programming for Beginners

"In this introduction to Erlang, you'll learn where the language came from, how it is different from other languages and get hands on experience. Erlang has a learning curve and is challenging. But you'll be guided step by step in this course. Erlang will stretch your knowledge of programming languages. It is unlike any language you've ever used except maybe Prolog (but who has ever used that?). We'll start simple Erlang logic and build into small, compiled programs. This course is definitely hands on so you'll get some great Erlang experience. While you might not use Erlang in your current job, you'll see how an esoteric language solves problems, which might spark some great ideas for you."--Resource description page.

Pragmatic Thinking and Learning

Yogi Berra To get where you want to be—to learn and grow in your career and personal life —you'll need to set some goals. But goals by themselves aren't enough to guarantee your success. Goals are great things, and you may have many of ...

Pragmatic Thinking and Learning

Printed in full color. Software development happens in your head. Not in an editor, IDE, or designtool. You're well educated on how to work with software and hardware, but what about wetware--our own brains? Learning new skills and new technology is critical to your career, and it's all in your head. In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new tricks and tipsto learn more, faster, and retain more of what you learn. You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware. Programmers have to learn constantly; not just the stereotypical new technologies, but also the problem domain of the application, the whims of the user community, the quirks of your teammates, the shifting sands of the industry, and the evolving characteristics of the project itself as it is built. We'll journey together through bits of cognitive and neuroscience, learning and behavioral theory. You'll see some surprising aspects of how our brains work, and how you can take advantage of the system to improve your own learning and thinking skills. In this book you'll learn how to: Use the Dreyfus Model of Skill Acquisition to become more expert Leverage the architecture of the brain to strengthen different thinking modes Avoid common "known bugs" in your mind Learn more deliberately and more effectively Manage knowledge more efficiently

Learn Erlang Programming

This book has been prepared for professionals aspiring to make a career in the field of telecom, banking, instant messaging, e-commerce and computer telephony as well.

Learn Erlang Programming

Erlang is a general purpose or you might say a functional programming language and runtime environment. It was built in such a way that it had inherent support for concurrency, distribution and fault tolerance. Erlang was originally developed to be used in several large telecommunication systems. But it has now slowly made its foray into diverse sectors like ecommerce, computer telephony and banking sectors as well. This book has been prepared for professionals aspiring to make a career in the field of telecom, banking, instant messaging, e-commerce and computer telephony as well. This book will give you enough understanding on this programming language and also help you in building scalable soft real time systems that will have requirements on higher availability. Before proceeding with this book, you must have some basic knowledge on programming in the following languages such as C or C++, Java, Python, Ruby. Furthermore, it might also be helpful, to have some working knowledge on functional programming languages like Clojure, Haskell, Scala or OCaml for advanced programming on Erlang.

Learning Elixir

Clearly, this isn't a good result, but it takes some references or good memory to know what the :enoent atom symbolizes. ... To find these symbols, you may occasionally need to look into the Erlang documentation. Now that we know some ...

Learning Elixir

Unveil many hidden gems of programming functionally by taking the foundational steps with Elixir About This Book Explore the functional paradigms of programming with Elixir through use of helpful examples Concise step-by-step instructions to teach you difficult technical concepts Bridge the gap between functional programming and Elixir Who This Book Is For This book targets developers new to Elixir, as well as Erlang, in order to make them feel comfortable in functional programming with Elixir, thus enabling them to develop more scalable and fault-tolerant applications. Although no knowledge of Elixir is assumed, some programming experience with mainstream Object-Oriented programming languages such a Ruby, Python, Java, C# would be beneficial. What You Will Learn Explore Elixir to create resilient, scalable applications Create fault-tolerant applications Become better acquainted with Elixir code and see how it is structured to build and develop functional programs Learn the basics of functional programming Gain an understanding of effective OTP principles Design program-distributed applications and systems Write and create branching statements in Elixir Learn to do more with less using Elixir's metaprogramming Be familiar with the facilities Elixir provides for metaprogramming, macros, and extending the Elixir language In Detail Elixir, based on Erlang's virtual machine and ecosystem, makes it easier to achieve scalability, concurrency, fault tolerance, and high availability goals that are pursued by developers using any programming language or programming paradigm. Elixir is a modern programming language that utilizes the benefits offered by Erlang VM without really incorporating the complex syntaxes of Erlang. Learning to program using Elixir will teach many things that are very beneficial to programming as a craft, even if at the end of the day, the programmer isn't using Elixir. This book will teach you concepts and principles important to any complex, scalable, and resilient application. Mostly, applications are historically difficult to reason about, but using the concepts in this book, they will become easy and enjoyable. It will teach you the functional programing ropes, to enable them to create better and more scalable applications, and you will explore how Elixir can help you achieve new programming heights. You will also glean a firm understanding of basics of OTP and the available generic, provided functionality for creating resilient complex systems. Furthermore, you will learn the basics of metaprogramming: modifying and extending Elixir to suite your needs. Style and approach An exploration of functional programming and Elixir with easy to follow examples using Elixir and the functional style. All the topics, concepts, and principles covered are clearly and concisely explained with either code examples or in depth discussions, or both!

The Monkey and the Monk

I have received my order from above to arrest you, the rebellious Bimawen ape. Don't you know that your time has come?” “I remember,” said the Great Sage, “that the sister of the Jade Emperor some years ago became enamored of the Region ...

The Monkey and the Monk

Anthony C. Yu’s celebrated translation of The Journey to the West reinvigorated one of Chinese literature’s most beloved classics for English-speaking audiences when it first appeared thirty years ago. Yu’s abridgment of his four-volume translation, The Monkey and the Monk, finally distills the epic novel’s most exciting and meaningful episodes without taking anything away from their true spirit. These fantastic episodes recount the adventures of Xuanzang, a seventh-century monk who became one of China’s most illustrious religious heroes after traveling for sixteen years in search of Buddhist scriptures. Powerfully combining religious allegory with humor, fantasy, and satire, accounts of Xuanzang’s journey were passed down for a millennium before culminating in the sixteenth century with The Journey to the West. Now, readers of The Monkey and the Monk can experience the full force of his lengthy quest as he travels to India with four animal disciples, most significant among them a guardian-monkey known as “the Great Sage, Equal to Heaven.” Moreover, in its newly streamlined form, this acclaimed translation of a seminal work of world literature is sure to attract an entirely new following of students and fans. “A new translation of a major literary text which totally supersedes the best existing version. . . . It establishes beyond contention the position of The Journey to the West in world literature, while at the same time throwing open wide the doors to interpretive study on the part of the English audience.”—Modern Language Notes, on the unabridged translation

Introducing Elixir

This book shows readers how Elixir combines the robust functional programming of Erlang with an approach that looks more like Ruby.

Introducing Elixir

Smooth, powerful, and small, the Elixir programming language is an excellent place for newcomers to learn about functional programming. This book shows readers how Elixir combines the robust functional programming of Erlang with an approach that looks more like Ruby. Readers will learn how Elixir simplifies some of Erlang's odder corners and reaches toward metaprogramming with powerful macro features. Introducing Elixer is ideal for developers new to programming as well as experienced developers who want to move into functional programming. Get comfortable with IEx, Elixir's command line interface Become familiar with Elixir’s basic structures by working with numbers Discover atoms, pattern matching, and guards: the foundations of your program structure Delve into the heart of Elixir processing with recursion, strings, lists, and higher-order functions Create processes, send messages among them, and apply pattern matching to incoming messages Store and manipulate structured data with Erlang Term Storage (ETS) and the Mnesia database Build resilient applications with the Open Telecom Platform (OTP) Define macros with Elixir's meta-programming tools

CouchDB The Definitive Guide

... we want to make sure you're well prepared. CouchDB is written in Erlang, but you don't need to know anything about Erlang to use CouchDB. CouchDB also heavily relies on web technologies like HTTP and JavaScript, and some experience ...

CouchDB  The Definitive Guide

Three of CouchDB's creators show you how to use this document-oriented database as a standalone application framework or with high-volume, distributed applications. With its simple model for storing, processing, and accessing data, CouchDB is ideal for web applications that handle huge amounts of loosely structured data. That alone would stretch the limits of a relational database, yet CouchDB offers an open source solution that's reliable, scales easily, and responds quickly. CouchDB works with self-contained data that has loose or ad-hoc connections. It's a model that fits many real-world items, such as contacts, invoices, and receipts, but you'll discover that this database can easily handle data of any kind. With this book, you'll learn how to work with CouchDB through its RESTful web interface, and become familiar with key features such as simple document CRUD (create, read, update, delete), advanced MapReduce, deployment tuning, and more. Understand the basics of document-oriented storage and manipulation Interact with CouchDB entirely though HTTP using its RESTful interface Model data as self-contained JSON documents Handle evolving data schemas naturally Query and aggregate data in CouchDB using MapReduce views Replicate data between nodes Tune CouchDB for increased performance and reliability

Learning RabbitMQ

Build and optimize efficient messaging applications with ease About This Book Learn to administer, configure, and manage RabbitMQ instances Discover ways to secure and troubleshoot RabbitMQ instances This book is fully up-to-date with all ...

Learning RabbitMQ

Build and optimize efficient messaging applications with ease About This Book Learn to administer, configure, and manage RabbitMQ instances Discover ways to secure and troubleshoot RabbitMQ instances This book is fully up-to-date with all the latest changes to version 3.5 Who This Book Is For If you are a developer or system administrator with a basic knowledge of messaging who wants to learn RabbitMQ, or if you want to further enhance your knowledge in working with the message broker, then this book is ideal for you. To fully understand some examples in the book, a basic knowledge of the Java programming language is required. What You Will Learn Apply messaging patterns using the message broker Administer RabbitMQ using the command line, management Web console, or management REST services Create a cluster of scalable, and highly-available, RabbitMQ instances Use RabbitMQ with the Spring Framework, MuleESB, WSO2, and Oracle databases Deploy RabbitMQ using Puppet, Vagrant, or Docker Fine-tune the performance of RabbitMQ Monitor RabbitMQ using Nagios, Munin, or Monit Secure, troubleshoot, and extend RabbitMQ In Detail RabbitMQ is Open Source Message Queuing software based on the Advanced Message Queue Protocol Standard written in the Erlang Language. RabbitMQ is an ideal candidate for large-scale projects ranging from e-commerce and finance to Big Data and social networking because of its ease of use and high performance. Managing RabbitMQ in such a dynamic environment can be a challenging task that requires a good understanding not only of how to work properly with the message broker but also of its best practices and pitfalls. Learning RabbitMQ starts with a concise description of messaging solutions and patterns, then moves on to concrete practical scenarios for publishing and subscribing to the broker along with basic administration. This knowledge is further expanded by exploring how to establish clustering and high availability at the level of the message broker and how to integrate RabbitMQ with a number of technologies such as Spring, and enterprise service bus solutions such as MuleESB and WSO2. We will look at advanced topics such as performance tuning, secure messaging, and the internals of RabbitMQ. Finally we will work through case-studies so that we can see RabbitMQ in action and, if something goes wrong, we'll learn to resolve it in the Troubleshooting section. Style and approach Each chapter of the book is an easy-to-follow guide that expands and builds on the knowledge already gained in previous chapters. Throughout the course of the book, a sample system called the CSN (Corporate Social Network) is used to illustrate the core principles described. At the end of each chapter, there is a Q&A session that covers practical questions that may arise in practice when working with RabbitMQ.

Mastering Elixir

In this book, you will learn how to build a rock solid application, beginning by using Mix to create a new project. You will then explore how to use Erlang's OTP as well as the Elixir abstractions that are built on top of it, ...

Mastering Elixir

Leverage the power of Elixir programming language to solve practical problems associated with scalability, concurrency, fault tolerance, and high availability. Key Features Enhance your Elixir programming skills using its powerful tools and abstractions Discover how to develop a full-fledged file server Understand how to use Phoenix to create a web interface for your application. Book Description Running concurrent, fault-tolerant applications that scale is a very demanding responsibility. After learning the abstractions that Elixir gives us, developers are able to build such applications with inconceivable low effort. There is a big gap between playing around with Elixir and running it in production, serving live requests. This book will help you fll this gap by going into detail on several aspects of how Elixir works and showing concrete examples of how to apply the concepts learned to a fully fledged application. In this book, you will learn how to build a rock-solid application, beginning by using Mix to create a new project. Then you will learn how the use of Erlang's OTP, along with the Elixir abstractions that run on top of it (such as GenServer and GenStage), that allow you to build applications that are easy to parallelize and distribute. You will also master supervisors (and supervision trees), and comprehend how they are the basis for building fault-tolerant applications. Then you will use Phoenix to create a web interface for your application. Upon fnishing implementation, you will learn how to take your application to the cloud, using Kubernetes to automatically deploy, scale, and manage it. Last, but not least, you will keep your peace of mind by learning how to thoroughly test and then monitor your application. What you will learn Use Elixir tools, including IEx and Mix Find out how an Elixir project is structured and how to create umbrella applications Discover the power of supervision trees, the basis for fault-tolerance Create a Domain-Specifc Language (DSL) that abstracts complexity Create a blazing-fast web interface for your application with Phoenix Set up an automatic deployment process for the cloud Monitor your application and be warned if anything unexpected happens Who this book is for Mastering Elixir is for you if you have experience in Elixir programming and want to take it to the next level. This Elixir book shows you how to build, deploy, and maintain robust applications, allowing you to go from tinkering with Elixir on side projects to using it in a live environment. However, no prior knowledge of Elixir is required to enjoy the complex topics covered in the book.

Masterminds of Programming

If you look at a language like Erlang, which is used in very highly scalable distributed systems. They have a very, very different model ... There are some interesting things that I think we could all learn from also in our languages.

Masterminds of Programming

Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. In this unique collection, you'll learn about the processes that led to specific design decisions, including the goals they had in mind, the trade-offs they had to make, and how their experiences have left an impact on programming today. Masterminds of Programming includes individual interviews with: Adin D. Falkoff: APL Thomas E. Kurtz: BASIC Charles H. Moore: FORTH Robin Milner: ML Donald D. Chamberlin: SQL Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK Charles Geschke and John Warnock: PostScript Bjarne Stroustrup: C++ Bertrand Meyer: Eiffel Brad Cox and Tom Love: Objective-C Larry Wall: Perl Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes: Haskell Guido van Rossum: Python Luiz Henrique de Figueiredo and Roberto Ierusalimschy: Lua James Gosling: Java Grady Booch, Ivar Jacobson, and James Rumbaugh: UML Anders Hejlsberg: Delphi inventor and lead developer of C# If you're interested in the people whose vision and hard work helped shape the computer industry, you'll find Masterminds of Programming fascinating.