一百年后的程序员会是怎样? 刘啸 | 文 第五届未来科幻大师奖十五强作者 程序员是传说中的拿着高薪打算用代码改变世界却又苦逼兮兮的一批人。他们上班晚下班晚加班多,常常节假日甚至春节都没法好好休息。他们得听从并理解客户或产品经理那语焉不详反复多变的需求,再按软件工程的流程,在脑袋里想好架构该怎样规划、代码该怎么写,代码写出来后也不是铁板一块,还得改问题、修Bug,然后再迎来新一轮的需求变更。所以程序员们抱怨最多的就是: “需求怎么又变了?” 其实,大部分“变”,在于信息沟通不畅。 计算机科技刚发展起来的早期,0和1掩盖下的神秘代码还属于小圈子里的高精尖技术,那时候程序员的主要力量都用在怎样让有限的机器力量来执行天书般的代码上。可后来随着高级编程语言的出现,程序员的门槛越来越低,涉足的领域也越来越广。现在,农林牧副渔、工农商学兵,几乎任何一个产业里多少都闪现着程序员的苦逼身影。 和所有飞速发展的技术一样,程序员这个职业近二三十年来的生产率也一直在不断提高,但与其不配套的是,整个软件工程的技术变革并没有本质上的进步。简单地说,软件开发的本是把不精确的需求给精确化,再通过代码实现,后半部分的实现一直有高级语言、设计模式、开发工具等进步因素在驱动成长,甚至还有自动代码生成等看上去很美的概念,但前半部分呢? 这正是本文要展望的核心。 编程语言不是自然语言,因为代码要求精确,不允许二义性存在,否则没法运行。但编程的需求最开始往往只是一种想法,没有准确而全面的定义。在没有专职产品经理的场合,程序员自己需要把需求精确化才能编写代码。 需求如何精确化?或者说,一个想法如何挖掘演绎,让其完整、准确、逻辑自洽,并信息无损地传递到程序员处?这块目前仍然是脑力与体力结合的复杂劳动,也是最难以提高的“痛点”。 幻想一下,未来的你在做某个复杂的工作的时候,忽然觉得应该写个程序来帮你做。于是你跑到一名程序员前面坐下,对着他大喊:“我要一个程序。”然后程序员啪嚓一下在屏幕上整出个新图标,你一点击图标,发现正是你所需要的功能,分毫不差。 这可能吗? 先别急着断言。首先,你有没有发现,上面的流程缺了什么? 对,缺了对程序需求的精确描述。 程序员并不是传说中的别人家男朋友,能够在女朋友不说话的情况下猜对一切。 也许,我能把我究竟要什么程序准确详尽地念给机器听,让机器来规划功能,然后自动生成代码。这个行为的技术含量充其量是语音识别加代码自动生成,短期内完全有实现的可能,压根用不了一百年。 然而,客户如果能精确详尽地描述出需求,那也就没有本文什么事了。一般情况下,客户只会说一句话“我要这个功能”或者两句话“我要这个,以及那个功能。”程序员需要千辛万苦慢慢“拷问”客户,才能勾勒出完整的需求。 所以,解决方向是什么? 开发一个自动拷问客户不说就上刑的工具?当然不是。 答案是:需求自动补全。 准确来讲,是以客户需求所在的行业背景为基础,收集足够多的业务知识,根据需求的主体来判断其准确意图,从而规划出完整而精确的需求。 这是一项难度不亚于自动写作的人工智能工程,何况,新需求往往是创造性的,大数据型需求补全只能基于既有数据,不容易满足前瞻性的要求,除非有强大的学习型人工智能的参与。当然,后者的出现估计同样也用不了一百年。 再进一步想,有没有更偷懒更方便的方式? 需求补全至少还需要客户把需求的主体表达出来,如果这一步我们都想省略呢? 那么,就只剩下人机结合、思维读取一条路了。 和一日千里的人工智能比起来,生物电、脑电波等高深的生物学科至今没有明显的突破,所以,这项猜测的实现,可能真的需要上百年。 实现方式也许是芯片植入,也许是类似于NFC近场通讯的脑电波感应,总之,是一条将思维转换为可视化数据的可逆通路。 当然,要走这条路,无论是从伦理角度看还是从隐私角度看都会有许多障碍,但站在科幻爱好者的立场来看,这些都不是大问题。 试想一下,一百年后的腊月二十九,产品经理找程序员开发一个新软件,双方面对面坐下,拿起两只头盔各自戴在头上,闭目而坐。良久,双方同时睁开眼睛。 产品经理:“明白了?” 程序员:“明白了。” 产品经理:“春节前上线?” 程序员:“大年初一。” 产品经理:“成交。等你的消息,再见。” 程序员:“且慢!” 产品经理:“还有什么事?” 程序员:“好像昨晚你在老板面前骂我来着?” 产品经理:“……” END 本文转载于微信公众号: 赛凡科幻空间(scifispace),更多微信文章请扫描关注公众号: |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|