最近一直在想给erlang写点东西,让喜欢erlang的程序员,快些入门。
我个人学习erlang是因为项目支持,工作需要必须学习,所以慢慢的走过来的,现在有时间停下来做了一些反思;
我发现学习erlang如果自己先看书,但没有项目支持,很难进行下去,一定会被其怪异的语法,以及一些不知
道能给自己在工作中带来什么帮助,而最终放弃学习erlang。我个人认为erlang最大的优点是:
1.成熟OTP框架:有了统一的框架代码书写简单,并且每个程序员开发出来的代码很容易被其他人读懂,便于维护(注:还有变量不可变等一些特性也是代码编译维护);
旁白:我个人非常关注代码后期维护:不知道大家是否有这样的经历在一个十几万的C++代码中去修改和添加功能,因为一个大的工程可能要几个人合作开发,并且开发人员的水平和编码风格有很大差距,并且项目完成后,可能交给其他人维护,但由于人员流动等原因,新人的加入等,代码结构已经有了很大变化,导致越后来接手的人越痛苦,需要去适应的越多。我本人就经历过一次这样的事情,当时死的心都有了(虽然我以前也经常接其他人的代码,程序员在工作当中很少有机会从头开始写,大多数时候都是维护其他人的代码),我自己啃了一个月的代码,只把系统看了个大概,根本不敢进行大的改动。
2.代码简洁:erlang代码和C代码的开发效率比是1:7(注:这是于锋大侠文档中提到的),用少的代码完成强的功能;
旁白:其实有很多人不赞同我的观点,说用C++同意也能写出非常简洁的代码(鄙视我的是一些C++的大牛,呵呵),但我要说的不是这些,如果在一个项目中写代码的人都是C++大牛那没有关系,但现状是项目开发中人员的水平差距非常大;CMMI(软件成熟度模型)中代码中的bug和开发的代码量是成正比的,这是不可否认的,并且代码量越大,测试人员的测试用例越多造成测试压力越大,项目周期变长;并且代码越多,系统中残留的bug数也越多。
3.强大的容灾机制;
4.强大的自省机制;
5.强大的系统库(最起码基本功能不用弄这个库,那个库的,烦);
6.强大的开源社区;
具体的可以看链接的PPT, http://wenku.baidu.com/view/276d37d984254b35eefd346e.html