硬件和软件的融合已经到了一个转折点——两者不再相互独立,而是越来越多地呈现出一种镜像依赖关系。硬件和软件系统的合作比以往任何时候都要更加密切,它们之间的界限也日趋模糊,两者的功能彼此关联。作为开发人员,重要的是要引领趋势,确保我们掌握的技能不落后于最新技术,否则就有掉队的危险。
那么,开发人员的最佳应对方式是什么?
以下是我们认为影响今天软件开发的三大关键因素:
普遍存在:由于硬件方面取得了长足的进步,更加轻巧便携,因此,人们希望软件可以随时随地运行。
情景感知:今天的软件不仅执行任务,还能够识别出其所运行的更广泛环境,并作出相应的响应,自主决定或向用户提供数据分析结果的建议。
超连接性:今天的软件不再孤立存在,而是具有连接性——连接其他设备、物理世界、各种通信渠道等。
硬件扩展
如果说普遍存在、情境感知和超连接性正在塑造软件,那么可以说是硬件决定了这些体验。
同样,这些因素也扩展了硬件的潜力:
普遍存在:处理器和传感器的尺寸越来越小、价格日趋便宜,而功能更加强大,意味着在更多种类的对象中拥有了更强的计算能力。例如,Qualcomm?Snapdragon?835移动平台尺寸较前代减少35%,功耗降低了25%,专为智能手机、VR/AR头显、IP摄像机、平板电脑、移动PC等等而设计。
情景感知:各种各样的传感器和处理器使得设备可以识别周围物理世界的各个方面及自身状态。例如,可以判断设备是否以20mph的速度移动,是否跟随某个物体,或者是否有碰撞其他物体的危险...或一次性判断上述三个方面。
超连接性:通过多种连接方案,硬件正成为集合系统的一部分,决定了我们的体验。这包括智能家居、智能眼镜等。
不止是软件或硬件
鉴于今天影响软件和硬件的各种因素,开发工作比以前更为复杂,这一点不足为奇。看待融合的一种方法是要认识到今天的软件“不仅仅是运行一个程序”,而今天的硬件也不只是“提供引擎”。
例如,今天的软件需要各种各样的输入,进行综合逻辑分析,从而使物理世界中的系统(本地或系统)产生反应。可以是机器和机器之间,也可以是人和传感器与机器组成的系统之间。今天的硬件通过向软件提供重要的外部输入和数据,并允许程序与外部世界进行交互,从而带来价值。
利用Intent进行设计
了解软硬件是如何融合的固然不错,但这一点对于今天的开发人员来说又意味着什么呢?
虽然专家在许多令人印象深刻的软硬件进步中功不可没,但是希望构建下一代响应式应用程序的开发人员可以从更广泛的视角来应对挑战。从多(或反)学科思维的角度处理新项目,可以为新的见解和创新思维提供巨大的机会。