2017 新兴技术企业大会:第二日回顾

  • Michael Redlich
  • 肖鹏

2017 年 5 月 10 日

话题:Java敏捷C#DevOps语言 & 开发架构文化 & 方法AITensorFlow

4 月 19 日,第十二届年度新兴技术企业大会(Emerging Technologies for the Enterprise Conference,ETE)在宾州费城山喜来登酒店迎来了第二个活动日。ETE 大会由来自坐落于宾州福特华盛顿的 IT 咨询公司Chariot Solutions组织举办。大会第二日包括了一个主题演讲,由来自微软的首席项目经理和播客主播Scott Hanselman主持。第二日活动还包括了如下演讲嘉宾:GitHub 工程经理Kyle Daigle、IBM 首席工程师Holden Karau、甲骨文公司 JVM 技术主管Karen Kinnear、 Clojure Applied 的联合作者Alex Miller和 Symphonia 公司联合创始人Mike Roberts

专题演讲

播客主播,同时也是来自微软的 Outreach & Community(扶贫与社区)、开源项目工作者Scott Hanselman带来了题为“后端到前端的历史:从大型主机到编译型 JavaScript 以及未来”的演讲,拉开了第二日的序幕。Hanselman 引用了计算机领域早年间(1949-1956)IBM 主席Thomas J. Watson曾说过的话:“我想,5 台计算机足以满足整个世界市场。”

Hanselman 专注于早年间万维网与当今新兴的 JavaScript 技术。他说:“HTML 表格曾经是网页开发中最先进的技术。”从早年间的 LiveScript 到如今被人熟知的 JavaScript,他探索了这些年 JavaScript 的进化历程。Hanselman 引用Secrets of a JavaScript Ninja这本书的时候,他质疑封面的角色是否真的像一个忍者。他开玩笑道:“嗯,JavaScript松散类型的。”

随着 JavaScript 变得更受欢迎,Stack OverflowStack Exchange的联合创始人Jeff Atwood基于 Berner-Lee 的最小力量法则(The Rule of Least Power)提出了一个推论。这个推论即为人们所熟知的 Atwood 定理:“任何可以使用 JavaScript 编写的应用终将使用 JavaScript 来编写。” 在 2011 年,Hanselmans 研究了JavaScript 是如何成为网页的汇编语言。他声明:“没人在写 JavaScript 了,他们转而使用jQuery”。Hanselman 还展示了一个可运行在浏览器中的单行JavaScript PC 模拟器。这个模拟器包含了一个控制台窗口。

Hanselman 说,由于当今的浏览器有些令人迷惑性的强大,开发者应从网页开发工具中挖掘更多的潜能。他还声明:“浏览器插件已死”。

Hanselman 还讨论了当今云服务技术的崛起与这项技术带来的大规模和易伸缩计算能力。他提出,由于“云计算不关心开发语言的选择”,开发者可以为云计算选择自己需要的开发语言。

尽管网页开发在这些年间有了长足的进步,Hanselman 坚持认为开发者们依旧在“向冷藏柜中发送原料”。他是这样解释的:“大型主机就像冷藏柜,因此在当今我们还在向理论上处于天空中的冷藏柜 — 也就是云 — 发送原料 。”

重要演讲

Java 的未来:模块化及其他。甲骨文 JVM 运行时主管Karen Kinnear

Kinnear 提供了一个关于 Java 9 的综合性介绍,着重于新的模块系统,并检阅了Java 9 相关的 JEP(JDK Enhancement Proposals,JDK 精进提案)。Java 9 有提高开发者生产力、提升 Java 在云计算的表现的目标。Kinnear 声明,新引入的模块系统可以集成到已有系统中。她向大会展示了模块和包之间交互和访问的细节,以及模块路径与类路径的区别。她还讨论了开发者们如何在出现不兼容问题时,维持向下兼容性,解决将已有系统向 Java 9 移植的问题。

使用 Apache Spark 做扩展(或者从一次意外后果中得到的教训)IBM Spark 科技中心首席软件工程师Holden Karau

Karau 讨论了关于处理包含DataFrames 和 Datasets在内的弹性分布式数据集(Resilient Distributed Datasets, RDD)会遇到的挑战。她着重讨论了数据划分,表达了“键偏斜”(key skew)的重要性,也就是键没有平均分布的问题。针对键偏斜可能会导致的数据划分不平衡问题,Karau 分享了一些方法,以避免解决这个问题时可能碰到的陷阱。她强调了把全部有同样键的数据记录聚合到同一记录的 groupByKey() 函数,在运用到不平衡数据的时候可能会产生灾难性后果。Karau 还简要概述了 Spark Python API,PySpark

Clojure.spec:不使用类型系统表达数据约束。Cloure Applied 联合作者、Clojure语言提交者Alex Miller

Miller 介绍了 Clojure.spec,这是一个用来表述数据和函数结构的 Clojure 库。设计上,它为 Clojure 语言提供了自动化属性,如验证、错误报告、共享语义以及测试数据生成。Clojure.spec 不是一个类型系统,它的设计哲学着重于数据本身。Miller 提供了大量源码例子,展示了如何使用 Clojure.spec 与语言核心特性进行配合。

使用 Next.js 库开发通用 React 应用Next.js联合作者Guillermo Rauch

Rauch 将 Next.js 描述成“易用简洁通用性React.js”:通用性,指的是它可以同时运行在服务端和客户端;易用,指的是对大多数常用任务只要一条命令;简洁,指的是它定义了明确的边界,行为稳定并且可预测。他说,利用 Next.js:“可以使用同一个通用软件模型(React)和语言(JavaScript),渲染简单的网页应用或是动态的实时应用。”Rauch 把用 Next.js 重写的Hacker News 网站作为展示。可以在他的网站上找到他的幻灯片

总结

第二日由 25 个演讲组成,话题包括:Java 9、Haskell、TensorFlow、Swift、Apache Spark, Containers、Convox、C#、F#、Agile 和 GraphQL。

编者的话

Michael Redlich(原文作者)自 2008 年开始积极参与 ETE 大会,并在最近(2013 年)以成员的身份加入 ETE 指导委员会。

查看英文原文Emerging Technologies for the Enterprise Conference 2017: Day Two Recap


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Java敏捷C#DevOps语言 & 开发架构文化 & 方法AITensorFlow