凝视水晶球,我们试图寻找未来五年中关于编程会发生什么,哪些会激动人心。
技术领域快速变革着,而用于构建这些技术的工具也随之不断发展。如果你不能超越当前的项目,那你就只能在兔子洞里越陷越深了。
为了帮助您呈现一个精彩的未来,我们预测了未来五年内编程领域将进行的颠覆性变革。由于我们的水晶球的主观色彩很浓,以下这些猜想也许并不是普遍适用的,还有一些或许在五年内不能完全实现。有些虽然已成为了现实,但真理的确立不是一蹴而就的。
亲爱的读者,请你快速阅读吧,因为未来将以超越我们认知的速度发展着。
1. GPUs 将是下一个 CPUs
玩家喜欢吹嘘他们的显卡,世界其他国家也在迎头赶上这项技术。大多数早期尝试使用GPUs的,主要是进行图形处理,现在与图片不相关的应用,正在愈来愈多地被GPUs的并行结构重写。物理学家使用它来研究问题;天文学家用显卡来模拟星系;生物学家把GPUs对于人口的研究应用于统计学中。只要代码有效地运行在GPUs上,编译器开始进行检测,这些应用就会变得越来越广泛。学术工具只能做到有限的水平,当任何人都可以轻松地使用它做项目时,GPUs将变得非常流行。
2. 数据库将执行日益复杂的分析
数据库的未来将一定不仅仅限于对于数字的存储方面。许多数据库已配有复杂的报表引擎(又名商业智能)。具备了这些后,数据库将变得更加强大,在数据库上将可以运行更加复杂的算法,搜索到更加有效的数据中的模式,完成现在风靡一时的“大数据”中的大部分工作。
其能力和复杂程度将由移动数据的成本所决定。把数据留在数据库中,让引擎进行分析,速度要远远快于把数据提取到独立的数据包中,因为这会限制通信开销,减少从数据库中提取值的必要的编程工作量。
3.万能的JavaScript
JavaScript不会是编程世界中的唯一语言,但是它将显现它独一无二的作用。在浏览器上不可避免地要使用JavaScript,它几乎占据了所有的客户端计算机。现在,服务器端也正在开始接受 Node.js的工具。
在其他领域,JavaScript的地位也越来越重要。毕竟,大多数移动开发人员可以在运行于浏览器的HTMIL5的应用程序中获取他们想要的性能,得到的结果可能不如源代码,但是JavaScrip已经足够好了,而且它具有网络便携性。
浏览器并不只是克隆手机,它会吃掉整个平台。Chrome OS和Chrome笔记本正在使常规操作系统废置掉,当JavaScript和浏览器已经能够完成一切了,为什么还要担忧那一层?
4.Android遍布在每一设备上
当浏览器风头略逊,Android便紧随其后。相机设计师,在优质的手机镜头的压力下,在相机中加入了Android系统,所以你现在可以在尼康上运行Instagram了。还有Android冰箱、Android汽车音响、甚至Android耳机。一些人抱怨UI太过于复杂,但是却没有抓住问题的本质,UI层可以简化;如果Android在底层,平台将占主导地位。
还有,PC电脑制造商正在感到被排挤在外。他们的解决方案?在Wiindows上运行Android, 让人们在桌面上使用Android的apps。有些在运行Android模拟器,其他的正在创建类似“PC Plus"这样的品牌。一旦Android取代了PC, 它将与浏览器一起把Windows apps抛入到业界第三的位置。
5.物联网——比以往任何时候都更多的平台
Android系统(还有Linux)殖民全世界的副作用之一是将更多的对象加入到物联网中。在众多要加入的平台中,最重要的是汽车。导航和购物只是开始。当自动汽车开始推出时,会提供更多的机遇给开发人员,大笔资金将会投入到汽车定位和信息的开发中去。
关键是找出对于每一个领域来说哪些特性是必不可少的。当类似Android的常规操作系统提供了一个统一的核心时,每一个平台都需要定制相应的功能。机器人玩具可能需要有内容过滤器来提供适龄的服务,恒温器要与天气预报形成互动。以恰当的特性去建立这些APIs将是问题的关键。
6.开源将以新的方式压榨我们
对于所有的类似Android, Ubuntu或者MySQL的开源栈来说,仍然面临着要去寻找资金来支持发展这个棘手的问题。开源代码可以帮助黑客,但是还没有太多关于公司通过建立稳定的开源生态系统而使程序员可以从中购买到医疗服务和食品这样的案例。
绝大多数开源公司在开放源码的许可下发布所谓的演示版本。这正如把免费的调料包藏起来,让程序员去讨价还价。这就是这个世界惯常的做事方式。 既然可以获得免费的牛奶,为什么还要去买牛呢?最好的开源项目是去发现一种方式,既拧紧了螺丝,又没有吓跑客户。
7. WordPress Web apps 将比比皆是
奥巴马政府所做的最大的错误是从零开始构建保险交易网站。以前从未有人这样做过。为什么要如此麻烦,如果你添加一个WordPress插件就可以?如果你真的非常挑剔, Joomla或 Drupal也可以帮助你完成工作。关键并不在于哪一个平台,而是因为如此多的功能构建与框架中,网络应用程序已经无需再创建了。
当你攻击代码时,游戏变得更加饶有趣味了。WordPress有自己内置的编译器,因此你也可以在WordPress内部进行开发。虽然没有调试器,但是你完全可以绕过它。如果WordPress增加一个例如PHPMyAdmin这样好的数据库浏览器,再提供一些基本的调试功能,开发速度也会因此提高。
8. 插件将取代成熟的项目
基本的Web应用程序并不是唯一能够驾驭代码段将其插入到一个更大的框架中去的。Photoshop曾是改进图片占主导地位的引擎,部分原因是由于它丰富的插件生态体系。但是现在像MagicHour这样的应用程序就可以使得插件更加简化。大多数主要的平台都提供有一个优质的插件API, 但是一个最好的平台需要有成千上万的模块、库和插件来构建一个富饶的生态系统。
这种新兴的生态系统意味着程序员会写更多的代码段,更少的应用程序。正确的粘合代码将比庞大的、手工建立的、上百万字节的应用程序强大上百万倍。一个小代码段可以利用生态体系中一切东西,而一个很大的应用程序必须自己完成一切。
9. 命令行万岁
通过一连串的单击进入工作中的应用程序变得愈来愈简单,但是在文本编辑器和终端窗口中仍然有惊人的工作量需要去完成。所以,事与愿违命,令行不会消失。事实上,更加现代化的工具只有在命令行才能完成工作。
命令行太过灵活和普遍,所以不会被取代。漂亮的GUIs有着滴答声的接口和拖拽的小部件吸引眼球,但是程序员仍然保持恢复到文本。
命令行的持续复苏的核心来自于脚本的简化。因为它简单且可以扩展,所以命令行将一直持续存在。如果你有一个脚本,你就可以将它扩展和黏贴到其他脚本上。
10. 简化下来就会失败
五十年来,程序员试图让人们能够轻松地学习编程。通过五十年的努力,他们成功了——但却只能完成基本的任务。一些怀着善意的人想让编程变得更加简化,人人都会使用,但是这只是布道者渲染的梦想,他们只是在哄骗更可观的经济资助来帮助他们建立所谓的有竞争力的劳动力体系。
哎,真正的编程意味着理解这些看不见的数字在小盒子中曼妙起舞。意味着理解创造软件和责任划分的规范协定,只有这样软件才能够顺畅地运行。去教大家欣赏if-then-else 语句的美妙逻辑,是一个好主意!但是这和创造更多的程序员出来,可不是一码事。
11. 外包和内包仍将陷
入僵局
一个标准的预测是——所有的编程工作都将流向工资最低的国家。
这个预测正好被大胆的经济法学所映射:低端的工作将被自动化的工具所取代,真正的工作将由那些了解业务的人所完成。
以上的观点都是真实的。外包团队将会获得低工资的工作,但是也不免要受到新的自动化工具的压榨。有很多的网站很容易在全球范围内雇佣到低工资的工人。还有一些网站可以从零加速到六十码而不需要雇佣任何人。依靠于外包合同的小组将会逐渐发现他们正在跟那些既了解业务又不需要帮助的人竞争着。
12. 管理层将继续误解编码者和编码这两个概念
最痛苦的对话莫过于听西装革履的非编程人员提出要求,但往往都以失败告终,因为得不到他们想要的东西。
这些西装笔挺的人花了好多年在学习这项技术,可是还远不如去雇佣一些年轻人来做。年龄歧视的最大原因是他们无法理解基本的技术知识。唯一的解决方法,是去寻找那些像独角兽一样珍稀罕见的二十二岁程序员!。
公司所运用的方法是——能够利用其它每一个人的才智的人,才是最终成功胜出者。他们会以合理的步伐来创造稳定的工作软件,来提供有用的、足够的应用服务。
(本文由OCCS软件云工厂编译,转载请注明出处。)