人工智能是近阶段大家经常提到的一个话题,其中神经网络深度学习其中一个特点,那么人工智能最终真的能达到一般人类这样去思维么?能够像程序员那样的编程么?会不会以后有一天真的能替代程序员了吧,这件事情你是怎么看待的?针对这事情我来说一下我的看法。
人工智能会让程序员的工作效率更高,十年之内不可能完全代替程序员
在 CSDN 上有一篇报道,有一个名字为 Screenshot-to-code-in-Keras 的项目可以把一些稿件自动变成一堆 html 代码加 css 代码,有的前端程序员就可能为此而感觉到恐慌,感觉以后人工智能要替代自己的饭碗了,这样的事情也不足为奇,在人工智能这个概念还没有兴起之前,一些 java 程序员使用 ide 开发工具就能生成一堆代码,节省了开发效率。感觉起码在近五到十年内感觉人工智能还不能完全替代人类程序员这样去编程,就以前端代码为例,虽然 html 代码加效果类 css 让人工智能生成代码,可能人工智能在这方面战术上完胜,但是一些战略问题它还是远远不及人类的。
其一它生成的东西能确保是人类想要的吗?,如果不符合要求是不是需要人类程序员来调整,人工智能不可能做出一套适应所有场景的东西出来。
其二前端程序员是要与后端程序员进行对接的,在对接时各个参数,怎么调用了,相当复杂,两个人类程序员(前端程序员与后端程序员)还需要沟通好长时间,难道人工智能就能那么完美理解人类的意思就不需要沟通了么?
近 5 到 10 年内的情况可能是这样的,一些低级的常规的代码都可能会是自动生成,一些组织调整的工作交给人类程序员来进行处理,最后项目的质量当然还是有人类进行负责的,由人工智能的加持,程序员的工作效率可能会大大提高,以往传统开发需要几周的工作量可能会缩减到几天甚至更短。
未来上层领域的程序员数量会减少
随着时间再往后发展,我想一些上层代码会逐渐由人工智能程序自己完成了,可能写代码的不再是程序员了,比如说可能是一种操作软件的形式存在,有着成熟的操作界面,良好的操作体验,一个非技术人员通过界面输入自己想要的东西,通过一定的规则描述,然后就会生成相应的代码并能直接运行。或者比这个更先进,不是一个软件界面的形式存在,而是一个智能硬件设备,只需要对其说话,像与人类说话那样,说出自己的需求,智能设备就能在短时间内做出自己想要的东西。
如果真能达到这种程度的话,我想未来参与业务开发的程序员的数量将会急剧减少,但是 不可能减少到为 0,因为人工智能做出的东西也不可能是完全有保证的,起码需要个别人还需要进行对项目代码进行负责不是嘛,就想现在的无人驾驶车为啥还留有方向盘一样。上层开发的人员少了,人工智能这些底层开发的程序员会更吃香了,甚至数量会多起来。
软件数量和规模将成倍增长
大家都知道程序做事效率是相对高的,人类做项目是用天,周,年为单位来计算的,那么这些软件交给人工智能处理应该是秒级别的吧,如果是大一点的项目顶多是分钟了。如果是这样的话,估计人类世界软件的发展速度将会达到一个新的高度,软件的数量和规模将是几何倍数的增长。
如果真是这样一天的到来,我想人类在学习和思想上都要有策略上的改变,以前经常在嘴边说的话,要勤奋,要多动手,未来的人类要做的事情,就是要多思考,勤于思考。动手的事情就交给人工智能去吧。
这几年,人工智能被炒的越来越热了,比如阿里的鲁班系统能够自动生成双十一海报,一天可能出图上亿张;还有通过机器学习,程序画的话,被卖到上亿元;其实就目前来讲,这些都是比较基础的,人工智能即使画画,也是通过机器学习别人的画之后,说白了,组合的。没有灵魂作为支撑的产品,不能说没有价值,但是在意义层面来讲绝对是非常弱的。
人工智能在将来可以替代程序员写代码吗?我只能说:有可能,而且即使人工智能代替程序员写代码,也是比较基础的,其实,随着现在程序工具化的趋势,已经解放了程序员,如果人工智能 + 工具化,在一些基础的,机械的编程中,确实能够让程序员解放出来,去处理更加复杂的业务逻辑和架构设计。
但是,我感觉人工智能完全取代程序员是不可能的。因为,机器永远也不想到人类复杂的需求,尤其是,变来变去的需求变化。如果机器能够有灵魂的话,估计也会被人类复杂且变来变去的需求,折磨的要死,从而发出一句,感叹:卧槽,这是什么玩意的破需求。
但是,去年有一条新闻值得我们关注,那就是:
2018 年 1 月 12 日下午 12:28,GeoWebCache/geowebcache 项目和往常一样在 github 上提交代码。2 分钟后 travis-ci 上的单元测试以失败告终,测试结果显示有 2 个测试用例报错了。没过多久,2018 年 1 月 12 日下午 1 点 35 分,一名叫 LucEsape 的开发者发布了一个修复补丁。2018 年 1 月 12 日下午 2:10,开发者接受了补丁,并将其合并到代码库,并评论到:“很奇怪,我以为我已经修好了 …… 也许我在其他地方做过。谢谢你补丁!“
这是一个伟大的时刻,因为谁也不曾先到,修复这个 bug 的程序员 LucEsape 是一个机器人。他叫 Repairnator。
Repairnator 是由 KTH 瑞典皇家理工学院的软件技术教授 Martin Monperrus 开发。它会监控开源软件在持续集成期间发现的 bug,并尝试自动修复它们。如果它成功合成了一个有效的补丁,那么 Repairnator 会伪装成人类身份向人类开发者提交此补丁。到目前为止,Repairnator 已经成功生成了 5 个补丁,并被人类开发者永久地合并到代码库中。
这是自动程序修复软件工程研究中新的里程碑。
所以,现在机器都可以修改 bug 了,将来在一定程度上写程序,也是有可能的,但是完全取代我认为不现实。
原因如下:
-
因为程序员不只是编程还有沟通,理解复杂变化的需求,是机器和人类的中介。
-
科学技术的基础性创新是由人类完成的,机器不可能发现万有引力,能量守恒定律这种东西吧?
当然了,如果机器能够完全取代人类编程的话,那非常可怕啊,未来有可能将是被机器控制的时代,而不是人类控制机器的时代。