袋鼠书的驯兽师作者教Erlang

来源:互联网 发布:程序员职业规划 知乎 编辑:程序博客网 时间:2024/05/01 07:14

去年就想参加的Erlang课程今年终于参加了,袋鼠书的Frecesco(拼写的。。。)集中上5天课给本科学生讲基础入门的Erlang,错过了前两天不过没什么可惜的都太基础了,第三天下午参加了,觉得还果然是基础的~~

 

 

 

Day3 concurrent programming & process design patterns


去年装的Erlang,之后就没搭理过了,找了半天才找到,emacs的erlang-mode都没有设,周围的小盆友们非说一定要用emacs编译shell才能用,I don't buy it~~凭着我对John去年上课时候的记忆,再加上电子书的支持,终于直接编译了,然后坚持用了一下午txt编辑,发现没有high-lighting果然是很纠结,大部分都是拼写错误。。。

 

想起来刚上来完全茫然的时候试用的命令都很搞,比如:e,:l之类,旁边的小同学很好奇说这个是虾米……

 

开始写代码觉得syntax很痛苦,每句都要写“.”结尾, 变量还是大写的,对我的Haskell习惯简直就是完全的颠覆,想想过两天要准备找Haskell的毕业设计就纠结,千万别改不回去了~~

 

写了两段代码以后就很习惯了,主要做的练习是袋鼠书ch4的课后练习,模型很简单,代码也很简单,没啥可说的,唯一就是关于flush(),我某一次运行的时候>flush().只返回ok,并不能返回process收到的信息,但我重新启动一次以后就好了,在想是我的问题还是他们要fix啥,呵呵~~

 

Frecesco是很会教学的人,这种从9点到5点的全天培训,能保持学生的积极性很难,他的方法包括流畅的语言表达,超强的幽默感,自己上窜下跳,找课程相关的视频,找活人模拟进程间通讯,最重要的是,一大袋子巧克力,给回答对问题的学生,所以我叫他驯兽师 :)很赞,不愧是专业的培训师~~

 

BTW,昨天注册了下个月16号的erlang conferece,因为是学生所以免费,咔咔,不过之后3天的培训可是要14000大洋,which让我掏钱打死我也不去的,哈哈,穷孩子哦,看看有没有机会以后蹭一个啥的,嘻嘻~~

 

 

 

Day4 Error handling & Distributed programming

 

很久很久很久没有早上8点出门了,为了这个免费的培训机会,真是拼了~~

 

因为周围都是本科生,很多知识都很欠缺,所以驯兽师讲的会比较慢,以确保每个人都能听懂,于是我可以开小差整理一下前面的内容,特别是syntax的咚咚,以便后面继续。

 

说到了多核,据称Erlang鉴于其没有share memory,可以做到速度与核数的近似线性增长,听起来是很有魅力的,想想在个128core的上面跑Erlang和Java,多有喜感的画面啊,哈哈~~

 

中午才跟伊朗强人讲到线程间的联系以及异常处理的方法,下午驯兽师就讲了link和error handling,现在说到了erlang的传奇性功能——upgrade。 果然发现距离产生美,了解的越多发现其实还是很局限的~~Erlang只能保存2代的code同时,也就是说同时可能有线程运行2个不同版本,如果再装载新的版本,最老的版本就会被移出而且所有相关进程会被终止,就像其他程序一样……而版本数限制不过就是个design decision,不是技术局限~~就不能删除前查一下 是否有进程在当前版本下运行,这样就完美多了。。。

 

有几个问题:

首先所谓Erlang的garbage是generational的,还有shallow和deep之分,严重的没太理解

if为什么会有很多的gard,他们是互斥的么

case用的pattern matching,所以pattern之间是互斥的吧

今天下课问问老师