Learn and understand Erlang and Elixir and develop a working knowledge of the concepts of functional programming that underpin them. This book takes the author’s experience of taking on a project that required functional programming and real-time systems, breaks it down, and organizes it. You will get more » the necessary knowledge about differences to the languages you know, where to start, and where to go next.
Have you been told by your customer or manager that they heard good things about Erlang, you should use it for the next project? Never had to deal with functional programming or real-time systems? In 2014, the author, Wolfgang Loder, developed a repository for digital assets that had to deliver those assets in binary form quickly and reliably, being able to deal with at least hundreds of requests per second.
Since he could decide the architecture and software stack of the solution, he immediately thought of Erlang and its libraries and started to evaluate this option. It was not long after that he discovered Elixir, which sits on top of the Erlang virtual machine and has features more palatable for non-functional programmers, although it is a functional programming language itself.
Erlang and Elixir for Imperative Programmers gives you a basis for deciding whether the effort is viable for your next project. This book is partly a tale of the author's own experience and partly a description of the bigger and more subtle differences between Erlang/Elixir and languages such as C++, Java, and C#.
What You'll Learn * Discover functional programming, Erlang, and Elixir
* Work on service design and service features
* Set up your environment: deployment, development, and production
* Implement the service including public interface, asset processing, and deployment
* Use the patterns and concepts found in Erlang including type creation concepts and code structuring.
Who This Book Is For
Experienced and savvy programmers, coders, and developers new to Erlang and Elixir. « less
Getting Started in Functional Programming
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 more » 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 « less
A Framework for Building Modern PHP Apps
What sets Laravel apart from other PHP web frameworks? Speed and simplicity, for starters. This rapid application development framework and its vast ecosystem of tools let you quickly build new sites and applications with clean, readable code. With this practical guide, Matt Stauffer--a leading teacher more » and developer in the Laravel community--provides the definitive introduction to one of today's most popular web frameworks.
The book's high-level overview and concrete examples will help experienced PHP web developers get started with Laravel right away. By the time you reach the last page, you should feel comfortable writing an entire application in Laravel from scratch.
Dive into several features of this framework, including:
* Blade, Laravel's powerful, custom templating tool
* Tools for gathering, validating, normalizing, and filtering user-provided data
* Laravel's Eloquent ORM for working with the application's databases
* The Illuminate request object, and its role in the application lifecycle
* PHPUnit, Mockery, and PHPSpec for testing your PHP code
* Laravel's tools for writing JSON and RESTful APIs
* Interfaces for file system access, sessions, cookies, caches, and search
* Tools for implementing queues, jobs, events, and WebSocket event publishing
* Laravel's specialty packages: Scout, Passport, Cashier, Echo, Elixir, Valet, and Socialite « less
Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches. Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir's more » pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it's Elixir. This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.3.
Functional programming techniques help you manage the complexities of today's real-world, concurrent systems; maximize uptime; and manage security. Enter Elixir, with its modern, Ruby-like, extendable syntax, compile and runtime evaluation, hygienic macro system, and more. But, just as importantly, Elixir brings a sense of enjoyment to parallel, functional programming. Your applications become fun to work with, and the language encourages you to experiment.
Part 1 covers the basics of writing sequential Elixir programs. We'll look at the language, the tools, and the conventions. Part 2 uses these skills to start writing concurrent code-applications that use all the cores on your machine, or all the machines on your network! And we do it both with and without OTP. Part 3 looks at the more advanced features of the language, from DSLs and code generation toextending the syntax.
This edition is fully updated with all the new features of Elixir 1.3, with a new chapter on Tooling, covering testing (both conventional and property based), code and dependency exploration, and servermonitoring.By the end of this book, you'll understand Elixir, and know how to apply it to solve your complex, modern problems.
What You Need:
You'll need a computer, a little experience with another high-level language, and a sense of adventure. No functional programming experience is needed. « less
The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you more » build scalable, fault-tolerant and distributed applications through several fun examples.
About the Technology
Elixir is an elegant programming language that combines the expressiveness of Ruby with the concurrency and fault-tolerance of Erlang. It makes full use of Erlang's BEAM VM and OTP library, so you get two decades' worth of maturity and reliability right out of the gate. Elixir's support for functional programming makes it perfect for modern event-driven applications.
About the Book
The Little Elixir & OTP Guidebook gets you started writing applications with Elixir and OTP. You'll begin with the immediately comfortable Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into several lighthearted examples that teach you to take advantage of the incredible functionality built into the OTP library.
* Covers Elixir 1.2 and 1.3
* Introduction to functional concurrency with actors
* Experience the awesome power of Erlang and OTP
About the Reader
Written for readers comfortable with a standard programming language like Ruby, Java, or Python. FP experience is helpful but not required.
About the Author
Benjamin Tan Wei Hao is a software engineer at Pivotal Labs, Singapore. He is also an author, a speaker, and an early adopter of Elixir.
Table of Contents
1. GETTING STARTED WITH ELIXIR AND OTP
3. A whirlwind tour
4. Processes 101
5. Writing server applications with GenServer
6. FAULT TOLERANCE, SUPERVISION, AND DISTRIBUTION
7. Concurrent error-handling and fault tolerance with links, monitors, and processes
8. Fault tolerance with Supervisors
9. Completing the worker-pool application
10. Distribution and load balancing
11. Distribution and fault tolerance
12. Dialyzer and type specifications
13. Property-based and concurrency testing « less
Unleash the full power of programming in Elixir with over 60 incredibly effective recipes
This book is a set of recipes grouped by topic that acts as a good reference to get ideas from or to quickly search for a solution to a problem. You will begin by launching an IEx session and using it to test some ideas. Next, you will perform various operations like loading and compiling modules, inspecting more » your system, generating a supervised app, and so on. Furthermore, you will be introduced to immutability, working with data structures, performing pattern matching, and using stream modules to generate infinite data sequences. You will learn about everything from joining strings to determining the word frequency in text. With respect to modules and functions, you will also discover how to load code from other modules and use guards and pattern matching in functions. « less
Elixir in Action teaches you to apply the new Elixir programming language to practical problems associated with scalability, concurrency, fault tolerance, and high availability.
About the Technology
Elixir is a modern programming language that takes advantage of BEAM, the Erlang virtual more » machine, without the burden of Erlang's complex syntax and conventions. Elixir gives you Ruby-like elegance with the power to develop bulletproof distributed server systems that can handle massive numbers of simultaneous clients and run with almost no downtime.
About the Book
Elixir in Action teaches you how to solve practical problems of scalability, concurrency, fault tolerance, and high availability using Elixir. You'll start with the language, learning basic constructs and building blocks. Then, you'll learn to think about problems using Elixir's functional programming mindset. With that solid foundation, you'll confidently explore Elixir's seamless integration with BEAM and Erlang's powerful OTP framework of battle-tested abstractions you can use immediately. Finally, the book provides guidance on how to distribute a system over multiple machines and control it in production.
* Practical introduction to the Elixir language
* Functional programming idioms
* Mastering the OTP framework
* Creating deployable releases
About the Author
Saša Jurić is a developer with extensive experience using Elixir and Erlang in high-volume, concurrent server-side systems.
Table of Contents
1. PART 1 THE LANGUAGE
2. First steps
3. Building blocks
4. Control flow
5. Data abstractions
6. PART 2 THE PLATFORM
7. Concurrency primitives
8. Generic server processes
9. Building a concurrent system
10. Fault-tolerance basics
11. Isolating error effects
12. Sharing state
13. PART 3 PRODUCTION
14. Working with components
15. Building a distributed system « less
Write Less Code, Get More Done (and Have Fun!)
Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you'll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You'll discover how to extend more » Elixir with your own first-class features, optimize performance, and create domain-specific languages.
Metaprogramming is one of Elixir's greatest features. Maybe you've played with the basics or written a few macros. Now you want to take it to the next level. This book is a guided series of metaprogramming tutorials that take you step by step to metaprogramming mastery. You'll extend Elixir with powerful features and write faster, more maintainable programs in ways unmatched by other languages.
You'll start with the basics of Elixir's metaprogramming system and find out how macros interact with Elixir's abstract format. Then you'll extend Elixir with your own first-class features, write a testing framework, and discover how Elixir treats source code as building blocks, rather than rote lines of instructions. You'll continue your journey by using advanced code generation to create essential libraries in strikingly few lines of code. Finally, you'll create domain-specific languages and learn when and where to apply your skills effectively.
When you're done, you will have mastered metaprogramming, gained insights into Elixir's internals, and have the confidence to leverage macros to their full potential in your own projects. « less
Getting Started in Functional Programming
Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you'll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features more » for metaprogramming.
This book shows you how to 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. « less
Functional, Concurrent, Pragmatic, Fun
You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang more » VM. Elixir's pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. This book is the introduction to Elixir for experienced programmers.
Maybe you need something that's closer to Ruby, but with a battle-proven environment that's unrivaled for massive scalability, concurrency, distribution, and fault tolerance. Maybe the time is right for the Next Big Thing. Maybe it's Elixir.
As a developer, you've probably heard that functional programming techniques help manage the complexities of today's real-world, concurrent systems. You're also investigating designs that help you maximize uptime and manage security.
This book is your guide to Elixir, a modern, functional, and concurrent programming language. Because Elixir runs on the Erlang VM, and uses the underlying Erlang/OTP architecture, it benefits from almost 20 years of research into high performance, highly parallel, and seriously robust applications. Elixir brings a lot that's new: a modern, Ruby-like, extendable syntax, compile and runtime evaluation, a hygienic macro system, and more.
But, just as importantly, Elixir brings a sense of enjoyment to parallel, functional programming. Your applications become fun to work with, and the language encourages you to experiment. « less