没有耐心看经过的请直接拉到末尾看slide列表。
这个聚会是由江宏首先提议的,我参与协助。目的是让长三角地区对
clojure语言感兴趣,或者正在使用的朋友当面认识和交流一下。会议的组织过程一波三折,首先是会议地点本来定在了上海google办公室,但是后来google那边又说不让过去,我再联系了原来淘宝网的同事火狐,经过他的努力和帮助,最终将地点确定在了上海大众点评。要感谢大众点评网和火狐的帮助,不然这次活动估计就黄了。会议的日期选定也比较偶然,跟七夕撞在了一天,并且8月6号这天说台风“梅花”要在江浙一带登陆,上海要刮多少级多少级的大风,加上我和杭州的几个朋友过去要坐高铁,那心里就七上八下了,搞不好就要被“掩埋”了。我们还开玩笑说最好买火车中段车厢的票为妙。
8月6日一早,和同在淘宝的杨冬,加上两位做ROR的朋友一起出发,天气没有想象的糟糕,高铁一个小时就到了,转地铁到大众点评网大概也才中午12点左右。打了电话给火狐,一起吃了饭然后就直奔大众点评网。大众点评网的前台大厅装修也是非常熟悉的橙色,很意外周6有很多人,后来才知道是在搞招聘会和培训。这时候,江宏他们也从昆山赶到了,火狐帮我们定的会议室很大,足够容纳20号人左右。陆续有人达到,到约定的1点的时候,我记的是来了大概11还是12个人,还有几个朋友在路上,因此我们决定推迟到1点半再开始。最终来的人估计有15个以上,估计报名的都来了。
1点半正式开始,首先是我来讲《clojure概览》这个topic,主要是一个clojure语言的介绍。这个是我上周开始准备的,在去年《clojure的魅力》的基础上做了删减和增加,听取江宏的意见增加了示例和引子。上周也在我们的团队讲过一次。轻车熟路,也为了给后面的topic留出时间,我讲的比较快,大概40分钟就结束了。
接下来是孙宁(sunng87)讲《clojure开发的生命周期管理》,我对clojure的周边工具并不熟悉,趁机更好地了解了很多 clojure开发过程中用到的工具和资料,推荐对clojure开发感兴趣的朋友看下。尝试了下
clooj,比我预期的要好,遗憾的是还没有语法高亮,推荐初学clojure的朋友可以尝试下这个轻量级的IDE。目前最好的clojure IDE还是idea里的La Clojure插件。最后孙宁顺便广告了下
lein-control插件,这是孙宁构建的一个
clojure-control的lein插件,他还贡献了一个类似python里
fabric的clojure DSL实现,让clojure-control更易用。
接下来是江宏介绍他们开发
trakrapp.com这个纯clojure实现的网站中使用的技术,以及遇到的问题和经验。这个网站基于
compojure这个框架实现的,前端采用backbone.js,后端是MongoDB和postgresql,可以说都是非常“新潮”的技术。他在谈遇到问题的时候,提到clojure的stack trace又长又丑,这一点深有体会,clojure的异常堆栈包含了java和clojure的,整个调用链相对较长,非常不利于问题的排查,不知道后续clojure会不会对这一点做出改进。
接下来是林晴介绍他们一个用scala实现的类似domino的企业OA系统,不过他这个例子给我的感觉更多是发挥了mongodb的schema free的特点,没有体现出使用scala的好处来。我对scala的观点一直很明确,scala想做JVM上的c++,从个人角度不喜欢这种多范式的语言,并且语法不符合我的胃口,特别是类型系统这块特别复杂,我怕我在写scala的时候还要参考一本厚厚的reference,这不是我想要的。而clojure的核心就非常小,相对符合我的期望。
作为东道主的火狐介绍了
大众点评网的新架构以及他们从.net往java迁移的经验,他们的新架构也是做服务化和中心化,对于.net和java平台来说,迁移更多是从人力成本和一些其他因素决定的,当然,迁移最重要的还是要有公司高层的全力支持,特别重要的一点是如何让老员工也参与这个过程。因为老员工对现有系统和业务最熟悉,将他们排除在外闭门造车是注定要失败的。
最后是同样来自昆山文石的吴哲介绍如何在半天内实现一个HTML 5的游戏,他介绍的
processing.js非常有趣,processing本身是一门编程语言,有人将它移植到了js上,可以直接在支持html5上浏览器展现,效果相当cool。巧合的是我在回去后的第二天去书店的时候,竟然在某个角落看到《
processing互动编程艺术》这本书,买了下来准备了解下。做数据图形化的同学可以关注下。
总体来讲,这次聚会的效果超过我的预期,在超强台风的阴影下和七夕爱情的感召下还有这么多人赶过来,作为组织者之一非常感动。并且topic讲座也让我学习了一些东西,最重要的是当面认识了一些网上交流过的朋友,给我印象深刻的是看起来非常老成的孙宁,完全不像个85后。还有个印象深刻的细节是现场的5,6台mbp,这里面还是因为有同学是在搞ROR的因素。
最后,给下slide的链接如下:
1,我的《
clojure概览》,源码在
github上。
2,孙宁的《
Clojure开发的生命周期管理》,
lein-control和
clojure-control。
3,江宏的《
Clojure web development》,他们开发的网站
4,吴哲的《
How to build a html5 game in half a day》
5,火狐的《
大众点评网新架构》
6,
cn-clojure主页