Erlang能超越Java吗?

    Post By : 遙子以逍  2008-06-11

            提起Erlang语言,相信许多人都会摇头,因为它实在是太陌生了。在2008年6月由TIOBE Programming Community提供的程序语言排名中,Erlang占有率仅为     0.121%,排名第49位。与之形成鲜明对比的是,Java以20.890%的占有率高居榜首,紧随其后的是C(15.513%)、C++(  10.806%   )、PHP(10.206%)、VB (9.787%)、Perl(5.548%)、C#(4.058%)、JavaScript (2.927%)。的确,比起2007.6月来Erlang长进了不少由0.08%上升到0.121%。这相对于传统老牌“大佬”语言相比,Erlang语言绝对算得上是一种“小众”语言,但其未来的发展前景却是无法估量的,因为它可以解决传统语言很难解决在并行计算中的难题,甚至有专家预言可能成为下一个Java,在正在迅猛发展的并行计算时代,Erlang将会迅速的崛起。我不禁问是这样吗

           现在网络上Erlang的语言也大势兴起,有人认为Erlang会成为下一代的Java,其理由是:如果有了大公司的支持,它甚至可能成为下一个Java。因为它是个开源项目,非常适合多核处理、Web服务等领域。事实上,它也是编写在多核机器上运行的高可靠性系统的唯一成熟语言。这种想法的确是不无道理,有大公司的支持的确成推动程序语言的发展,但是光靠大公司的支持就能居世界之首,我想这也有些......

          下面我们来看看Erlang的特性:

      Erlang是一种函数式语言,使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。使用Erlang来编写分布式应用比其它语言简单许多,因为它的分布式机制是透明的,即对于程序而言并不知道自己是在分布式运行。Erlang运行环境是一个虚拟机,有点类似于 Java虚拟机,代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

    ◆并发性,Erlang具有超强的轻量级进程,这种进程对内存的需求是动态变化的,并且它没有共享内存和通过异步消息传送的通讯。Erlang支持超大量级的并发线程,并且不需要操作系统具有并发机制。

    ◆ 分布式,Erlang被设计用于运行在分布式环境下。一个Erlang虚拟机被成为Erlang节点。一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)。一个Erlang节点能够创建运行在其它节点上的并行线程,而其它节点可以使用其余的操作系统。线程依赖不同节点之间的通讯,这完全和它依赖于单一节点一样。

    ◆ 软实时性 Erlang支持可编程的“软”实时系统,这种系统需要反应时间在毫秒级。而在这种系统中,长时间的垃圾收集(garbage collection)延迟是无法接受的,因此Erlang使用了递增式垃圾收集技术

    ◆ 热代码升级 一些系统不能由于软件维护而停止运行。Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。这也使得安装Bug补丁、在运行系统上升级而不干扰系统操作成为了可能。

    ◆ 递增式代码装载 用户能够控制代码如何被装载的细节。在嵌入式系统中,所有代码通常是在启动时就被完全装载。而在开发系统中,代码是按需装载的,甚至在系统运行时被装载。如果测试到了未覆盖的Bug,只需替换具有Bug的代码即可。

          由这些特性可以看到,它在Web语言中的确有很大的优势,但是成为下一代的Java却是“无其心,也无其力”,若Erlang发展之壮大,之迅猛,那么它将被Java所吞噬,为Java所用。我觉得Java的强大之处不仅仅在于它强大的语言本身,还有无穷的包容之心,海纳百川。以上在下的愚见,多多包涵!









发表评论

您将收到博主的回复邮件
记住我

精彩分享