早上上班,听Software Engineering Radio对Joe Armstrong的访谈。Software Engineering Radio办得真不错。请来业界风云人物娱乐大众。访谈前主持人做了功课,提的问题颇为有趣,引得被采访着侃侃而谈。上期对Galen Hunt的访谈也挺精彩,把Singularity OS吹得比Singularity还有卖点。
Joe在谈到并发编程对程序员冲击时提到2006年的新闻:2010年Intel会推出32核的CPU Keifer。到时候,写惯顺序处理程序的程序员在老板面前抱怨性能问题时需要三思。因为老板到你机器上一看,保证怒从心头起,恶向胆边生:靠!你丫才用了3%的CPU cycle,也好意思说遇到性能问题!想来一枚对并发编程无所谓的程序员,听了这段话应该对并发编程兴趣大增吧?
除开便于跟踪状态出错地点外,我以前一直奇怪Erlang的变量只能赋值一次的原因。要说支持合理并发,进程间禁止共享数据,强化消息传递就行了。进程内还是可以支持私有状态嘛。结果Joe说Erlang变量赋值的规则是当年用Prolog时传承下来的风格,并没有特别的原因。
还有两个好玩儿的。提到Erlang的容错处理机制。Joe说Erlang在某种程度上不鼓励defensive programming,而鼓励happy case programming。也就是大家高高兴兴照着spec编程就行了,至于spec没有提到的黑暗角落嘛,搞死进程重启就是。然后Joe和采访人Marcus一起笑得花枝乱颤。Marcus问Joe是否认为Erlang会像Ralph Johnson博客所说,Erlang是下一个Java。Joe的回答甚为老到。他说Erlang也许像Smalltalk。虽然Smalltalk的确是最先把OO搞周正的,Smalltalk的拥趸也总是酸不拉叽地鄙视Java,喊着Smalltalk才是OO正宗的口号,但不可否认其它语言学了Smalltalk的精华,再灭掉Smalltalk的市场,比如Java。Erlang也许是第一个把并发做好的语言,但也许下一个支持花括号的Java++跳出来,吸取Erlang的精华,再占有Erlang的市场。而Joe看得挺开。Erlang当年就是Ericsson内部的小语言,以后是小语种也无所谓。
Joe还解释了关于Erlang系统实现5个9的八卦。他说这则消息没错,Ericsson出品的一坨系统的确一年才当掉5分钟。不过这是最佳条件下的数据。 并不是普适情况。当然,我们不必指望学了Erlang就能写出99.999%可靠的系统。这个量级的工程强度已不能单靠语言搞定。系统设计、实现、测试、部署、对业务领域长期的积累和专精都得到位。
另外Joe也看reddit。他说如果你只上reddit,你会觉得世界上只有两门主流语言:Haskell和Erlang。
再次感慨表达能力太重要了。Joe的能写能说,应该对推广Erlang大有帮助。有道是,码农会著述,挡也挡不住。
分享到:
相关推荐
本文献由Joe Armstrong撰写,作为其在皇家理工学院提交的博士论文的一部分。该论文主要探讨了如何在存在软件错误的情况下构建可靠的分布式系统。研究始于1981年,并逐渐形成了一个新的编程语言——Erlang,以及一套...
标题 "Armstrong数的程序" 描述了一个编程挑战,该挑战要求我们找出特定位数(2位、3位和4位)的Armstrong数。Armstrong数是一个有趣的数学概念,它在计算机科学和编程中经常作为练习问题出现,因为它们涉及到数字...
面向软件错误构建可靠的分布式系统 Making reliable distributed systems in the presence of software errors Joe Armstrong 译者: 段先德 Joe Armstrong的博士论文
《Programming Erlang second edition》是Joe Armstrong的经典著作,它是Erlang编程语言领域的权威指南,该书第二版于2013年首次发行。书中不仅覆盖了Erlang的核心语言和框架基础知识,还包括了重要的社区项目,例如...
《深入解析Armstrong Java ARMSTRONG 源码》 在Java编程领域,理解源码是提升技术深度的重要途径。本篇文章将详细探讨名为"Armstrong_java_ARMSTRONG"的项目源码,帮助读者深入了解其背后的编程思想和技术实现。...
Armstrong 是一个为新闻组织开发的开源发布系统,支持多种形式媒体。并为你的团队提供工作流以建议可持续的运作流程。支持多媒体管理、手机平台、成员管理、CRM 集成、社交媒体集成等等功能。 标签:...
非常基础的直观的拓扑学入门教材,djvu格式
**Java实现阿姆斯特朗数(Armstrong Number)** 阿姆斯特朗数,又称为水仙花数,是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,370(3^3 + 7^3 + 0^3 = 370)就是一个三位阿姆斯特朗数。在Java编程中,...
《基础拓扑学》是M.A.Armstrong所著的一本关于拓扑学基础的教材。该书第一版于1983年出版,随后的版本分别在1997年、2004年和2010年更新。该书以帮助读者理解拓扑学的基本概念和原理为目的,为初学者和有一定基础的...
《Python库armstrong.core.arm_access-1.0.0:嵌入式硬件开发与后端编程的利器》 在IT领域,Python作为一种高度灵活且功能强大的编程语言,被广泛应用于各种场景,包括但不限于数据分析、机器学习、网络编程以及...
erlang并发编程,erlang之父Joe Armstrong得原著之一。
《源码解析:Armstrong数字的内存分配》 在编程领域,内存管理是至关重要的一个环节,它关乎程序的性能和稳定性。本文将深入探讨一个名为"Source code 4.zip"的压缩包中的源代码,该代码专注于在内存中添加元素,并...
由于本书是Armstrong所著,那么内容很可能涉及到点集拓扑、代数拓扑的初步知识,这为对数学特别是几何感兴趣的读者提供了一个很好的入门途径。 描述中提到本书是“Armstrong的基础拓扑学,中文版”,说明这本书已经...
《PyPI官网下载:探索armstrong.hatband-0.2.0.tar.gz中的Python分布式技术》 在Python的世界里,PyPI(Python Package Index)是开发者们分享和获取开源软件包的重要平台。今天我们将深入探讨一个名为"armstrong....
Armstrong.java
本书是Joe Armstrong所著《Programming Erlang, Second Edition》的中文版,旨在为读者提供并发编程的深入指导。书中首先介绍了并发的概念及其在编程中的重要性,然后深入讲解了Erlang语言的核心特性和基本语法,...
主要讲述了一些几何空间的计算方法如拓扑,粘合,群,迭代空间等
标题中的"PyPI 官网下载 | armstrong.utils.backends-0.1.0.tar.gz"表明我们正在讨论的是一个在Python Package Index (PyPI)上发布的软件包。PyPI是Python社区官方的仓库,用于发布和发现Python软件包。这个特定的包...