具体描述
This book is an in-depth introduction to Erlang, a programming language ideal for any situation where concurrency, fault tolerance, and fast response is essential. Erlang is gaining widespread adoption with the advent of multi-core processors and their new scalable approach to concurrency. With this guide you'll learn how to write complex concurrent programs in Erlang, regardless of your programming background or experience.
Written by leaders of the international Erlang community -- and based on their training material -- Erlang Programming focuses on the language's syntax and semantics, and explains pattern matching, proper lists, recursion, debugging, networking, and concurrency.
This book helps you:
Understand the strengths of Erlang and why its designers included specific features
Learn the concepts behind concurrency and Erlang's way of handling it
Write efficient Erlang programs while keeping code neat and readable
Discover how Erlang fills the requirements for distributed systems
Add simple graphical user interfaces with little effort
Learn Erlang's tracing mechanisms for debugging concurrent and distributed systems
Use the built-in Mnesia database and other table storage features
Erlang Programming provides exercises at the end of each chapter and simple examples throughout the book.
作者简介
Francesco Cesarini 14年来一直向学生、开发人员、测试人员、项目和技术经理教授Erlang/OTP技术。他协助在爱尔兰、美国和英国建立起了Erlang开发中心。
Simon Thompson是一位肯特大学计算机实验室的逻辑和计算学教授,在过去25年里,他在那里教授本科生和研究生的计算学课程。
目录信息
Why Should I Use Erlang?
The History of Erlang
Erlang’s Characteristics
Erlang and Multicore
Case Studies
How Should I Use Erlang?
Chapter 2 Basic Erlang
Integers
The Erlang Shell
Floats
Atoms
Booleans
Tuples
Lists
Term Comparison
Variables
Complex Data Structures
Pattern Matching
Functions
Modules
Exercises
Chapter 3 Sequential Erlang
Conditional Evaluations
Guards
Built-in Functions
Recursion
Runtime Errors
Handling Errors
Library Modules
The Debugger
Exercises
Chapter 4 Concurrent Programming
Creating Processes
Message Passing
Receiving Messages
Registered Processes
Timeouts
Benchmarking
Process Skeletons
Tail Recursion and Memory Leaks
A Case Study on Concurrency-Oriented Programming
Race Conditions, Deadlocks, and Process Starvation
The Process Manager
Exercises
Chapter 5 Process Design Patterns
Client/Server Models
A Process Pattern Example
Finite State Machines
Event Managers and Handlers
Exercises
Chapter 6 Process Error Handling
Process Links and Exit Signals
Robust Systems
Exercises
Chapter 7 Records and Macros
Records
Macros
Exercises
Chapter 8 Software Upgrade
Upgrading Modules
Behind the Scenes
Upgrading Processes
The .erlang File
Exercise
Chapter 9 More Data Types and High-Level Constructs
Functional Programming for Real
Funs and Higher-Order Functions
List Comprehensions
Binaries and Serialization
References
Exercises
Chapter 10 ETS and Dets Tables
ETS Tables
Dets Tables
A Mobile Subscriber Database Example
Exercises
Chapter 11 Distributed Programming in Erlang
Distributed Systems in Erlang
Distributed Computing in Erlang: The Basics
The epmd Process
Exercises
Chapter 12 OTP Behaviors
Introduction to OTP Behaviors
Generic Servers
Supervisors
Applications
Release Handling
Other Behaviors and Further Reading
Exercises
Chapter 13 Introducing Mnesia
When to Use Mnesia
Configuring Mnesia
Transactions
Partitioned Networks
Further Reading
Exercises
Chapter 14 GUI Programming with wxErlang
wxWidgets
wxErlang: An Erlang Binding for wxWidgets
A First Example: MicroBlog
The MiniBlog Example
Obtaining and Running wxErlang
Exercises
Chapter 15 Socket Programming
User Datagram Protocol
Transmission Control Protocol
The inet Module
Further Reading
Exercises
Chapter 16 Interfacing Erlang with Other Programming Languages
An Overview of Interworking
Interworking with Java
C Nodes
Erlang from the Unix Shell: erl_call
Port Programs
Library Support for Communication
Linked-in Drivers and the FFI
Exercises
Chapter 17 Trace BIFs, the dbg Tracer, and Match Specifications
Introduction
The Trace BIFs
Tracing Calls with the trace_pattern BIF
The dbg Tracer
Match Specifications: The fun Syntax
Match Specifications: The Nuts and Bolts
Further Reading
Exercises
Chapter 18 Types and Documentation
Types in Erlang
TypEr: Success Types and Type Inference
Documentation with EDoc
Exercises
Chapter 19 EUnit and Test-Driven Development
Test-Driven Development
EUnit
The EUnit Infrastructure
Testing State-Based Systems
Testing Concurrent Programs in Erlang
Exercises
Chapter 20 Style and Efficiency
Applications and Modules
Processes and Concurrency
Stylistic Conventions
Coding Strategies
Efficiency
And Finally...
Appendix Using Erlang
Getting Started with Erlang
Tools for Erlang
Where to Learn More
Colophon
· · · · · · (收起)
读后感
这本书刚从卓越定的,还没有开始看。国内关于Erlang的书及其他资源实在是太少了。也没有看具体的介绍,希望这本书不要让人失望。 国内那个Erlang社区好像已经没人更新了,我是一个新手 哎想找点资料都难
随着多内核处理器的流行,如果开发高效的并行程序成了程序设计语言开发者们头疼的事情,Erlang作为一门不新的语言在这个时候成了计算机科学界的宠儿,其面对函数的程序设计思想,无side-effect的变量运用,高效和安全的消息传递以及模块热插拔的概念,使这门诞生于80年代的语言...
这本书刚从卓越定的,还没有开始看。国内关于Erlang的书及其他资源实在是太少了。也没有看具体的介绍,希望这本书不要让人失望。 国内那个Erlang社区好像已经没人更新了,我是一个新手 哎想找点资料都难
如果没有joe老头的原书中文版就罢了,有了,就不要再想着另起炉灶,搞出什么,基元,项元这些别扭的名词来,直接叫 原子和元组要死啊? 第5-9章是说看着怎么跟前几章风格不同,很别扭,一看果然不是一个人翻译的。有些内容我怀疑校对者到底看过没有。翻译不是把单词译成中文就...
这本书刚从卓越定的,还没有开始看。国内关于Erlang的书及其他资源实在是太少了。也没有看具体的介绍,希望这本书不要让人失望。 国内那个Erlang社区好像已经没人更新了,我是一个新手 哎想找点资料都难
用户评价
这本书的书脊设计非常吸引我,一看就是一本厚重且内容扎实的著作。我一直对函数式编程的理念非常着迷,而Erlang作为一门纯粹的函数式语言,自然是我的首选目标。我期待书中能够深入讲解Erlang中的函数、变量、数据类型以及它们在函数式编程范式下的特性。更重要的是,我希望这本书能够详细阐述Erlang的并发模型,特别是它基于actor模型的思想。我明白,Erlang的强大之处在于其轻量级进程和消息传递机制。我希望书中能够通过具体的代码示例,展示如何创建大量的进程,如何通过异步消息传递来实现进程间的通信,以及如何利用这些特性来构建高并发、高可用的系统。我个人对Erlang的错误处理机制和容错能力也充满好奇,希望书中能够详细介绍Erlang如何通过“let it crash”的哲学来实现系统的健壮性,以及如何利用OTP中的Supervisor来管理进程的生命周期。
这本书的装帧风格非常古典,那种厚重的封面,泛黄的书页,仿佛一本珍贵的古籍。我之前尝试过学习Erlang,但总是被它独特的语法和并发模型所困扰,觉得入门门槛很高。我希望这本书能够提供一个更平缓的学习曲线,循序渐进地引导我掌握Erlang的精髓。我非常看重书中对于Erlang在实际应用中的案例分析。毕竟,技术最终是要落地到解决实际问题的。我希望作者能够分享一些关于Erlang在电信、金融、物联网等领域的真实应用案例,并深入剖析这些案例的设计思路和技术实现。通过学习这些案例,我不仅能看到Erlang的强大之处,还能从中汲取灵感,将其运用到我自己的项目中。此外,我希望书中能够探讨Erlang与其他编程语言的结合,比如如何与C/C++进行FFI(Foreign Function Interface)交互,或者如何与其他系统进行数据交换。这种跨语言的集成能力,对于构建复杂的现代系统至关重要。
这本书的封面设计相当吸引人,简洁有力,直接点出了核心——Erlang。翻开书页,首先映入眼帘的是那种老派技术书籍特有的排版风格,字体清晰,段落分明,不会有那种花里胡哨的图形干扰阅读。开篇的介绍部分,我印象最深的是作者对Erlang这门语言的定位和它所解决问题的角度的阐述。他并没有一开始就陷入晦涩的代码细节,而是从一个更高的层面,讲述了为什么在并发和分布式系统日益重要的今天,Erlang依然具有独特的价值。这种宏观的视角,对于初学者来说非常重要,能够帮助我们建立起对这门语言的正确认知,理解它出现的历史背景和它所要攻克的难题。我个人一直对构建高可用、可扩展的系统很感兴趣,而Erlang在这方面似乎有着天生的优势。书中似乎花了相当篇幅来解释Erlang的进程模型,以及actor模型是如何在Erlang中得以实现的。这部分内容,虽然我还没有深入研究,但从目录和章节标题来看,它应该会是一个非常扎实的基础,为后续的学习打下坚实的基础。我期待书中能够详细讲解进程之间的通信机制,以及如何利用Erlang的并发特性来设计出健壮的分布式应用程序。
这本书的包装真的很讲究,那种厚实的纸张和精美的印刷,拿在手里就有一种沉甸甸的质感。我之前接触过一些Erlang的在线教程,但总觉得碎片化,缺乏系统性。而这本《Erlang Programming》似乎填补了这一空白。它从最基础的语法讲起,逐步深入到Erlang的核心概念。我尤其期待它在模式匹配和函数式编程范式方面的详细讲解。我知道Erlang的模式匹配是一种非常强大的工具,能够让代码写得更加简洁优雅。书中肯定会通过大量的例子来展示如何运用模式匹配来处理不同的数据结构和控制流程。而且,它作为一本“编程”的书,我相信它不会仅仅停留在理论层面,而是会提供大量的代码示例,让我们能够边学边练。我希望作者能够针对一些常见的编程场景,比如数据解析、状态管理、网络通信等,给出Erlang的解决方案,这样我们才能真正地将所学知识应用到实际项目中。阅读这本书,我希望能培养出一种Erlang式的思维方式,用它特有的方式去思考和解决问题,而不仅仅是学习一门新的编程语言。
老实说,我拿到这本书的时候,并没有抱太大的期望,因为我之前对Erlang的了解仅限于“它能做高并发”这个标签。但翻开第一页,我就被它严谨的逻辑和清晰的论证所吸引。作者的写作风格非常专业,用词准确,没有丝毫含糊不清的地方。我注意到书中对Erlang的OTP(Open Telecom Platform)框架有着详尽的介绍。这对我来说是极其宝贵的,因为我一直听说OTP是Erlang成功的关键之一,它提供了构建容错、分布式系统的强大抽象。我非常期待书中能深入剖析OTP中的Supervisor、Application、GenServer等核心组件,以及它们是如何协同工作的,如何实现热代码升级和故障恢复等高级特性的。对我而言,理解OTP的设计理念和实现机制,远比仅仅掌握Erlang的语法更为重要。我希望这本书能够像一个向导,带领我穿越Erlang的复杂生态系统,让我能够真正地理解并掌握构建生产级Erlang应用的精髓。
彻底的分布式。我的理解是Erlang有一个专业的虚拟机提供分布式的解决方案,它尝试从正面解决分布式的问题,而不是尝试搞成和单机一样,这一点是无奈的正视,也是正确的方向,一切忽略分布式的特点的办法都不可能解决分布式的问题。自己去从头做一个分布式系统,Erlang的思路可以借鉴,在特定的领域可以做的不一样,Erlang作为一个比较通用的方案已经做的很好了。分布式的问题依旧在,比如顺序问题,即使用Erlang,也一样避不开,抓住本质,才能做好分布式开发,没有银弹。
相当不错,跟joe的互为补充不错,来自业界的经验
比较系统,比Armstrong的书
相当不错,跟joe的互为补充不错,来自业界的经验
作为Programming Erlang 辅助书很不错,偏细节