计算机行业发展至今,软件工程师们可以操控的硬件的种类的增长速度,与CPU技术的发展速度相比,依然是太慢了。在不太远的未来,更多的设备将具备“智能”;可供程序员开发软件的平台会越来越多。可以操控更多的硬件——而不仅仅是在屏幕上输出这个输出那个——会使编程变得更有意思。
可以枚举软件开发人员操控的硬件都有哪些。先是PC/Laptop设备:
- PC显示器,对像素进行操控(例如绘制UI)
- 光驱
- 硬盘,进行文件读写
- 内存,显卡
- 网络通信设备,如以太网卡、无线网卡
- 蓝牙
- 摄像头
- 麦克风,音箱
而自从乔布斯创世纪般地推出iPhone手机,软件开发人员可以操控的硬件类型变多了:
- 可触摸的屏幕
- 照相机
- 类似手电筒的工具(通常是闪光灯)
- 振动器
- 重力感应器,这使得重力感应操作赛车类游戏成为可能,例如用iPad玩Real Racing。
- GPS
- 指纹识别传感器,从iPhone5S开始
- Google Glass,智能眼镜
- 智能手表,例如iWatch
- ……
这远远不够。我认为,在未来的十年里,CPU——无论是Intel X86架构还是Arm架构——将会出现在更多的硬件设备中。而这种趋势目前已经初现端倪——就是所谓的“智能化”。
智能电视不再是只能被动地接受卫星或者有线接入信号,它还可以连接互联网,让用户自主地选择希望观看的视频资源。
智能手机、智能电视、智能路由器,在未来,也肯定会有智能电冰箱、智能空调以及智能汽车等等。它们的共同特点将是:都有一颗强大的“芯”,提供丰富的硬件驱动API供软件开发人员开发(嵌入式)操作系统,并且具有接入局域网甚至互联网的能力。
未来会有这样的应用:
- 智能窗户,可以定时开关,或者设定透明度
- 智能照明
- 智能交通,现有的例如ETC(电子不停车收费系统,Electronic Toll Collection),以后可以设定自动驾驶:输入目的地,可以自动计算路径,自己的车可以与路、路上的其他车辆通信,获得可以行驶通过的路线。
- ……
可以想象这样的场景:现在是2020年12月13日下午5点,地点南京,你躺在正在自动驾驶的回家的汽车上。心里想着南方冬天不供暖,真是郁闷。你只好掏出手机,点击“My Home”图标,进入一个页面,里面又有5个图标:电脑,冰箱,空调,电视,路由器。你想打开空调,先吹个热风,这样一到家,就暖和了。于是点击空调图标,看了下它当前的运行状态,OK,是关着的。说明老婆也还没回家。于是打开空调,把温度调成25摄氏度。OK!于是闭上眼睛,骂一句:shit,路由器有什么好操控的。然后就躺着休息,等着回家吹暖风啦!
我觉得这样的场景距离我们不会太远。不需要所有的设备一下子都具备接入互联网并接受远程操控的能力,只要有那么几种设备具备了这样的能力,那么整个“物联网”(IOT,Internet of Things)就可以真正活跃起来。
单是目前互联网的蓬勃发展就已经极大地提升了市场对程序员的需求数量。而我相信,未来会有更多的人从事编程,也有更多的设备可以供程序员操控。
就像章鱼一样,到处都是神经细胞。未来,越来越多的设备都会具备“智能”——CPU is everywhere, everything is on the Internet——哈,真让人期待。