tl; dr我今年再次参加了Javaone。 好玩。
星期日
会议于周日开幕,进行了用户组会议和主要主题演讲。 实际上,由于我正在运行有关Java SE 7和8中新功能的Java大学培训课程,所以我实际上无法参加这些课程。该课程涵盖了Java 7的项目硬币,NIO 2和Fork / Join框架。与lambda有关,包括介绍流框架的基础知识。 我还介绍了JSR-310定义的新日期和时间库。
从参与者那里获得关于所涉及主题的反馈也很有趣。 令我惊讶的是,有几个人正在使用现有的NIO类,并且对仅将此功能升级到Java 7感兴趣。 班级的参与者是各种各样的人-几个Java Web / EE开发人员,但一些人做着更深奥的事情,包括几个生物信息学研究人员和大量的hadoop用户。 与lambdas相关的材料对人们来说更具挑战性,因为它要求他们适应某种程度上具有功能性的编程范例。 其他下午的课程,我认为我们设法让所有人都上了班。
培训结束后,我参加了几次用户组会议和JCP公开会议。 参加会议的人很多,也有很多相当坦率的问题和答案。 很高兴看到许多JCP EC成员都建议人们通过采用-a-jsr做出贡献,该程序使Java用户组能够为Java标准的发展和进步做出贡献。 我们从伦敦进行了很多此类会议,发现它们非常有效。
星期一
周一,我发表了关于CPU缓存优化的演讲。 这是一个适当的小众话题,但我认为将概念和问题暴露给更多的读者是一个好主意。 我之前已经进行过几次演讲:在DevoxxUK和Geecon,但这是这次演讲中出席人数最多的版本,大约有200名与会者。 看来一切顺利,后来我有几个人来找我,问他们如何将这些技术应用于他们的代码,这很好。
我还参加了垃圾优先收集器:当前和将来的适应性和人体工程学-之后的手动调优 ,这是Charlie Hunt,Monica Beckwith和John Cuthbertson共同主持的会议。 这具有一些很棒的技术知识,但是一旦我自己讲了话,我总是发现我的大脑真的被炸了。 如果我过于挑剔,我还要说的是,扬声器之间的过渡感觉并不那么顺畅。
那天晚上,我参加了JCP党, 吉尔·特恩理应获得年度最佳成员奖。
星期二
周二以一些精彩的技术讲座拉开序幕。 Brian Goetz表示“ Lambda:深入了解”,简要解释了Lambda表达式的编译策略的实现和设计。 这样做的最大好处是,他们已经抽象出了该策略,以便可以在以后的JDK版本中选择不同的方法,而无需人们更改代码。
在此之后,我提出了“在编程语言的可用性上建立定额”,这实际上是有关测量不同编程语言功能和语法的可用性的学术研究的摘要。 很高兴看到人们进行这种研究–当我读博士学位时,这么多的CS学者在理解编程语言可用性时将完全不科学地采取行动。 实际上,在随后与演讲者的讨论中,他指出,他主要是通过分析国际函数式编程会议的出版物来进行的,尚未找到完成的一项科学研究。 在阅读完本次会议的会议记录之前,我无法证明该会议主要是关于应用类别理论的会议。
星期三
我参与了OpenJDK社区构建和测试的下一步? 周三上午的小组讨论了我们与多家公司的合作,这些合作有助于使Java开发人员更多地参与其SE参考实现:Openjdk。 与通常的小组会议一样,人们在提问时会有点害羞,所以我们有一些准备好的问题要问自己。 不幸的是,由于最后一刻的承诺,一些小组成员无法参加活动,由于“零周转派对”的高质量,我有点晚了! 史蒂夫·普尔(Steve Poole)和丹尼尔·布莱恩特(Daniel Bryant)成为部队士兵,并确保会议仍能顺利进行,因此获得了巨大的赞誉。
我讨论了一些关于项目sumatra的会议: 完全Graal:加速Java和Project Sumatra BoF的GPU卸载 。 该项目的目标是能够自动将某些Java操作卸载到GPU。 他们基本上是针对Java流库中的一些并行操作。 从这些会议中可以很清楚地看到,尽管苏门答腊是一个有趣的项目,但它目前正处于一个刚刚起步的发展阶段。 例如,如何与GC交互被列为针对它们的开放设计问题。
我继续通过OpenJDK Porting Experiences(好,坏和Downright Ugly)研究与openjdk相关的话题,它描述了openjdk移植到powerpc方面的进展,这主要是SAP与IBM共同努力的成果。 。 很高兴看到Oracle之外有更多人在openjdk上工作。 他们在多个基准测试中显示的性能数据表明该性能与J9 powerpc版本具有竞争力-这对于SAP团队而言是一项了不起的成就。
目前,Permgen删除是一个大话题,有关如何迁移到元空间的讨论很多,因此我参加了Coleen Phillmore的Permgen删除演讲。 这是关于该主题的非常深入的讨论。 我已经看过Java 8 GC日志,因此我知道会有Metaspace条目,但是我当然感觉到,我对permgen和metaspace之间的区别的理解有了很大的提高。 我也非常感谢演讲风格的丰富和吸引人。
星期四
会议在星期四开始结束,但仍进行了一些良好的会议。 高级JVM调优涵盖了JVM中使用的一些常见调优技术。 即使标题指定了JVM调优,大部分讨论还是关于垃圾回收。 有很好的内容涵盖了可以调整的内容以及为什么要进行调整的想法,但我确实开始担心要为载有调整参数列表的幻灯片拍照的人数。 我们在jClarity邮件列表的朋友中发现了几次,有些人错误地认为,有一些“神奇的” JVM调优参数可以使事情变得更快,而不是使用调优来适应热点已经很不错的GC算法来程序的特定方案。 演讲的主持人显然是一位不会犯此错误的专家,但我确实感到他没有强调他列出的调音参数只是如何应用技术而不是“魔术”数的示例。
我还参加了Java 8 Futures的响应式编程模式,这是Java 8中 CompletableFuture接口的介绍性演讲,还介绍了一些如何使用它来进行异步编程的模式。 令人惊讶地强调了这样一个想法,即您可以使用异步编程来获得更好的缓存局部性,并且说话者反复提及“缓存损坏”,我认为他的意思是参考局部性较差。 还提供了经验证据来证实有关可伸缩性或性能的主张。 演讲本身讲得很好,但是与在Javaone举行的许多非常好的非常技术性的演讲一起,我感到有些失望。
结论
如果您有机会参加Javaone或在Javaone上讲话,我强烈建议您去。 它没有像Geecon或DevoxxUK这样的我参加过的会议的面向社区的感觉,但是在其他地方没有那么广度或深度的讨论。 我还没有提到的另一件事是Javaone的聚会数量-我设法参加了Glassfish聚会,JCP颁奖典礼,零周转聚会和Google JUG领导者活动-如果您正在参加这样的会议活动提供酒精和与人真正有趣的讨论的完美结合。 我还承诺,我的博客上会说Konrad很棒,所以“ Konrad很棒”。
翻译自: https://www.javacodegeeks.com/2013/10/javaone-2013-review.html