进了游戏行业,弃Java而用Erlang两个月后,对erlang的一些浅薄认识:
优点:
(1)一切弱类型脚本语言的优点。
(2)现成的组件都很实用,包括ets、进程字典、gen_server、gen_fsm等。
(3)消息型并发模型和不变变量减少了需要考虑并发加锁的场景。
缺点:
(1)一切弱类型脚本语言的缺点,没有静态类型检测,在调用其他模块时比较依赖注解,不然就要自己看代码,影响效率。还有代码修改时往往不能及时发现依赖这段代码的其他代码也要修改,编译器有时候不会告诉你,要到运行时才发现。
(2)调试困难,倒不是没有调试工具,IM还是有的,但是非常不好用,有时候还不如用老方法debug("1111")来得快。
(3)由于函数式编程的语法特点,有些算法实现起来不是太顺手。
(4)还是语言特点,匹配模式和不变变量,让本来可以不那么长的程序结构变长了。
(5)使用record时必须很小心,不然很容易覆盖。
(6)伤眼!!妥妥的!!!
(待续...)
优点:
(1)一切弱类型脚本语言的优点。
(2)现成的组件都很实用,包括ets、进程字典、gen_server、gen_fsm等。
(3)消息型并发模型和不变变量减少了需要考虑并发加锁的场景。
缺点:
(1)一切弱类型脚本语言的缺点,没有静态类型检测,在调用其他模块时比较依赖注解,不然就要自己看代码,影响效率。还有代码修改时往往不能及时发现依赖这段代码的其他代码也要修改,编译器有时候不会告诉你,要到运行时才发现。
(2)调试困难,倒不是没有调试工具,IM还是有的,但是非常不好用,有时候还不如用老方法debug("1111")来得快。
(3)由于函数式编程的语法特点,有些算法实现起来不是太顺手。
(4)还是语言特点,匹配模式和不变变量,让本来可以不那么长的程序结构变长了。
(5)使用record时必须很小心,不然很容易覆盖。
(6)伤眼!!妥妥的!!!
(待续...)
本文分享了作者从Java转至Erlang的两个月经历,阐述了Erlang在游戏开发领域的独特优势,如弱类型语言带来的便利、现成组件的实用性、消息型并发模型和不变变量的减少并发锁需求。同时也指出了Erlang的一些局限性,如缺乏静态类型检测、调试困难、函数式编程语法限制算法实现、匹配模式和不变变量导致的代码结构冗长、使用record时的风险及代码阅读负担。
2473

被折叠的 条评论
为什么被折叠?



