来源:科学网

写不完的代码,熬不完的夜,进度总是赶不上变化。程序开发是一项既费时费力,又容易出错的工作。但当前持续涌现的软件工程大数据以及快速发展的人工智能技术,正使得软件自动化成为可能。通过程序合成、代码补全、程序变换、代码推荐、程序修复、自适应演化等手段,软件自动化可以将软件开发者从繁重的编码工作中“解放”出来。

“让计算机完全代替人开发程序,理论上是不可能的。” 在近日举办的雁栖湖会议上,中国科学院院士林惠民说。他表示,虽然从任意的规范说明中自动生成程序的问题是不可判定的,但可以通过让计算机与人交互的方式来生成程序,也可以在某些特定领域自动生成程序,让计算机代替人完成软件开发过程中不需要创造性的工作。

第三次工业革命通常被认为是由计算、通信和软件驱动,正在给人类生活和工作方式带来巨大的变化。软件工程大数据带来了新机遇,但程序自动化依然面临着挑战。

林惠民说:“深度学习依赖于能够涵盖几乎所有可能的应用场景的大型训练数据集。从代码中学习比从数据中学习要困难得多。数据的含义是不言而喻的,而程序的含义则极其复杂;为了提高效率,有些代码非常晦涩难懂;在程序的语法和语义之间存在着巨大的鸿沟。”

软件自动化不仅能降低程序编写的难度,还可以为软件持续演化来提高质量提供有效的支持。软件技术从根本上改变了商业模式以及人类社会,但与此同时如何应对系统和软件质量方面的巨大挑战成为一个新问题,特别是安全性、适应性、互操作性等质量属性及其相互之间的冲突和影响,在这个方面软件开发大数据分析大有可为。

南加州大学计算机科学教授,美国工程院院士Barry W. Boehm以其团队的研究和实践经历,介绍了他们在基于大数据分析的软件自动化及开发过程中改进的一些工作。他说到,通过大规模程序分析和大数据分析可以持续监控软件开发中的漏洞和技术债务。此外,通过将基于领域模型的代码生成等软件自动化技术与敏捷开发过程相结合,还可以进一步提升已有软件开发效率和质量。

面对计算技术、机器学习和能够用于训练算法的大数据的发展,人工智能正在变得可行。“在人工智能这条路上,我们仍然还有很长的路要走。但是在很多应用上人工智能都表现得比人类更加优秀, 尤其是在分析大数据并进行预测的工作上,这将导致许多工作包括编写程序可以被自动化流程以及机器所取代。”南安普顿大学计算机科学教授、英国皇家学会院士Dame Wendy Hall表示。

即便如此,Dame Wendy Hall也强调了在软件自动化领域,AI的发展可能会给社会带来的潜在威胁,以及需要解决的道德、责任和多样性问题。她以《爱丽丝梦游仙境》为比方,“正如爱丽丝在透过镜子时发现的,一些事情并非总是它最初的样子!快速发展的AI时代,各类独立开发的程序,导致互联网内的某些系统彼此不兼容,未来必将面临混乱和困惑的风险。”

林惠民对此表示认同,在他看来,软件自动化需要将人类程序员的创造性思维和能力与机器的自动化处理能力有机结合。机器无法取代人类,真正需要创造力的工作还需回归人类本身。思辨性与创造力,始终是人类的核心竞争力。

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

雁栖湖会议研讨:计算机能代替程序员吗?相关推荐

  1. java字符串长度计算,论程序员成长的正确姿势

    第一篇Linux基础学习篇 目录 第零章﹑计算机概论关于电脑的硬件组成部分﹐其实你可以观察你的台式机来分析一下﹐依外观来说这家伙主要可分为三部分﹐分别是∶ 输入单元∶包括键盘﹑鼠标﹑读卡机﹑扫描仪﹑手 ...

  2. 法国程序员没有“996” 40多岁最受人尊敬

    1.从记者口中得知,大部分中国程序员的工作时间之后,Nicolas 表示很惊讶,他们加班的情况非常少,周末更是不能被耽误的家庭时光. 2.热爱旅行的她,一边旅行一边工作,如今,成为了一名自由程序员,以 ...

  3. 漫画:程序员真是太太太太太有趣了!

    本文来源于微信公众号有趣青年(ID:v_danshen) 网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生.我们在谈论程序员的时候,究竟该聊些什么呢? 最后和程序员身边的朋友们嘱 ...

  4. 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?

    GPU的计算能力在电脑游戏和计算机视觉领域已经得到了充分的证明.本文的目的不在于介绍GPU的发展史和其在上述领域的应用,而是侧重于如何在通用计算领域发挥GPU强大的计算能力,即GPGPU(Genera ...

  5. 程序员客栈:程序员的经纪人_对于程序员:如何处理干扰和打扰

    程序员客栈:程序员的经纪人 您好亲爱的做白日梦的人,将咖啡因变成可待因! 我希望您不会因为一些破坏性通知或来自队友的推荐而来到这里,打扰您"检查他发现的这篇很棒的文章". 在接下来 ...

  6. 对于程序员:如何处理干扰和打扰

    您好亲爱的做白日梦的人,将咖啡因变成可待因! 我希望您不会因为一些破坏性通知或来自队友的推荐而来到这里,打扰您"检查他发现的这篇很棒的文章". 在接下来的几段中,我将为您提供简短扼 ...

  7. 程序员最好掌握的两个思维模式

    程序员是最好的职业,说这话的是 Anders Hejlsberg,他的理由是 每两年CPU的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序员来补充这些,他的意 ...

  8. 未来,什么样的程序员才是不可替代的?

    一个足球评论员可能并不会踢足球,却并不妨碍在解说比赛时对某某球星的技艺评头论足.同样我也绝不敢以高明的程序员自居,而只是以类似足球评论员的角度来阐述我对程序员的理解.这样,大家也许就不以我为鄙薄狂妄了 ...

  9. 程序人生:一直加班也不是办法!2021,程序员的出路在哪里?

    案例: 小A由于性格腼腆内向,行业内深耕了十几年也只是一个资深java工程师的职位,或许是没有管理的才能,自己也从来不想当将军.日子日复一日的过着,项目一个又一个的完成.可是似乎从30岁开始这工资就没 ...

最新文章

  1. meta常用标签总结
  2. 4 个使用率非常高的 Linux 监控工具
  3. 关于Apahce服务器安装中遇到的问题
  4. java数据结构之排序-- 插入排序算法
  5. codeforces 1040a (回文数的舞蹈)
  6. 移动流量转赠给好友_私域流量的五大认知误区
  7. java减治法深度优先查找_排序|减治法实现排序
  8. Linux: sysv-rc-conf管理Ubuntu server开机启动服务
  9. react native 问题点
  10. ecshop始终显示全部分类
  11. cron 任务执行表达式
  12. SMA2.92高频连接器的主要特点​
  13. php 获取客户端IP
  14. JavaMail之发送邮件+接收邮件
  15. ddm模型公式_绝对估值法DDM、DCF模型及RNAV简介
  16. 双线性插值bilinear interpolation
  17. 百度网盘客户端刷不出内容,网页版打不开,怎么办?
  18. c语言一个笼子里关了鸡和兔子,成年后的你是否还质疑 古人为什么把鸡和兔子关在一个笼子里...
  19. 以数为本、谋求智变,联通大数据“跑步”进入发展新阶段!
  20. 在网页上如何实现文字竖排

热门文章

  1. 在2020年到来之前,你应该知道的10大科技趋势预测
  2. NeurIPS 2019 | 17篇论文,详解图的机器学习趋势
  3. “聚沙成塔”——用大数据思维理解生命的复杂体系,数据之眼看显微镜下的复杂生命【数据故事计划二等奖】...
  4. 精选10大机器学习开源项目 !(附链接)
  5. BIBM系列论文阅读笔记
  6. 双一流高校通知「19级硕士秋季学期不开学!」决定引热议,你怎么看?
  7. 笑哭了,科研版《后浪》,那些人类积攒了几百年的文献,像是人类专门为你们准备的礼物...
  8. 【GAN】GAN 也可以大幅压缩,来自MIT 韩松团队的最新研究!算力消耗不到1/9,现已开源!...
  9. 10大类、142条数据源,中文NLP数据集线上搜索开放
  10. 安波副教授:分布式人工智能进展与趋势