Javaone 2013回顾

今年我再次参加了Javaone,这是一次愉快的经历。

星期天

会议在星期天开始,主要内容是用户组讨论和主旨演讲。由于正在举办Java SE 7Java SE 8的大学培训,因此我没能参加。这个培训的内容涵盖了Coin项目(Java 7Java 8的一个开源项目)、NIO 2Java 7 Fork/Join框架 。Java 8大部分内容是关于lambda表达式,以及流框架基础。此外我还讲解JSR-310新的日期和时间函数库。

我非常喜欢从听众那里获得反馈。有几位正在使用现有NIO类的听众会因为新特性考虑升级到Java 7,对此我感觉十分惊讶。参与课程的听众差别很大——有几位Java Web/EE开发者,也有很多从事小众研究听众包括几位生物信息学研究者和一位重度hadoop用户。lambda表达式相关的材料对这些人而言理解起来是有一些挑战的,因为这需要适应函数式编程模式。下午课程的其他内容我认为每个人都能够理解。

培训结束我参加了几个用户组讨论和一个JCP开放会议。在会议中听到了很多中肯的问题和回答。很高兴能够看到很多JCP EC成员都推荐大家通过adopt-a-jsr方式进行参与,这是一个旨在让Java用户组为Java开发和流程标准贡献的项目。从伦敦开始我们已经开展了很多这样的讨论而且发现这种形式非常有效。

星期一

星期一,我发表了CPU缓存优化的演讲。虽然话题比较小众,但是我认为向更多的听众讲解其中的概念和问题是个好主意。我也曾讲过几次这个话题:之前是在DevoxxUK和Geecon,但是这次的演讲规模是最棒的大概有200个听众。我感觉演讲的效果不错,会后有好几个人找到我讨论如何在他们的代码中应用这些技术。

我还参加了由Charlie Hunt、Monica Beckwith和John Cuthbertson联合演讲的垃圾优先搜集器:目前及未来的适应性和人体工程学——手动调整。这个演讲有很多很棒的技术内容,但是我发现在演讲结束以后大脑已经筋疲力尽。可能是我的要求有点过分苛刻,我觉得在演讲者之间的切换感觉不是很顺畅。

晚上,我参加了JCPParty Gil Tene当之无愧的获得了年度最佳。

星期二

星期二有几场很棒的技术讨论。Brian Goetz的演讲Lambda:幕后探秘lambda表达式的编译策略设计进行了简要的介绍。设计的最大成功之处在于他们把编译策略进行了抽象,这样可以在以后的JDK版本中无需修改代码就能选择不同的实现。

接下来我参加了建立编程语言可用性群体,这个演讲总结了关于衡量不同编程语言功能和语法可用性的学术研究。很高兴看到有人在做这方面的研究——当我在攻读PhD时在这个方面很多计算机科学学院的表现都不尽如人意。事实上,在会后与演讲者的交流中他告诉我通过研究国际函数是编程协会的发表成果目前还没有已经完成的相关科学研究。在研读了这个协会的流程之前,我可以不负责任地证明这是一个主要进行理论研究的协会。

星期三

星期三早上的OpenJDK社会构建和测试的下一站?演讲我是专家组中的一员。这是一个在公司中鼓励Java开发者参与Java SE参考实现:OpenJDK如何协作的讨论。和往常一样,专家组的成员都在提问环节都比较腼腆,所以我们准备了一些问题来自问自答。不幸的是很多专家组的成员都因为临时有事没能赶到,而我也因为参加高质量的Zero Turnaround Party稍稍迟到!这场讨论能够顺利进行大部分功能都归功于Steve Poole和Daniel Bryant。

我参加了sumatra项目的几场演讲;Wholly Graal:为Java加速GPU卸载以及Sumatra BoF项目。这个项目的目标旨在为GPU自动卸载特定的Java操作。基本上是为了Java流函数库提供一些并行操作。从几场演讲中可以发现Sumatra是一个非常有趣的项目,目前的开发还处于相当初始的阶段。例如,如何与GC进行交互被列在Sumatra开放设计的提问列表中。

接下来我继续关注OpenJDK相关的演讲,OpenJDK移植经历:好的、坏的和彻头彻尾的丑陋讲述了由SAPIBM协作的移植OpenJDKpowerpc上的相关工作。很高兴看到在Oracle之前有更多的人参与OpenJDK的工作。演讲中给出的基准测试性能数据已经能够和J9 powerpc版本相匹敌——这是SAP小组令人印象深刻的一项成就。

移除Permgen是这次Javaone的热门话题,对转移到metaspace有很多相关的讨论。因此我参加了由Coleen Phillmore做的Permgen移除演讲,这真的是一个非常好的深度讨论。算然我已经看了Java 8 GC Log大致了解Metaspace会放在哪里,但是我对从permgen到metaspace有重大改进这点有不同看法。我也很高兴这次的演讲既有信息量也有参与性。

星期四

星期四会议渐渐落下帷幕,但仍然有一些演讲继续。高级JVM调优讨论了一些JVM使用中常用的调优技巧。尽管演讲的标题是JVM调优,但是演讲的主要内容是关于垃圾收集。演讲中一些不错的内容包括了那些是可以进行调节的,以及为什么你希望这么做。然而当我看到很多人对着幻灯片上的调优参数频频照相时开始有些担忧。很多时候我们发现在朋友的jClarity邮件列表里很多人对JVM调优参数有误解,他们认为一些“魔术般”的JVM参数比起通过调试让hotspot优秀的GC算法适应自己的程序更为有效。演讲者很明显是这方面的专家,他不会犯这样的错误。然而我担心的是他并没有强调他列出的只是如何应用这些技巧的调优参数示例而不是所谓的“魔数”。

我还参加了使用Java 8 Futures进行响应式编程。这个演讲介绍了Java 8CompletableFuture接口以及异步变成可能用到的一些模式。演讲中重复了很多次这样的观点:通过异步变成可以得到更好的本地缓存。演讲者不断重复的“缓存冲突”在我看来应该指的是缺少本地性引用。当然演讲中也给出了很多经验上的证据来支撑可扩展性或性能。这个演讲确实很棒,然而于此同时很多javaone的其他演讲令我失望。

总结

如果你有机会参加或者在Javaone上进行演讲,我强烈推荐。它不会有类似Geecon或者DevoxxUK这样的社区化的感觉,你会发现其他地方演讲没有的深度和广度。还有一件事情我忘记提到的就是JavaoneParty数量——我参加Glassfish Party、JCP颁奖典礼、Zero Turnaround Party和Google JUG Leader大会——如果你有机会参加就会找到酒精和有趣讨论的某种完美的结合。我答应在我的博客上说Konard很棒,所以“Konard真的很棒”。

原文链接: dzone 翻译: ImportNew.com - 唐尤华
译文链接: http://www.importnew.com/6265.html
[ 转载请保留原文出处、译者和译文链接。]

关于作者: 唐尤华

我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:@唐尤华

查看唐尤华的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

还没有评论。

跳到底部
返回顶部