标题:“Erlang”小众语言,你了解多少???
只看楼主
王子ldj
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-4-16
结帖率:100%
 问题点数:0 回复次数:6 
“Erlang”小众语言,你了解多少???
编者按
专家认为函数式编程会风云再起,Erlang作为一种函数编程语言,它优秀的并发性和容错性能可与其他主流语言相比,某些功能是Python、Ruby等语言所不及,这些年来逐渐受到重视。它的IDE1.0版本也即将发布,作为一种面向小众的语言,你对它了解多少?是否认为它会成为一种主流语言呢?就仔细阅读本专题吧!
重磅推荐
Erlang详解
Erlang不但是一种编程语言,而且它具有比编程语言更加贴近操作系统的一些特性:并发线程、作业调度、内存管理、分布式、网络化等。据说使用Erlang编写的Yaws Web服务器,其并发性能是apache的15倍!

这个Erlang初始开源版本包含了Erlang的实现,同时它也是用于构建分布式高可用性系统的Ericsson中间件的最大组成部分。

         Erlang特性:

         ● 并发性 - Erlang支持超大量级的并发线程,并且不需要操作系统具有并发机制。
         ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)
         ● 健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。
         ● 软实时性- Erlang支持可编程的“软”实时系统,使用了递增式垃圾收集技术。
         ● 热代码升级-Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。
         ●递增式代码装载-用户能够控制代码如何被装载的细节。
         ●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。
        Erlang组件:

         ● Inets - HTTP 1.0服务器和FTP客户端。
         ● Mnesia - 使用Erlang的分布式实时数据库。
         ● Orber - CORBA v2.0对象请求代理(ORB)。
         ●SNMP – 可扩展的SNMP v1/v2代理和MIB编译器。
        
查看全文>>
技术白皮书
Erlang语法提要
虽然编程语言都是相通的,但是在开始了解一门新语言时又都是从基本语法开始的。本文介绍通过实例来介绍Erlang语言的语法、数据成员和函数。
erlang网络编程的几个性能调优和注意点
这场龙争虎斗中最大的受益者是Fackbook,它在一个最适当的时机以最恰当的身份出现在了微软和Google的争斗中,这场收购直接将Fackbook的市值提高了数十倍。今天在著名的bloger车东的博客中看到了Fackbook API的对象结构图,希望能让你从中获益。
Erlang十分钟快速入门
如果说微软的API让人们恶心,那和Google相比或许就是收费的原因。那如果抛开钱不说,就说稳定性,那Google就未必比微软好(单说API)。因为微软是独立的平台,而Google是基于网络的,N多的人用的是一个地方的东西。
Erlang实战体验
在Erlang程序里处理状态
很多令人郁结的程序员最大的问题在于弄不清哪些信息应该在什么地方、信息从哪里来、经过怎样的转换、到哪里去。而Erlang的编程练习对此很有帮助。不过呢,这个世界毕竟是有状态的。于是当你认真思考“什么信息应该在什么地方”这个问题时,Erlang的几种选择就显得很有意思了。
Erlang的Mnesia——为高伸缩性应用准备的数据库管理系统
Mnesia数据库管理系统运行于数据拥有者应用的同一个地址空间中,但是应用不可能破坏数据库内容。这保障了快速访问的同时能够有效容错,而这二者一般是相互冲突的需求。Mnesia植根于Erlang编程语言,基于Erlang的诸多特性而得以实现。
Erlang 的Socket编程
我学习Erlang已经有一段时间了,想的是做一个网络游戏之类的东西。然而,我没有找到一个适合我水平的像样的 Erlang socket 编程教程。本文按照一些基本的步骤,从无到有地创建 Bogochat。使用了迭代的方法,从简单的东西开始,逐步建立更加复杂的系统。
用Erlang Inets轻松实现Web服务器
说轻松,一点都不假。写个配置文件,调用一句httpd:start(),一行代码不写,就完成了一个Web Server。而且这个Web Server还不是简单的Web Server,其架构类似Apache,定制能力超强。 Erlang程序员当然希望这个Web Server可以调用到Erlang中。
第一次动脑筋写erlang程序
如果一门计算机语言不能影响你对编程的看法,那根本就不必知晓 那按这个说法的话,erlang值得我们了解的语言之一,因为erlang将“并行"集成到语言当中, 内置并行编程模型的编程语言多多少少都得益于Functional Programming。
一场 yufeng 与 TrustNo1 的对话
2007.10.29,知名人士TrustNo1和yufeng在Gtalk中就Erlang进行了短暂的聊天,现在将聊天记录进行整理后发表。粗体部分为本小编根据话题的侧重点所制定的主题。
人物介绍:

TrustNo1:又名T1,Erlang的早期推动者,在《程序员》杂志上发表了《一场茶杯里的风暴》一文,使得Erlang在国内开始为人所知。目前正在与Erlang-China站长jackyz共同翻译《Programming Erlang》一书。
yufeng:一名从事高性能网络服务器开发多年的“老程序员”,对Erlang的底层研究非常透彻,国内Erlang社区的领军人物之一,Blog地址为 http://mryufeng.

为何看好Erlang

Yufeng: erlang你主要看好它什么?这个对erlang的定位决定了 erlang的使用领域

T1: 实际上,对于erlang我觉得你了解的应该比我深入很多.实际上我对erlang的原始兴趣并非是concurrent.而是基于语言理论,从我的视角来看,我觉得是lambda calculus在并发上是有先天优势的.打个不好听的比方,java和C++在并发上的区别实际是猴子和猩猩的区别,而erlang和C++的区别是,人和猩猩的区别.

Yufeng: en,我非常赞同你的比喻。。其实 我之前做过软交换系统 c++的 用的也是和erlang一样的思想,只不过 erlang是个成型的系统 而我们自己的东西是个工具,所以规模和稳定都不如人家。不过国内的fp教育好像还没有展开 就看大侠你了

Erlang 正处于转型期

T1: 我觉得也不尽然,erlang是一个很特殊的语言.大多数的语言的目标都是general language.而erlang可以说是一种domain language.他的本源应该就是像你自己的电信开发库一样是一组工具,现在已经进化成了一个语言。现在的erlang处于一个转型期,从一个domain language向general languge转变,这是以往的语言从来没有经历过的。

Yufeng: 现在erlang是在转型 想易用性和通用性在靠拢。erlang的社区开发参与力度还是不够 开发的速度很慢,eep才刚出来几个月

T1: 我觉得这也难怪了,本来就是一个相对封闭的社区

Yufeng: 连svn 或者cvs 都不开放 搞不清楚他们想什么

T1: 而且负责人的都是专著电信领域的人,对于易用型和通用性的理解是和外界有很大差别的

Yufeng: 恩 是这样的 活跃的用户都是这个电信的 要不就是搞大型服务如网游的

T1: 比如那个record语法,十几个版本下来了,还是那么罗嗦,而且一直都是低优先级的

Yufeng: record是比较啰嗦 而且是预处理的

T1: 在他们的心里,可能SMP之类的事情更重要

Yufeng: 很不爽的样子 估计是怕改动太大 不用投入时间和精力改。smp是最直接的利益,R12B里面就对lock作了很大的抽象和调整

T1: 所以啊,他们和ruby那些人的观念完全颠倒过来的

Yufeng: dist方面基本已经稳定了。恩 主要现在还是ericission的那帮人在主持开发,社区力量还不壮大 还不能影响开发的决策

T1: 不过大致上来说已经非常不错了,很多东西都可以绕开

Erlang拥有强大的工具

Yufeng: 用起来开发对口的领域还是蛮爽的 开发 部署 维护的 工具都比较齐备。其他平台 很少有这个特性

T1: 是的,

Yufeng: 我看好它是 更看好开发 部署 维护的 工具 省了好多功夫

T1: 这一点是毋庸置疑的

Yufeng: 以前自己亲手打磨这些工具 累死了,总算解放了 呵呵。我想p2p方面的应用 erlang其实也是不错的 erlang的核心够小,p2p主要是节点间通讯和管理,这个erlang已经非常强大了,奇怪的是为什么没有人尝试

T1: 但是有些东西也是可以看到的,比如说软件服务。一个web的字处理软件,如何在服务器端进行搜索,全文比对?

Yufeng: 这个还得发明些分布和并发的算法才好用

一门基于服务的语言

T1: 现在的软件服务只能管理客户的存储资源,但是根本无法解决如何管理客户的计算资源

Yufeng: 恩 是这样的 都还比较低级阶段。google搞了这么多年 才起步

T1: 我交了每月60块钱,要执行一个搜索任务能够获得几个并行thread的效率?这些问题在其他的语言里面都无法解决的

Yufeng: 是呀 这个是erlang的卖点。资源如何使用是可以精确估计的 和实施的,这个和elrang出身电信应用 有很大关系

T1: 是的

Yufeng: 读其代码就知道 erlang的很多代码都是为了统计 分析 诊断 而写的附加代码,其他的语言和系统就没有这么重视。电信应用还是嵌入式的 比较资源受限,他们就的算计比较清楚

T1: en,基于服务的语言

关于推广和需求

Yufeng: 你现在有在作基于erlang的应用码?

T1: 没有,公司情况不允许

Yufeng: 恩 没有看的见的成功案例 大工程一般老板都不敢贸然尝试

T1: 说服周围人也很难

Yufeng: 所以要靠出书 把社区搞大 说服力大些

T1: 主要还是需求不足吧

Yufeng: 感觉需求还是可以的 就是有需求的人在观望

T1: 怎么说

Yufeng: 还要就是还没有熟悉到很够驾驭erlang。在观望 就是看别人的successful story

T1: 你说需求还可以怎么说

Yufeng: 其实这么人多服务器程序 如果用erlang写都是几百行的事情。其实只要和网络相关的公司 都用的到各种各样的服务器的

T1: 趋势是这个趋势。但是很多应用还不是非到用erlang不可的底部
Yufeng: 你只要易用性和宣传够的花 他们自然就会用。那倒是 python 什么的挺好,但是用的人一多 自然就会影响别人的判断,而且erlang写出来的服务器程序 比一般人费心费力用c, c++ 写的运行效率都高很多,开发效率也高 感觉在这方面的流行是迟早的事情 这是我的个人理解

T1: 恩,我也这么看,但是不一定所有的程序都要用牛刀
Yufeng: 恩 只求说大家认识到好 有需要懂的用就OK了

(该文章出自http://subject.
搜索更多相关主题的帖子: 语言 编者按 而且 
2013-04-16 23:22
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
不懂
2013-04-16 23:32
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
帮顶


[fly]存在即是合理[/fly]
2013-04-17 07:39
王子ldj
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-4-16
得分:0 
我把《Erlang程序设计》pdf上传上去了 https://down.bccn.net/5115.html
2013-04-17 07:56
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8842
专家分:2567
注 册:2004-3-25
得分:0 
支持楼主布道,Erlang在服务器端很强悍

畅所欲言
2013-04-17 17:41
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
得分:0 
顶!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-26 10:56
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
得分:0 
实用性怎么样
2022-04-26 08:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404499-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055128 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved