精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-08
一直有一个疑问就是,erlang难道不要求代码的可读性吗,类似的命令式语言语法都比较奇怪(可能这个是从一个过程式语言编程者的角度来看的,但是不可否认它更接近于人类语言,更接近伪码的表达方式)。那么在后期对erlang代码进行维护、重构和一系列优化时,不能说这样奇怪的写法是一个灾难
|
|
返回顶楼 | |
发表时间:2009-06-09
test_destack() ->
{<<"a">>, [], []} = destack([{<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], []}]} = destack([{<<"b">>, [], []}, {<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]} = destack([{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]}] = destack(<<"b">>, [{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"b">>, [], [{<<"c">>, [], []}]}, {<<"a">>, [], []}] = destack(<<"c">>, [{<<"c">>, [], []}, {<<"b">>, [], []},{<<"a">>, [], []}]), ok. 类似这样的函数是比较头大 不过相比较相同功能和近似同等性能的一个网络服务器端程序 C要近上万行,而erlang只要几百行,你选哪个,况且象上面的写法也不多见,大部分还是挺清晰的 就算是dirty and quickly 的方式也还不错呀 |
|
返回顶楼 | |
发表时间:2009-06-10
楼上所说的大部分还是挺清晰的不知道指的是哪部分? 别说我还是看过erlang基本语法的人,即便是erlang熟手拿到这个也是头大吧.计算机在执行代码时,是不管代码到底是几万行还是几百行的,而是看运行时具体的执行代码以及代码的执行效率,从这个方面来说,有没有数据支持Erlang能优胜c?
|
|
返回顶楼 | |
发表时间:2009-06-11
没人说erlang的执行效率会高过c, 开发效率和天生的分布应该才是优势
|
|
返回顶楼 | |
发表时间:2009-06-13
现在的 软件世界 不是 艺术 是 服务!
服务简单化 实用化 才是 王道! erlang语法太艺术了! 语言 是为程序员 服务的! 希望能简化! 个人觉得java这样的语言+groovy这样的结合也许是 商业软件走向 其他 语言 自有 自己的 特殊 领域! |
|
返回顶楼 | |
发表时间:2009-06-14
bachmozart 写道 test_destack() ->
{<<"a">>, [], []} = destack([{<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], []}]} = destack([{<<"b">>, [], []}, {<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]} = destack([{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]}] = destack(<<"b">>, [{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"b">>, [], [{<<"c">>, [], []}]}, {<<"a">>, [], []}] = destack(<<"c">>, [{<<"c">>, [], []}, {<<"b">>, [], []},{<<"a">>, [], []}]), ok. 类似这样的函数是比较头大 不过相比较相同功能和近似同等性能的一个网络服务器端程序 C要近上万行,而erlang只要几百行,你选哪个,况且象上面的写法也不多见,大部分还是挺清晰的 就算是dirty and quickly 的方式也还不错呀 看不懂说明功力还不够深.那你最精通的来说,你是一上来就能够使用的游刃有余的么?要得到好处,就得付出代价. 我觉得fp中最核心的,或者说最饶人的就是高阶函数传递来,传递去的.容易搞晕.其他还好吧. |
|
返回顶楼 | |
发表时间:2009-06-14
pipilu 写道 andrew913 写道 我们组的项目核心是用erlang做的,可惜我不会,有空一定要去学学。
用于实现什么功能? web 服务器监控。 |
|
返回顶楼 | |
发表时间:2009-06-14
dogstar 写道 bachmozart 写道 test_destack() ->
{<<"a">>, [], []} = destack([{<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], []}]} = destack([{<<"b">>, [], []}, {<<"a">>, [], []}]), {<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]} = destack([{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"a">>, [], [{<<"b">>, [], [{<<"c">>, [], []}]}]}] = destack(<<"b">>, [{<<"c">>, [], []}, {<<"b">>, [], []}, {<<"a">>, [], []}]), [{<<"b">>, [], [{<<"c">>, [], []}]}, {<<"a">>, [], []}] = destack(<<"c">>, [{<<"c">>, [], []}, {<<"b">>, [], []},{<<"a">>, [], []}]), ok. 类似这样的函数是比较头大 不过相比较相同功能和近似同等性能的一个网络服务器端程序 C要近上万行,而erlang只要几百行,你选哪个,况且象上面的写法也不多见,大部分还是挺清晰的 就算是dirty and quickly 的方式也还不错呀 看不懂说明功力还不够深.那你最精通的来说,你是一上来就能够使用的游刃有余的么?要得到好处,就得付出代价. 我觉得fp中最核心的,或者说最饶人的就是高阶函数传递来,传递去的.容易搞晕.其他还好吧. 不要混淆概念,看不看的懂跟容不容易看懂是两码事。又或者说,fp写出来是不需要被经常维护的,或者被除了开发者的其他人维护的,或者被跟开发者水平差太多的入门人员维护的? |
|
返回顶楼 | |
发表时间:2009-06-15
我也认为代码写的精妙了,确实不容易看懂.但是我认为这个不是问题.joe也没期待erlang能够成为一种大众化的语言.我想符合大众的语言,我相信是会有的,不急的话,就等吧.
|
|
返回顶楼 | |
发表时间:2009-06-15
大众化的语言已经有很多了,java,python不就是吗
不同的东西定位不同吧 就像java做得足够好的地方是,跨平台,自动内存管理等 但是很多时候通用意味着永远达不到最佳 我的平台就是linux,我就是要用最快的epoll,并且我需要自定义的高效数据结构和最佳的内存管理策略,那么通用的java能达到么 erlang可能在很多场合都不适合,但是在某些场合,确实没有比它更方便的了 |
|
返回顶楼 | |