从目前来看,IT程序员或者是软件工程师的数量依然需求明显。特别是所谓的"码农",本应该是创造性的工作,正在变得机械化。程序设计的未来应该是什么样子?计算机在未来世界中会承担一个什么样子的角色呢?
随着自然语言处理和人工智能的发展,语音识别正在变得越来越通用。语音输入已经在Chome、Apple的设备上实现了应用。特别是Siri在语义上的进步。这里,显然是一个计算机发展的方向,未来计算机与人类的交互正在这些基础上更加深入。鼠标、键盘将会消失,因为这些东西注定了输入效率的低下,人类与计算机的交互,应当越来越自然化,语言、表情、动作,最终会成为人机交互的接口,更甚者,直接的思考的交互也会如此,在这样的基础上,人与人之间的交互也会借助于此变得更加方便。一切都成为了数字化的东西。交流的成本相比现在更加降低,即使从目前的角度来看,现在的交流成本已经很低了。
交流成本的降低,带来的一个问题是必然的,信息的爆炸。因此可以遇见,未来的信息规模会更大,可能会包含每个人的思考记录、记忆等等。相机DV这类,最终会消失,或者仅仅是一种艺术的形式,而不在是记录生活的工具,因为记忆都会存储,所见、所闻都可以搜索和查看,从这点看,搜索,依然是重中之重,信息太多,即使个人的信息就难以查找,将来的每个人应该包含一个搜索引擎,然后在结合整个世界的大规模的引擎组成推理、推荐系统。
纸质文档的消失似乎也像相机和DV一样必然,所思所想都会记录在数字化的存储中,那么数字签名成为了一个重要方面,或者更大的方面就是身份认证,如何防止数字化的信息被人伪造。还有个人信息的保护。隐私与政府管制总是矛盾体,即使在数字化的背景下。分布式的存储和集中式的存储会结合起来。分别存储个人的和公开的信息。每个人应该会有一个终生唯一数字ID,以保证认证。微博这种形式会不会继续存在呢?应该会有这种形式,但是变得理所当然,而不是一个专门的应用。匿名应用会是一个热点,因为数字ID其实实现的就是实名制,是否真的可以实现匿名ID真的很难确定。但是,有管制的地方总会有黑市。
信息爆炸的结果就是对硬件的要求增加,信息需要存储、运输、处理,所以,存储空间会更大、网络带宽会更大、处理器性能会更大,所以分层缓存思想一定还会存在,只是粒度上更大,个人的终端存储不够只能存储部分内容,服务端的存储、处理能力则更强。就如同换页,只不过,目前是通过总线在内存、硬盘、CPU缓存之间换页,将来会有一个更大的粒度,用户终端、家庭终端到最大的服务器端之间的换页,所以网络速度必须要足够快速。
虚拟现实技术也会成为重要的支持部分,现在的终端如手机、ipad等等,最终也会渐渐消失,变成嵌入式的人体的一部分,或者外在的一部分。但是所有的交流接口,都已经通过虚拟现实,将信息和物理世界联系在一起。两人通过终端进行的会议,会有桌子、展板等等,只是都是通过数字化模拟来实现。现在看来艰难的异地恋、公司会议效率低下等等,都会因为虚拟现实技术的发展变得合理。
计算机模拟的发展,特别是计算机在推理上的模拟。计算机应当会有可推理可归纳的能力或者说可进化的能力,可能会依赖于遗传算法等等,利用随机的带来的跳动,来实现自我进化,但是这一进化是无法预测方向的,必须通过模拟来保证剔除坏的进化。计算机对物理世界的模拟能力也会增强,这是大规模数字化、计算能力增强带来的必然结果,数据分析也会形成对物理世界的模拟的指导和预测,因为数据相比现在,有更多可以挖掘的方向。
由于终端的普及,以后任何人对于计算机的应用都会有良好的技能。但是,是否还是需要编程人员呢?日常的编程,应当会消失,因为人工智能足够好、所有人的计算机技能也足够好,那么日常编程会交给每个人自己去实现,类似现在的脚本,只不过会更加简单,通过语言描述就可以,AppleScript就很类似。未来的程序设计,应当会集中在基础设施的提供上,为上层提供编程的接口,或许就是所谓的元编程。提供机制,而不在是现在的各种机械的形式。计算机自己的进化能力一旦养成,程序设计人员的工作量就会更加少,集中在如何优选程序,如何进化的更加优秀上,那么工程性的重要性就要渐渐低于研究性的重要性。所以,未来码农会小时,工程性的工作会减少,创新性、研究性的工作内容会成为主要的部分。程序设计的目的不再是提供应用,而是提供编程的基础设施,让用户来实现自己的想法。
多么美好的世界。人类走入创新的世界,或者如I,robot、黑客帝国那样,沦为计算机的奴隶。技术永远是一个双刃剑。