前哈佛教授、Google工程师Matt Welsh谈移动开发趋势

已经展开预订的Google Glass,无疑是目前最引人注目的移动系统。类似系统背后,Google有很多有学术背景的人做出很扎实的研究,为技术的商业化筑好了根基。Matt Welsh就是这些人中的一个范例。

Matt Welsh现在是Google的一名软件工程师,从事移动开发相关工作。此前,他曾在哈佛大学担任计算机科学教授,再之前,他曾在Intel做研究。他主要感兴趣的技术领域是分布式系统和网络。

在最近的一篇博客中,他谈到了自己对于移动系统的研究发愿。

他首先指出:

在Google的移动系统研究部门工作,我得以深入了解这个领域中存在的没有答案而又困难的问题。有时候,学术研究者问我对这些问题的看法、他们应该从哪里入手。我有一个不断增长的项目清单,非常希望学术界能尝试解决。这不是说Google没有在解决其中的问题,只是学术界的限制更小,也许能得出一些更具新意的想法。

他提出学术界不应该研究的问题,包括:

  • 移动电话上的电源度量
  • Android调优
  • Dalvik VM调优
  • 构建新移动App,支持某些特定领域的科学目标,比如医学或环境研究等

其原因在于:

它们不够前沿,无法对未来5-10年有深远影响。

他还指出:很多学术界中人在研究一些愚笨而无意义的问题,比如手机上运行P2P网络、云计算为移动网络降低负载等等。在他看来,视频流、Web浏览和图片分享等等,这些流量的一半都来自移动互联网,那些项目在这样的流量占比中毫无必要。

接下来,他提出了自己的心愿列表。

1、理解移动应用和蜂窝网络之间的交互

蜂窝网络不是为TCP/IP这样的协议设计的,大部分移动应用也不知道蜂窝网络如何运作。这其中有很多值得研究的地方,包括理解它们之间的交互、协议与应用调优。

注意到在3G网络环境中播放流视频时的几秒延迟了吗?或是在浏览web的时候,偶尔出现好几秒才能加载的情况?背后十分复杂,其中的机制还没有得到深入了解。

与有线电信网络、甚至是WiFi相比,3G与4G网络有很不同的属性,包括延迟、丢包率的影响、电量消耗、在不同发送状态之间传输时的消耗等等。传输层数据丢失在蜂窝网络中很少发生,因为有多层冗余存在,还有混合自动重传请求HARQ,试图在网络栈底层解决丢失问题。这就让TCP的拥塞控制算法没有办法了,因为它主要依赖丢包计算信号拥塞。同时,在很短时间内,频道带宽可能发生巨大变化。(多说一句,任何想用大量下载之类的简单评测方法来理解这些,都是错误的,大量下载与真正的移动流量完全不同。)

一个蜂窝网络连接的寿命也很复杂。协商某个专用的蜂窝频道需要好几秒,而且有很多变量影响蜂窝网络如何决定设备应处于何种状态,是的,这是由网络决定。这些参数的选择,取决于设备上的电池寿命、网络中信号消耗、用户接受延迟、整体网络容量等多方面的平衡。只动动移动设备的固件,无法解决这个问题。

在不同市场中,移动运营商常常使用不同的网络调整参数,这要基于他们部署的设备种类、他们看到的流量大小和种类。因此,没有一站式解决方案。

2、理解应用表现的移动网络切换

这是对上一个议题的扩展。在蜂窝网络中,网络切换很复杂,没人深入研究这对于用户体验的影响。同时,由于WiFi和可用的蜂窝网络越来越多,何时以及如何切换网络,有很多东西可以调优。

当我离开家,试图找到行车路线时,发现我的手机还在费劲巴拉地用十分微弱、即将消失的WiFi连接,我讨厌这样!这个领域有很多有趣的问题。

3、为什么我的手机不能持续用一整天?

对此热门话题,Matt认为应该从改变移动应用调用的SDK入手。但由于现在移动应用开发热火朝天,他认为这么做很难。

为应用开发者提供更多力量和灵活性,还是限制API、让应用更高效,每次都是开发者获胜。很多导致应用耗尽电量的问题,都来自bug,但是应用开发者们会继续有足够多的绳子把自己(或他们的用户)吊在上面。他们需要更底层的方法解决这个问题。

这可以在多个层面解决,包括OS、虚拟机、编译器。

4、我的数据在哪儿?谁能访问?

Matt认为,很多应用将手机变成了跟踪器,收集用户的大量数据:位置、网络活动等等。有些移动研究者甚至很不道德地收集数据做自己的研究。一旦数据“进入云中”,谁知道它们会跑到哪里去、跑到谁手里。有Bug的或是恶意应用很容易泄露敏感数据,目前还没有好办法可以知道哪些数据被收集、谁收集、处于什么目的。

对此已经有些出色的研究,包括TaintDroid,但我认为还是有很多事情要做,尽管我们处于比较悲剧的位置,要跟开发者赛跑,他们总能发现更新、更好的方式跟踪用户。

5、未来十年后的移动web平台应该是什么样子?

在Matt看来,学术界没有认识到:开发一个真正出色、快速的web浏览器,其背后需要很高的复杂度和创新。

很不幸,学术界和Web开发社区之间的互动很低,很多计算机科学家认为JavaScript就是个笑话。但是别搞错了:浏览器基本上本身就是一个操作系统,它将很快可以做所有原生应用能做的事,甚至更多。另外,我发现web开发社区太过短视,也不愿意研发出真正引人注目的全新web架构。

Matt认为:未来十年,移动web的用户将在数量级上超过桌面web用户。因此,web将会是主要的移动平台,这就等于提出诸多全新趋势:

  • 无所不在的地理位置
  • 用户同时携带并与多个设备交互
  • 语音输入取代打字
  • 使用摄像头和传感器作为首要输入方式
  • 口袋中拥有强大计算能力,完成诸如实时语言翻译和机器学习能力,预测你接下来会做什么

我想,我们对于“web”是什么,视角太窄了,我们现在还在讨论诸如“页面”和“链接”这些愚蠢的问题,然而现实中,web充满具有各种出色特性的开发平台。我们应该想想,接下来的十年,web会怎么演化。

作为横跨学术界与产业界的专家,Matt的看法的确具有前瞻性,比如“使用摄像头和传感器作为首要输入方式”。PointGrab发布了移动设备的手势操控iOS SDK,基于现有平面摄像头就能做手势识别。还有另外一款应用“Hanson相机”,也能用动作手势完成拍照操作。希望本文能为InfoQ中文站的读者们提供一些创业的思路和想法。

你可能感兴趣的:(前哈佛教授、Google工程师Matt Welsh谈移动开发趋势)