首页 » 其他 » 正文

关于编程语言未来的 12 个预测

击中目标很难,击中移动中的目标更难。正因如此,创造一项合适的新技术几乎是不可能的,因为目标的形态和环境都在不断变化。设想一下,这就好比在笔记本销量减少的现在打造让人眼前一亮的笔记本电脑,在智能手机平台趋近饱和的现在开发一款必备应用,在可穿戴设备将要主宰的未来在平板电脑上给用户一个惊喜。

科技趋势变化很快不是什么秘密——创造这些技术的工具和方法也在不断变化。如果你不经常太齐头来看看明年的前景,你可能在编程的时候把坑越挖越深。

为了帮助你做好未来的准备,或是至少开始盘算未来,这未来正以比我们能预见的更快的速度咆哮着划过天空。我们列举了一系列有关未来五年编程趋势的预测。我们的水晶球是非常主观的,下面的这些预测可能并不完全正确。其中一些不会在五年中完全实现,其他一些可能已经实现但是还没有达到它们应该达到的高度和受众度,有些可能不会完全实现因为一些程序员的因素可能并不会像我们预测的一样,有些可能甚至是错的。

Top 25 Programming Languages since 2008

不管这些警告,下面就是这些预测。赶快读,因为未来比我们想象的变化的快。

未来编程预测No. 1:GPU将会成为下一个CPU

想想那些人们吹嘘自己CPU的日子,现在即使最好的CPU也很少超过$200,但是厉害的显卡却可以达到$500、$600甚至更多。玩家喜欢攀比自己显卡的性能,而不是他们的CPU,这驱动了这个市场。

剩下的世界正在缓慢追赶。越来越多的软件正在使用GPU。没错,其中一些早期的进展包括原本的图像处理,就像一些浏览器中做的那样,我们看到越来越多的应用虽然没有绘制精美图像的需求但还是被重写以利用GPU的并行架构。物理学家用GPU研究物质;化学家用他们研究化学反应;天文学家用显卡模拟银河;生物学家在热门研究中用GPU处理统计数据。今年开始,我也开始用GPU来挖矿了。

像这样的例子只会变得更多。很快,更好地编译器将会可以检测代码中可以有效地在GPU上运行的部分。学术成果已经可以有限地做到这一点,但是如果任何人都可以简单地做到它将变得更加流行。

存好你的比特币,在这个预想正在变成现实的现在。

未来编程预测No.2:数据库逐渐可以完成复杂的分析

程序员一旦把对数据的控制权让给一个叫“数据库”的东西,那么,他们就不再是“程序员”,而是“数据库用户”。这也不是一件坏事。毕竟,数据库在处理数据上被设计成比一般的程序员更高效的,尤其是在时间紧急的情况下。他们也(通常)非常有效地使用RAM和处理复杂的分级存储器体系。把数据导到数据库,让数据库做自己的事,这往往不是最聪明的处理数据的解决方案,而是要让数据库在时间方面变得更智能才是聪明的做法。

这是因为未来的数据库一定不仅仅是存储数据。许多数据库系统已经内置了成熟的报表引擎(又称“商业智能”),能够运行更加复杂多变的算法,能够分析数据、在数据模式下更有效地搜索数据,以及做更多目前被吹捧的“大数据”相关工作。

这个的能力和复杂度将由移动数据的成本所驱动。单纯地从数据库中提取信息,并将其移交给一个独立的“大数据”包将变得越来越耗时,而且需要更多的编码。把数据库中的数据交给它引擎来处理分析将会快很多,因为它不但会限制通信的开销,而且还减少了程序需要从数据存储中提取数值的总数。

未来编程预测No.3:JavaScript是一切

JavaScript在未来的编程语言世界当然不会是唯一的语言,特别是考虑到Cobol程序员的招聘广告还在热招中,但它必定会这样的苗头。JavaScript是浏览器中必不可少的,现在几乎所有的客户端计算机中都占有主导地位。在服务器端则使用像Node.js的工具。

JavaScript无疑也将会在其他领域上更具有优势。要进军智能手机的领域唯一的方式就是使用制造商所要求的本地语言来编写代码:iPhone的是Objective-C,Android的是Java,微软的是C#。现在大多数的手机程序员可以把HTML5的应用程序通过类似浏览器窗口表现出来。这样的效果或许没有本地代码那么敏捷方便,但是对于Web来说,JavaScript也是不错的,很轻便的语言。

浏览器不只是植入手机内,它是在吞噬整个平台。Chrome OS和Chromebooks会定期对废弃的操作系统做处理。当JavaScript和浏览器能做任何事情的时候,又何必担心那些事情呢?

大型机将主要用Cobol,生物学家们将可能继续做Python,Linux仍用C,但是几乎所有的一切都是一场公平的游戏,如同JavaScript吞噬整个世界。

未来编程预测4:多平台安卓化

如果没有浏览器的支撑,安卓将不再是现在的安卓。相机的设计者们,通过优秀的镜头来威胁手机的地位,他们计划在相机上移植安卓系统,也就是说你可以在一台尼康相机上运行Instagram(一款图片分享软件)。这会使尼康公司变成一家计算机公司吗?它真的那么重要吗?

未来将会出现安卓冰箱,安卓汽车音响,安卓手表,安卓电视甚至安卓耳机等等诸如此类的产品。因为安卓所能做的是太多,也许有人会抱怨它的界面设计会变的复杂。但是不要忘了,UI层总是可以被简化的。如果安卓可以运行的更底层,它将会主导世界。

事情变得越来越复杂。PC生产商渐渐从传统电脑市场注意目光,寻求新兴的平板电脑市场。他们的解决方案是在Windows上运行Android,让人们在其桌面上使用他们的Android应用程序。它们有的只是运行在有程序员使用的普通安卓模拟器上,但是有的已经在寻求突破甚至创造出类似“PC+”的品牌。一旦安卓掌控PC端,将甚至可以做到通过与浏览器相结合,将推动windows本地应用作为第三方来支持传立媒体。

编程语言未来的预测5:因特网中的对象–比以往更多的平台。

Android和(Linux)的一个负面作用是它使得越来越多的对象加入到Internet中。你家冰箱中的Android系统意味着你可以为冰箱写一些代码,无论是用于显示一些开玩笑话语的应用:食物的卡路里含量,还是关于冰箱中所剩食品的食谱建议。谁知道呢?

在出现的所有新平台中,最重要的将会是汽车。导航和购物才刚刚开始。随着智能化汽车的出现,开发者会有更多的机会可以从汽车定位等信息中获利。

关键的事情是要弄明白什么特征是新的领域所必需的。Android这类操作系统提供了统一的内核,每个平台都需要定制化的特征。例如机器人玩具可能需要提供与年龄相适应的内容。温度调节装置需要与天气预报相交互。设计实现具备恰当的特征的API将会是管理Internet中对象的关键。

编程语言未来预测6:开源将会用新的方式与我们紧密相关

对于诸多已经成功的像Android,Ubuntu,MySQL等开源软件,棘手的问题是需要找到经费来支持开发。开源的代码如何帮助到黑客的例子举不胜举,但是公司创建了相对稳定的生态环境,为开发人员提购买保险或食品,这样的例子却为数不多。

绝大多数的开源软件公司会在开源许可证下发布一个被称为演示版的应用。这类秘籍被藏起来使得开发者有了讨价还价的机会。世界就是这样,如果你可以得到免费的牛奶那为什么要买奶牛呢?最佳的开源项目需要找到一种途径:这种方法可以在不吓跑客户的前提下以合适的方式增加压力。

未来变成预测No.7:WordPress的Web应用将无处不在

最大的错误是奥巴马政府试图从头构建其保险交易所的网站。再也没有人会做这事了。当你添加一个插件到WordPress怎么会感到麻烦呢?如果你真的很吹毛求疵,你可以使用Joomla或者Drupal。这问题的关键已不再是哪个平台,而是说明一个事实,已经越来越少要自己来创建Web应用的理由了,因为主流框架已经内置了很多功能可以满足需求。

当你开始黑客代码的时候你会发现游戏变得更加有趣。WordPress有它自己内置的编辑器,这样你也可以在WordPress内进行开发。没有调试功能,但是你可以避开它。如果WordPress添加一个很好的数据库浏览器如PHPMyAdmin,且提供一点基本的调试工具,这将能提高开发的效率。

关于编程语言未来的预测8:插件将取代完备的程序

基础的网络应用将不只是可以嵌入到大型的架构中的那些代码段的那些应用。Phontoshop作为对图片进行再处理的重要的工具,一定程度上是因为丰富的插件。现在类似MagicHour这样新的应用使得插件更加的简便。例如MagicHour的用户可以像过去分享图片一样分享过滤器。绝大多数的平台都提供了良好的插件API,很多的平台都有成千上万的模块、类库和插件等构成的繁荣的生态系统。

这些新增代码的生态系统意味着程序员将写出更多的片段和更小的应用。适量的接口代码可以复用无数次,这要比写一个庞大的、手写的MB量级大小的应用要有用的多。小的片段可以与整个生态系统中的各片段达成一致,而大的应用就需要在内部处理所有的事情。

有悟性的程序员将会学着创建插件,而不是整个项目。他们将要学习宿主平台的API并把各部分穿连起来。他们几乎不再需要从头开始创建应用。 我们都将成为这个新生世界的一部分。

关于编程语言未来的预测9:命令行万岁

按你的方式来点击操作应用变得越来越容易,但仍有大量的工作需要在文本编辑器和终端窗口完成。所以,和你想的相反,命令行不会淘汰。事实上,越来越多的工具将只在命令行下工作。

事实上,命令行非常的灵活并被大量的替代。漂亮的图形界面,有着点击接口和拖拽控件得到了人们的关注,但程序员们回归到了文本。

脚本的便捷是命令行复活的核心。诸如苹果这样的公司有相当正式的工具用于图形化界面脚本,它们不可能像命令行一样灵活,一样容易堆放。有多少人会在Macs上编写shell脚本,又有多少会写AppleScripts呢?

命令行将会继续存在,因为它是简单的、易扩展的。如果你有一段脚本,你可以轻松的扩展它,并把它粘贴到其它脚本中。

编程未来的第10个预测:降低编程难度将失败

在过去的50年里,开发者已经试过让人学习编程更加简单些,对于50年内他们已经成功了——仅仅除了教最基础的任务。世界上百分之九十五的人可能会理解if-then-else结构,但这和作为一个程序员并不是一回事。

这不会阻止一些好心人对于进一步降低编程难度的尝试,让每个人都将会编程。基督教徒将宣传世界人人会编程的伟大梦想,他们将通过宣称X国在该游戏中保持领先的唯一方法是X国的人民学习Ruby编程或他们的VCR,并以此骗取巨额奖助金。

Alas,真正的编程意味着理解看不见的数字在小盒子中的舞动。它意味着理解创造软件和划分职责的惯例,以使软件干净的运行。仅仅很少的头脑才能处理这项工作,而且看起来在50年的尝试后,拥有这个能力的人的比例并不可能会显著变化。教会每个人理解if-then-else子句是一个不错的想法,但这与培养更多的开发者不同。

还有,开发语法更加“像英语”的语言也没有用。

未来编程预测No.11:外包和内包将继续陷入僵局

一个标准的预测,所有的编程工作将流向工资最廉价的国家

这个大胆的经济学定律是由预测反映了低端的工作会由自动化工具所取代,而真正的工作将是为那些理解业务的人提供。

双方将继续为真实。外包队伍将赢得与低投标工作,但通过新的自动化工具被挤压。一组网站,可以很容易地在全球范围内雇佣低工资工人。另一组的网站是使它更容易,更容易从0到60不雇用人的团队。依赖于外包合同小队会发现自己对招投标的谁知道业务,并不需要帮助的人的内部团队。

编程语言未来预测12:管理人员将会持续的误导编码者和编码

最令人头疼的况状之一是听西装革履的非程序员提要求。他们看到FaceBook或者eBay或者其它样例网站的一些聪明的设计,然后他们就希望你对那个按键稍加修改。有时你可以做到让它的行为与例子相近。但有时他们的建议是不奏效的,有时他们会沮丧,因为他们没有得到他们想要的。

典型的例子是他们想要雇佣22岁从斯坦福毕业的人。其它的学校都不行。23岁已经是衰退期了,或许考虑的是办公室之外的生活。22岁刚好可以把大量的时间用于把酷炫的代码增加到CSS。

这些西装革履的人们花费了很多年学习技术,但是它很容易把一些年轻人的身价抬高。他们不能理解基础的技术这是年龄歧视的最大原因之一。唯一想到的解决方案是寻找只满足条件之一的程序员,或者不到30岁或者非斯坦福毕业,这需要申请。

超越梦想并找到了一种方式来管理其它所有人的才华的公司将会是找到成功之路的公司。他们将找到一种方式理智的工作来创建稳定的软件并提供足够多的可用的特性。

发表评论