WEB开发网
开发学院软件开发C语言 适合C# Actor的消息执行方式(1):Erlang中的模式... 阅读

适合C# Actor的消息执行方式(1):Erlang中的模式匹配

 2010-09-30 20:50:33 来源:WEB开发网   
核心提示: Erlang在消息执行方式上的优势在于灵活,Erlang是弱类型语言,适合C# Actor的消息执行方式(1):Erlang中的模式匹配(4),在实现的时候可以任意调整消息的内容,或是模式的要求,也不妨简单接触一下这门语言,它的并发或容灾等特性给了我许多启示,在Erlang进行模式匹配时往往有种

Erlang在消息执行方式上的优势在于灵活。Erlang是弱类型语言,在实现的时候可以任意调整消息的内容,或是模式的要求。在Erlang进行模式匹配时往往有种约定:使用“原子”来表示“做什么”,而使用“绑定”来获取操作所需要的“数据”,这种方式避免了冗余的cast和赋值,在使用的时候颇为灵活。然而,世上没有完美的事物,Erlang的消息执行方式也有缺陷,而且是较为明显的缺陷。

首先,Erlang的数据抽象能力实在太弱。如果编写一个略显复杂的应用程序,您会发现程序里充斥着复杂的元组。您可能会疲于应对那些拥有7、8个单元(甚至跟多)的元组,一个一个数过来到底某个绑定匹配的是第几项,它的含义究竟是什么——一旦搞错,程序便会出错,而且想要调试都较为困难。因此,也有人戏称Erlang是一门“天生会损害人视力的语言”(令人惊讶的是,那篇文章居然搜不到了,我们只能从搜索引擎上看出点痕迹了)。

而我认为,这并不是Erlang语言中最大的问题,Erlang中最大的问题也是其“弱类型”特性。例如,现在有一个公用的Service Locator服务,任意类型的Actor都会像SL发送一个消息用于请求某个Service的位置,SL会在得到请求之后,向请求方发送一条消息表示应答。试想,如果SL的功能需要有所修改,作为回复的消息结构产生了变化,那么我们势必要修改每一个请求方中所匹配的模式。由于消息的发送方和接受方在实际上完全分离,没有基于任何协议,因此静态检查几乎无从做起。一旦遇到这种需要大规模的修改的情况,Erlang程序便很容易产生差错。因为一旦有所遗漏,系统便无法正常执行下去了。

您对Erlang的感觉如何?这是一门会影响您编程思维的语言。老赵建议,即使您平时不会使用Erlang,也不妨简单接触一下这门语言。它的并发或容灾等特性给了我许多启示。相信您会有不少收获。

出处:http://www.cnblogs.com/JeffreyZhao/archive/2009/07/09/message-execution-model-for-c-sharp-actor-1-pattern-matching-in-erlang.html

上一页  1 2 3 4 

Tags:适合 Actor 消息

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接