唯一比时间更快的是技术的进步。一次午饭后,一位芯片设计朋友很快为自己开脱,他灵巧地解释说,摩尔定律意味着,即使是在度假期间,他也必须每周将芯片组的速度提高0.67%。如果他不这样做,芯片的速度不会每两年翻一番。
既然2017年到了,现在是时候评估一下未来的技术变化了,如果只是为了帮助你知道在未来的编程技能建设上该把赌注放在哪里。
从物联网越来越让人头疼的安全问题到无处不在的机器学习,编程的未来越来越难以预测。
云将击败摩尔定律
有反对者声称芯片公司已经碰壁。他们不再像80年代和90年代那样每两年将芯片速度翻一番,也许——但这已经无关紧要了,因为芯片之间的界限比以往任何时候都不那么明确了。
在过去,你桌子上盒子里的CPU的速度很重要,因为你只能像里面的硅仓鼠转动轮子那样快。每隔几年买一只更大更快的仓鼠,你的生产力也会翻一番。
但现在你桌上的CPU几乎不在屏幕上显示信息。大部分工作是在云中完成的,不清楚有多少仓鼠在你的工作中。当你搜索谷歌时,他们庞大的云计算可以投入10,20,甚至1000只仓鼠来为你找到正确的答案。
程序员面临的挑战是找到聪明的方法,弹性地将足够的计算能力部署到每个用户的问题上,这样解决方案就足够快,用户就不会感到无聊,也不会跑向竞争对手的网站。有足够的电力供应。云公司会让你处理用户的拥挤,但是你必须找到容易并行工作的算法,然后安排服务器同步工作。
物联网安全只会变得更可怕
这个Mirai僵尸网络在去年秋天出现为正在创建下一代物联网的程序员敲响了警钟。这些聪明的小设备可以像任何其他计算机一样被感染,它们可以利用互联网连接来造成严重破坏,让战争的狗溜走。众所周知,狗可以在网上假装成任何人.
问题是,目前的小工具供应链没有任何修复软件的机制。小工具的生命周期通常从制造工厂到仓库,最后到用户的漫长旅程开始。在组装和首次使用之间展开长达10个月的时间并不常见。这些小玩意在漫长的几个月里被运往半个世界。他们坐在集装箱里的箱子里等着。然后他们坐在大箱子商店或仓库的托盘上。当他们打开包装的时候,他们身上可能发生了什么事。
现在的挑战是要把一切都记录下来。每一次时钟变化都很难更新烟雾探测器的电池。但现在我们得想想我们的烤面包机烤箱,干衣机,还有家里几乎所有的东西。软件是最新的吗?是否已应用所有安全修补程序?设备的数量使得智能监控家庭网络变得更加困难。有30多个IP地址连接到我的无线路由器的设备,我只知道其中24个的身份。如果我想维护一个智能防火墙,我会疯狂地为正确的智能设备打开正确的端口。
给这些设备运行任意代码的机会是福也是祸。如果程序员想要执行聪明的任务并让用户拥有最大的灵活性,那么平台应该是开放的。这就是创客革命和开源创意的繁荣。但这也给病毒作者提供了前所未有的机会。他们所需要做的就是找到一个没有更新特定驱动程序的widget品牌——对了,他们已经找到了数以百万计的widget,这些widget已经准备好托管机器人了。
视频将以新的方式主宰网络
当HTML标准委员会开始将视频标签嵌入HTML本身时,他们可能还没有重塑娱乐的宏伟计划。他们可能只想解决插件的问题。但是基本的视频标签响应JavaScript命令,这使得它们基本上是可编程的。
这是一个很大的变化。过去,大多数视频都是被动消费的。你坐在沙发上,按下播放按钮,看看视频编辑决定你应该看什么。每个看猫视频的人看到的猫的顺序都是由猫视频的创建者决定的。当然,一些快进但视频的结论与瑞士火车一样有规律。
JavaScript对视频的控制是有限的,但最聪明的web设计师正在想出巧妙的方法,将视频与web页面的其余部分集成在一个无缝的画布中。这为用户控制叙述的展开方式以及与视频的交互打开了可能性。没有人能确定编剧、艺术家和编辑会怎么想,但他们需要编程才能实现这一点。
许多最聪明的网站已经有了在聪明的地方运行紧密的视频。很快他们都会想要搬家的。这还不足以IMG公司
用JPEG文件标记。你需要抓取视频——并处理分散了浏览器世界的标准问题。
控制台将继续取代PC
很难对游戏机发火。游戏很棒,画面也很棒。他们为我们搭建了很棒的视频卡和相对稳定的软件平台,让我们在客厅放松,梦想着射杀坏人或扔足球。
客厅控制台只是开始。其他房子的物品制造商也在走同样的路。他们本可以选择一个开源生态系统,但制造商们正在建立自己的封闭平台。
这使市场变得支离破碎,使程序员更难保持一切正常。在一个电灯开关上运行的东西不会在另一个电灯开关上运行。吹风机可能和烤面包机说的是相同的协议,但它可能不会。这对程序员来说是更大的提高速度的工作,也减少了重用我们工作的机会。
数据将继续为王
2016年美国总统大选后,投词专家取笑数据投词专家,暗示他们所有的统计分析都是在愚弄。预测是大错特错的,大数据的人看起来很糟糕。
他们是怎么得出这个结论的?通过比较一组数字(预测)和另一组数字(选举结果)。他们仍然需要数据。
数据是我们在互联网上看到的。光给我们带来了真实世界的信息,但数字告诉我们网上的一切。有些人可能会根据不完美的数字做出错误的预测,但这并不意味着我们应该停止收集和解释这些数字。
数据收集、整理、整理和解析将继续是企业最重要的工作之一。决策者需要数字,程序员将继续承担以更容易理解的方式交付数据的任务。这并不意味着答案会是完美的。背景和直觉将继续发挥作用,但争论数据的必要性不会因为一些人预测唐纳德·特朗普不会当选而消失。这意味着程序员需要做更多的工作,因为我们需要构建更大、更快、更数据密集型的软件。
机器学习将成为新的标准特性
当大学里的孩子们学习一门叫做“数据结构”的课程时,他们会了解到当他们的祖父母编写代码时的生活是什么样的,不能依赖于一个叫做“数据库”的层的存在。真正的程序员必须在没有Oracle、MySQL或MongoDB的帮助下存储、排序和连接充满数据的表。
机器学习算法离实现这一飞跃还有几年的时间。现在程序员和数据科学家需要自己编写大量代码来执行复杂的分析。很快,像R和一些最聪明的商业智能工具这样的语言将不再是特别的,并开始成为大多数软件栈中的常规特性。它们将从PowerPoint销售幻灯片中的四到五张特殊幻灯片变成架构图中一个理所当然的小矩形。
它不会在一夜之间发生,也不清楚它到底会是什么形状,但很明显,越来越多的商业计划依赖于机器学习算法找到最佳解决方案。
随着个人电脑的不断衰退,用户界面设计将变得更加复杂
每天你使用个人电脑的理由似乎少了一个。在智能手机、客厅游戏机和平板电脑的兴起之间,只有办公室工作人员和学生需要交作业,而他们似乎仍然坚持使用个人电脑。
这对程序员来说是个挑战。过去很容易假设软件或网站用户会有键盘和鼠标。现在很多用户都没有。智能手机用户正将手指压成一个玻璃屏幕,几乎没有空间容纳所有26个字母。控制台用户正在按遥控器上的箭头键。
设计网站变得越来越棘手,因为触摸事件与点击事件略有不同。用户有不同的精度和屏幕大小差异很大。要把事情搞清楚并不容易,而且今后几年只会变得更糟。
开放的终结
个人电脑的消失不仅仅是某一特定外形因素的缓慢消亡。这是一个特别开放和受欢迎的市场的消亡。个人电脑的消亡将是一种可能性的终结。
当个人电脑第一次发货时,程序员可以编译代码,将其复制到磁盘上,将这些磁盘放入ziplock包中,全世界都可以购买。没有中间人,没有看门人,也没有严厉的中央力量要求我们说,“妈妈,我可以吗?”
控制台锁得很紧。没有资本投资,就没有人能进入那个市场。应用程序商店更开放了一点,但它们仍然是封闭的花园,限制了我们的工作。当然,他们仍然对那些跳出正确轨道的程序员开放,但是任何一个做出错误举动的人都可能被抛弃。(不知怎的,他们总是在恶意软件溜走的时候延迟我们的应用程序。想想看。)
这一区别对于开源很重要。这不仅仅是销售袋装软盘。我们正在失去共享代码的能力,因为我们正在失去编译和运行代码的能力。PC的终结是开放终结的一个重要部分。目前,阅读本文的大多数人可能都有一个像样的桌面,可以编译和运行代码,但这种情况正在慢慢改变。
很少有人有机会编写和共享代码。尽管大家都在谈论教下一代编程的必要性,但用于分发开放代码的实用向量却很少。
自动交通系统就在这里
不仅仅是汽车。一些人希望制造出不受道路需求阻碍的自主飞机。另一些人则希望为非常轻便的旅行创造自主滑板。如果它移动,一些黑客会梦想告诉它去哪里。
程序员不会控制人们在屏幕上看到的东西。他们将控制人们去哪里以及如何与世界互动。人只是游戏的一部分。我们所有的东西也会自动移动。
如果你想从市中心的一位著名厨师那里得到晚餐,一个带加热室的自动滑板可能会带到你家。如果你想割草,一台自动割草机将取代附近的孩子。
程序员可以使用他们在第一次互联网革命中的所有酷点子。如果你认为弹出式广告在互联网上是不好的,那就等到有人付钱给程序员,让你的自动溜冰鞋通过一家新餐馆的厨房通风口。饿了吗?
法律会发现新的限制
权利法案上的墨迹刚刚干透,人们就它意味着什么才是合理的展开了辩论。200多年后的今天,我们还在争论细节。
技术的变化为法律开辟了新的途径。几年前,最高法院裁定车辆跟踪技术需要搜查令。但只有当警察把追踪器放在车里的时候。没有人真正知道当有人从Waze、Google Maps或其他数百个缓存我们位置的应用程序中传唤跟踪数据时适用什么规则。
如何影响机器的操作?下载数据是一回事,但更改数据也很诱人。警察(或私人演员)伪造文件、头或比特是否公平?如果目标是真正的恐怖分子,或者仅仅是那些把车停在禁止停车的地方太久而不给计价器加油的人,这有关系吗?