A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of the bestselling Programming Erlang, you'll learn how to write parallel programs that scale effortlessly on multicore systems. Using Erlang, you'll be surprised at how easy it becomes to deal with parallel problems, and how much faster and more efficiently your programs run. That's because Erlang uses sets of parallel processes-not a single sequential process, as found in most programming languages. Joe Armstrong, creator of Erlang, introduces this powerful language in small steps, giving you a complete overview of Erlang and how to use it in common scenarios. You'll start with sequential programming, move to parallel programming and handling errors in parallel programs, and learn to work confidently with distributed programming and the standard Erlang/Open Telecom Platform (OTP) frameworks. You need no previous knowledge of functional or parallel programming. The chapters are packed with hands-on, real-world tutorial examples and insider tips and advice, and finish with exercises for both beginning and advanced users. The second edition has been extensively rewritten. New to this edition are seven chapters covering the latest Erlang features: maps, the type system and the Dialyzer, WebSockets, programming idioms, and a new stand-alone execution environment. You'll write programs that dynamically detect and correct errors, and that can be upgraded without stopping the system. There's also coverage of rebar (the de facto Erlang build system), and information on how to share and use Erlang projects on github, illustrated with examples from cowboy and bitcask. Erlang will change your view of the world, and of how you program. What You Need The Erlang/OTP system. Download it from erlang.org.
Cited By
- Bereczky P, Horpácsi D and Thompson S Machine-checked natural semantics for Core Erlang: exceptions and side effects Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang, (1-13)
- Bärenz M The essence of live coding: change the program, keep the state! Proceedings of the 7th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, (2-14)
- Sulzmann M and Stadtmüller K Two-Phase Dynamic Analysis of Message-Passing Go Programs Based on Vector Clocks Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming, (1-13)
- Naugler D (2017). Intermediate elixir programming, Journal of Computing Sciences in Colleges, 32:5, (42-42), Online publication date: 1-May-2017.
- Chechina N, Hernandez M and Trinder P A scalable reliable instant messenger using the SD Erlang libraries Proceedings of the 15th International Workshop on Erlang, (33-41)
- Garcia Castro L, Berlanga R and Garcia A (2015). In the pursuit of a semantic similarity metric based on UMLS annotations for articles in PubMed Central Open Access, Journal of Biomedical Informatics, 57:C, (204-218), Online publication date: 1-Oct-2015.