iPad 是我最喜欢的产品线。它的诞生,硬生生的从电脑与手机之间,创造出一个消费需求,一个崭新的产品线。iPad(以及所有其他的,同样形态以及设计概念的 tablet 产品)更加接近我心目中的未来设备的样子。

移动设备方面,笔记本电脑是在对于过去台式设备的模拟。使用的第一步,永远是翻开屏幕,分离出屏幕以及键盘,从折叠形态「变形」成为一个台式机类似物。

所以无论如何,笔记本电脑使用都是需要一个立方形状空间。

而 iPad 以及其他平板电脑,使用的第一步仅仅是点亮屏幕,然后就可以尽情使用。

相对于笔记本立方形使用空间,平板的使用范围仅仅是一个平面。这一点点的变化让它有更广的适用范围。即使在狭窄空间时的灵机一动,都可以找到一个不大但是足够的空间,来掏出平板电脑。不知不觉当中,平板电脑的使用时间大大增加。因为更多的机会适合用平板来工作,不论是狭窄的地铁,还是走动途中。

而「翻开笔记本电脑」这个动作,变得更加有仪式感。仅仅当找到一张桌子,并且有不短的一整段时间时候,才会用笔记本电脑来进行一大块工作。

我一直对于平板成为下一代电脑充满乐观期待。即使在 iPad 最早诞生时刻,仅仅被介绍为一个,主打移动上网体验的设备,现在人们对它的期待远比浏览网页要高得多。而我认为,重要的是如何改变态度去看待这个产品。

理想的终端设备

将 iPad 看作一个终端,他是合格的。

狭义来讲的终端,最初是指一台大型计算机上许多之一的终端机,可以多台终端机器共享一台计算机的计算能力。

虽然离日常生活常见的个人概念有点远,但是看不见的地方仍然普遍存在。学校以及科研机构里计算机行业,日常使用电脑并不会对单台有多么高的配置要求。一个普遍的方式,是每个学生日常都是打开一个黑框框,敲着命令。而那个黑框框就是一个远程终端,连接到某层实验室机房里面昂贵的 HPC(高性能计算机),由它进行大量的计算。所以看出了终端设备的必要性,因为庞大昂贵的 HPC 根本不需要随身携带,只要可以连接,就是进行复杂的工作。

在 iPad 诞生至现代,让 iPad 作为终端可能是计算机行业最佳的生产力工作方式。

在很多年之前,我刚刚拥有第一代 iPad mini 时候,我就一直对 iPad 上工作方式进行探讨。印象最深刻的是 MacStories 上的一个故事,iPad + Linode, 1 Year Later,讲的是一个程序员放弃了 MacBook,而是买了一台 iPad,租一个 Linode 公司的服务器来继续他日常的工作。正像图中所示那样,根本没有什么 Pro 版本的 iPad,也没有分屏或者文件拖拽,那仅仅是一台,刚刚具备多任务能力的 iPad 2。

MacStories: iPad + Linode, 1 Year Later 作者的工作状态

时过境迁,从那个 iPad 生产力故事那年到现在,iPad 已经变得不昂贵,Linode 以及其他的服务器提供商,在云计算发展大背景下,也早就降低了服务器的价格。学生时代的我就已经可以一直用着 5 美元的简陋服务器,来实现无数的有趣的事。

连接一台电脑,需要一个 SSH 协议终端软件。如果想要图形界面,也有流行的 VNC 协议,官方也有着免费的应用下载。终端软件推荐 Prompt,当然终端软件无法对使用起决定性作用,重要的背后那台电脑。

在学校的几个地方测试学校的网络结构,有了基本了解之后,我就已经决定了 iPad mini 作为日常主要使用的电脑。带着蓝牙键盘,在学校的任意角落连接回宿舍的那部电脑,完成日常的工作。甚至那时候,从出门时候都不会犹豫,直接把 iPad 塞进包里,而电脑只要确保电源不间断,路由器做好配置让我可以连接回宿舍即可。

曾经在图书馆里,拿着 iPad,写着内核模块,装载到虚拟机,做实验查看着结果。如果我带一部电脑来进行工作,仅仅编译以及虚拟机的能耗,就会让我整天四处找电源。而作为终端设备 iPad 不一样,仅仅是轻度的终端工作,电量可以让我使用一整天。

第一次有在外网工作需要时候,比如在外与朋友们聚会间隙惦记着自己的工作的时候,我想到的第一件事并不是去检索「如何远程连接自己的电脑」,装一堆软件买一堆服务。而是去思考,如何让这套工作方式,延伸到外网去,当连接可以保证之后,我的工作也可以保证。于是,在学校周围的麻将房里,我拿着很小的 iPad mini ,对着键盘敲击,而大洋彼岸的服务器将操作又送到了不远处自己宿舍,宿舍电脑在辛劳地工作着,完成我需要的计算。

(如果有兴趣,可以搜索下 SSH 的反向连接等相关内容。)

更广义的终端概念下,合格的终端设备

广义上终端的概念更加丰富。安装任何一个类似客户端应用,都可以将平板在广义上看作终端。可以想象,现在不联网的应用已经很少,应用背后无数的服务器提供的强大计算能力来为应用提供计算能力支持。所以日常生活场景都可以将 iPad 看作一个终端。其实在生活中潜移默化,但是普通人并不需要感知。

比如,微信只不过发了几条信息,但是并不是直观上那样端到端发送的。微信服务器每天处理着 PB 级别的数据,十亿与你一样的活跃用户每秒都创造着数十亿对服务器的请求。微信的功能没有多大的改变,而背后的服务器早就应对着

比如,网盘上有着上千 G 的虚拟的存储空间,远超着一个设备上的存储容量。但是其背后的对象存储服务器为这些资料提供了不可能丢失的冗余备份,同时保证用户请求一个文件时候,几毫秒就可以得到的处理能力。

这样来看,同样作为终端设备,上网本、Chromebook 与 iPad 可能设计理念上,有着一致的设计思想,或者使用中也是一致的使用思路。但是正如前文所述,形态上我仍然认为平板电脑产品是更符合我对未来电脑的预期。开合屏幕以及解开折叠形态,本质都是为了对传统电脑的模拟。

而且,此时的终端设备优秀与否,就是依靠于软件厂商的在相应平台上工作的重视程度以及完成度。我会一直强调喜欢广义平板电脑的形态的产品,但是内心中我也明白,目前在这当中做的最成功的其实仅有 iPad 产品线。

我甚至一度建议,如果并没有对计算平台强制要求,普通的人就不要花费一大笔钱去买一部笔记本电脑。根据我的观察,的确有一大部分人的笔记本电脑使用频率很低,或者仅仅被用来做一些,其他终端设备也可以游刃有余的工作。比如,仅仅是上网,购物,看视频。一部iPad的价格,买到的笔记本电脑,可能用着速度不及iPad上闪存的机械硬盘,实际的体验会糟糕很多。

(关于微信等背后服务器相关的数据,来自于个人整理自 InfoQ 上腾讯公司的分享,有兴趣可以查阅相关文章。)

优秀上网设备,浏览器以及互联网的未来

无法否认 iPad 是优秀的上网产品,正如它诞生时候,乔布斯在发布会上拿着他演示浏览器那样。一度,当我的陈旧电脑因为性能低下,让浏览网页体验体验不好的时候,我甚至就是电脑与 iPad 一起使用,iPad 专门用着一个键盘,用来高效使用浏览器。

几年前,我曾经十分迷恋过浏览器。当我第一次见识到现代浏览器强大的时候,我深深认识到为何 ChromeOS 要设计成浏览器主导的操作系统,即使它并不太成功,我仍然很尊重这背后的推动者。我也一度坚信浏览器会成为。我甚至会,电脑本地打开着网络服务器,通过浏览器,localhost(一个特殊的保留网址,指向本地)去访问那些优秀的网页应用。比如 impress.js 来制作幻灯来作为课程展示。(可以体验下 demo。)

其实,浏览器本身就可以看作一个重要的终端设备。在 iPad 诞生至今,同时发生的其实是浏览器的发展以及网络速度的发展。甚至目前达到了一个程度,native app 与其网页版本甚至没有什么功能的分化。同时还有一个同样可以看作浏览器的发展的是微信小程序(以及其他公司的同类产品),其本质可以理解成为一个可以调用更多功能的浏览器。对于一些应用,其实不同平台的版本做的同质化的工作。native app 或者小程序可能是,优化掉网页跳转过程中那种重复下载资源的消耗,但是最重要的还是向服务器请求数据来展示。甚至现代很多更先进的网络架构中已经不会区分渠道来源,专门有服务器提供数据即可。

例如,大众点评的浏览器、App、小程序版本,其实功能基本趋同。

Web、小程序、App 版本的同一应用,功能的同质化

我们已经经历过一代的浏览器发展,上古时代的浏览器只可以点击,没有拖拽、动态等。而可以预见的未来,当然像是高性能浏览器与微信小程序类似物逐渐同质化的发展。不妨设想一下未来浏览器的发展,例如,必要情况下,当然可以网页直接调用摄像头扫码,书签页的某个网址就来为你解锁膜拜单车。或者,购物网站的付款网页直接调用 Touch ID 来完成付款的授权。

到了这里,不知不觉中,又回想起 iPad 诞生之初,那个主导网页浏览的工具。而未来,作为一个优秀的设备,以及更加先进的网络技术,仅仅依靠先进的浏览器,也可以让它作为一个优秀的终端工具,作为日常使用。

通用图灵设备

经过了计算机专业科班几年的学习,我看待计算机这个概念更加的广泛。报废掉第一部我很满意智能机 iPhone 4 的时候,我很惋惜。虽然旧手机变得很难用,我很可惜的里面仍然可以使用的存储器以及处理器。在我眼里,现代的智能设备,与桌面上那些传统意义的电脑,并没有多大的区别。我甚至不靠谱地意淫过,如果我有机会回收,我希望将所有淘汰的大家不用的手机组成超算,然后虚拟化成云服务器出去给需要的人,继续让其产生价值。那部 iPhone 4 是个让我折腾很多的设备,甚至越狱之后拿着 shell,当作一台 Linux 主机那样玩弄,安装了 vim 和 gcc,艰难地编译一个 Hello World 都让我兴奋很久。

我提到这些,主要想要说明,iPad 与其他平板电脑,其实与传统意义电脑没有多大的区别。理论上他们其实都是一个计算能力等同图灵机的设备。也就是说,他们能做的事情没有多大的区别。区别在于,他们背后产品经理想把他打造成什么样子。打个比方,其实作为一台计算机,iPad 没有任何一点比树莓派差,或者 iPad 有着世界顶尖的移动处理器。而过分高估树莓派或者低估 iPad 都是片面的,他们其实都是一样的计算机设备。

而最终局限的,只是想象力而已。

如果我的 iPad 只能安装一个应用,我会选择 Pythonista(或者同类的产品)。然后再用 Pythonista 去实现其他的应用。Pythonoista 提供了一个编程语言 Python 的平台,并且把标准库的系统调用,尽可能地做成了 iOS 设备的。从自带的 Example 看到作者用它实现的各种玩具,从游戏到工具,到数学计算以及图形可视化。Python 是一个图灵完备的编程语言,也就是说,从理论上的具备了完备的计算能力。

举个实用的例子,Linux 常用软件 wget 可以用来下载网络上文件。我用 Python 之父写在 Python Cook Book 中的一个例子,使用几行 Python 实现 wget 核心功能。这样我们就获得了一个简易的下载软件,下载了网络上一张图片。

使用 Python 实现简易 wget 下载图片

那么创造力可以达到怎么程度?我来举个例子,我最喜欢的一个 Pythonista 上的应用,一个针对 Pythonista 的 ShellStash。基本就是,穷尽了系统调用的各种可能,让这个应用内,完全像是操作一台电脑一样。

比如,基本的文件管理,列出目录、创建文件夹……

比如,挂载一个「文件系统」,来自由地操作文件。这个所谓的「文件系统」,其实可以挂载一个 Dropbox、一个 FTP……

比如,常见的压缩,解压缩……

比如,Python 实现的 SSH 终端……

比如,Python 版本的 git 软件实现编程工作的版本协作……

即使 iOS 严格限制应用的权限,但是拥有了一个完备的平台,就可以在应用内实现无限可能。当 iOS 不允许此类执行代码应用从外界下载代码,不允许 Dropbox 同步,论坛上的极客们就自己用 Python 实现一个 Dropbox 同步工具,在应用内同步文件使用。

拥抱了一个完整的平台,也同时拥抱了工业界宝贵的开源财富。曾经那些工业界常用的 Python 库,一下子大部分在 iOS 上有了施展空间。比如,你可以毫不费力地在你的 iPad 上执行 Python 版本的 ss,让你的 iPad 作为一个专职网络服务的 ss 服务器。

所以,生产力很大部分,还在依靠着创造力。

即使如此,作为计算机专业的科班学生,我当然不会激进直接让这些来代替我生活全部,当然不会满足我所有的工作。但是我还是愿意大部分时间依赖着 iPad。我当然不否认,很多工作是需要电脑来完成。反对我的人当然可以说「有本事你在 iPad 上开发 iOS 应用啊」。我当然是可以说「不可能」。

但是回想起工作本质,到底是什么,然后再去思考 iPad 适不适用。我理解的工作本质,90% 的时间其实是在思考以及试验。iPad 上配合蓝牙键盘,写着算法框架以及试验正确性,这样的工作当然最花时间的,而这一点,我在 iPad 可以完成的很不错。超乎常人意料的是,那种所谓的在电脑上的工作,在头脑清晰之后,只需要很少的时间去实现就可以了。

是否有勇气放弃现有的

作为生产力转换的最大阻碍,就是敢不敢直接放弃已有的技术栈,去努力拥抱新的。

有一个例子其实很恰当。大学学习编程的人,记忆中可能都是要去安装一个 VC6.0。那可是一个一个 1998 年的老旧编译器,但是很惊讶的发现 20 年之后的现在,大部分大学里面还是默认使用其来教学,因为教学的老师是使用这款软件的那一代人。

但是学习编程真的仍旧需要这样么?理论上不需要,交互优良、画面美观的编程教学的 App 有许多许多。但是期末考试还是要求你回去继续使用那个上个世纪的东西。同样的道理,目前仍旧有的许多地方依赖,或者懒惰不愿意改变陈旧的 OA 系统,或者网站还是停留在 IE6 阶段,许多时候不得不妥协于现状。

有些情况下,这种因循守旧是最大的阻碍。并不是新产品不具备生产力,而是旧的事物让人离不开旧的生产力。

偶尔设想一下,在未来,如果一个人,人生中第一台电脑是一台平板电脑类似物。学习电脑第一步不是熟悉鼠标和键盘,而是直观地指点和触碰,我会认为那个人,比我这代人更加幸福。


编注

本文为 Matrix 社区正在举办的 iPad 能胜任你的工作/学习吗? 主题征文活动的精选文章。