对于未来编程的十二种预测

凝视水晶球,我们试图寻找未来五年中关于编程会发生什么,哪些会激动人心。

技术领域快速变革着,而用于构建这些技术的工具也随之不断发展。如果你不能超越当前的项目,那你就只能在兔子洞里越陷越深了。

为了帮助您呈现一个精彩的未来,我们预测了未来五年内编程领域将进行的颠覆性变革。由于我们的水晶球的主观色彩很浓,以下这些猜想也许并不是普遍适用的,还有一些或许在五年内不能完全实现。有些虽然已成为了现实,但真理的确立不是一蹴而就的。

亲爱的读者,请你快速阅读吧,因为未来将以超越我们认知的速度发展着。

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软件云工厂编译,转载请注明出处。)

时间: 2024-10-11 11:44:20

对于未来编程的十二种预测的相关文章

Linux系统裁剪之二(Bash脚本编程之十二)

Linux系统裁剪之二(Bash脚本编程之十二) 系统函数库 ·Linux系统的启动流程     1,POST(加电自检) 计算机本身并不会执行程序,它只是一堆破铜烂铁,但是它可以在开机的时候先去载入一段程序,系统在刚刚启动的时候能够实现将某个ROM芯片中的程序映射到CPU能够寻址的地址空间中去,并且让CPU能够执行其中的指令,这些指令大部分都是用来做系统检测的,当检测完成后,如果系统中所有的基本硬件和核心硬件都没有问题的话,接下来就会根据BIOS中设定的系统启动次序(Boot Sequence

shell编程(十二)--- 添加用户示例

[[email protected] Learn]# cat useradd-final.sh  #!/bin/bash # DEBUG=0 ADD=0 DEL=0 help() { echo "Usage: $(basename $0) -v | --verbose | --add user1,user2,... | --del user1,user2,... | -h | --help" } while [ $# -ne 0 ] do case $1 in -h | --help 

还需要学习的十二种CSS选择器

在前面的文章中,我们在介绍了<五种你必须彻底了解的CSS选择器>,现在向大家介绍,还需要学习的另外十二种CSS选择器.如果你还没有用过,就好好学习一下,如果你已经熟知了就当是温习. 一.X:link X:visited X:hover X:active 伪类 a:link { color: red; }a:visted { color: purple; } 伪类选择器,visted已被访问过的样式,hover鼠标经过的样式,link未被访问的样式.三种伪类选择器常用于链接,但不是说只适用于链接

nodeType的十二种类型

nodetype的十二种类型 1:元素节点 2:属性节点 3:文本节点 4:CDATA区段 5:实体应用元素 6:实体 7:表示处理指令 8:注释节点 9:最外层的Root element,包括所有其他节点 10:<!DOCTYPE...> 11:文档碎片节点 12:DTD中声明的符号节点

Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8696726 欢迎关注微博:http://weibo.com/MoreWindows Windows界面编程之位图显示特效系列目录: 1. <Windows界面编程第九篇位图显示特效交错效果> http:/

MongoDB十二种最有效的模式设计【转】

持续关注MongoDB博客(https://www.mongodb.com/blog)的同学一定会留意到,技术大牛Daniel Coupal 和 Ken W. Alger ,从 今年 2月17 号开始,在博客上持续发表了 如何在MongoDB中设计数据库模式的方法.截止到今日(4月20号),12种模式设计的方法已全部与读者见面.本人认为,此系列文章,总结的非常全面,很多地方有首创性,涵盖的场景也很多,并且有理论总结,也有案例分析.文中分享的很多知识使人"如听仙乐耳暂明",开卷受益,常读

电脑密码的十二种破解方法

日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了机器.打不开文件.不能聊天…… 也许还会造成很大的损失!下面我们就介绍电脑操作中常用密码的破解方法,希望能解你燃眉之急! 一.遗忘了SYSTEM密码如果你遗忘了CMOS设置中的SYSTEM密码,就无法启动机器了,解决的办法只能是:打开机箱,把电池取下.正负极短接,给 CMOS 放电,清除CMOS中的所有内容(当然也就包括密码),然后重新开机进行设置.注意:有些主板设置了CMO

PHP十二种设计模式

PSR-0规范的设计基础 1.全部使用命名空间 2.所有php文件必须自动载入,不能有include/require spl_autoload_register 3.单一入口模式 1.三种基本的设计模式 工厂模式 用一个工厂方法去替换掉一个new class Factory{ static function createDatabase(){ $db = new Database; return $db; } } 使用的时候就可以用 $db = Factory::createDatabase()

【读书笔记】C#高级编程 第二十二章 安全性

(一)身份验证和授权 安全性的两个基本支柱是身份验证和授权.身份验证是标识用户的过程,授权在验证了所标识用户是否可以访问特性资源之后进行的. 1.标识和Principal 使用标识可以验证运行应用程序的用户.Principal是一个包含用户的标识和用户所属角色的对象. AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); var principal = WindowsPrincipal.Curr