发展智能开发助手的思路


  • administrators

    其实思路非常简单。既然人工智能目前还是弱智状态,那我们就不要期望人工智能可以自己写出正确的源代码这样天真的事情了。不然对于编程这样需要严谨逻辑思维和创造性思维的工作来说,如果弱智都能胜任,要程序员来干啥?这不是自打耳光吗?可能需要等人工智能发展到强人工智能阶段才有希望吧。

    既然人工智能目前是写不出能用源代码的,那换个思路就非常简单了。把世界上所能找到的源代码,每一时刻源源不断创造出来的源代码,都汇总到一起,并添加适当的注释和关键词来说明这些源代码是做什么的,那一个合格的搜索引擎,就可以帮助程序员找到他想要的源代码,除非这个功能的源码还没有人实现过。

    这就是我们推动这个项目的最简单最朴素的思路。很多时候,一个非常复杂的问题,其实解决思路都是非常简单的。简单隐含着美,也意味着正确的方向。

    当然,思路虽然非常简单,但是实现起来也不是那么容易,甚至可以说非常的难!

    首先,这个源码库就不是任何一家公司和团队所能胜任的。虽然网络上有浩如烟海的源代码,但是这些源代码并没有良好的注释,机器是没有办法自己读懂这些源代码的。所以一个具备拥有完备源代码,加上适当的注释和说明,加上完整的测试案例,这样的源码库,需要所有程序员的共同参与,才有可能建造起来。值得庆幸的是,我们有了区块链这样一个可以用来激励社区的技术。

    其次,打造这样一个源码库,需要一套完整的工具来支持源代码库的建设。比如提交源代码时,我们要求这些源代码和测试案例,是可以由平台搭建的自动化测试平台自动测试的。源代码本身也会有各种静态扫描工具做扫描,并提供修改建议。最后,通过了检查和测试的源代码,会提交给多个审核人员做独立审核。只有通过审核的源代码才可以最终入库。

    第三,各种编程语言和平台多如牛毛,我们需要想清楚先做什么,后做什么。在早期,我们会先用一个数据库来存放源代码。我们也会先选择几个热门方向,和拥有最多开发者,并且使用范围最广的编程语言和平台先来建设专属这个平台的源码库,比如当前最热的区块链和AI方向的编程,应用最广的编程语言Java和C++等。

    第四,某种语言某个平台的源码库建设需要循序渐进。比如以java语言后端开发为例,我们需要提供java语言的标准库的入库工作,然后在这个基础上在增加更复杂模块的入库工作。这里有一个关键的工作,当一个新的代码块使用了基础库的接口或api时,我们需要有某个技术,把这个关系关联起来。这也是对开发者历史贡献的认可的重要技术手段。更复杂的系统都是建造在其他小模块小系统上的。

    第五,智能助手是一个多种先进技术的复合体。

    • 它需要能通过自然语言、文字、图片、视觉等多种方式跟开发者交流,能正确理解开发者想要的源代码;

    • 它需要有能力在这个庞大的动态增加的源代码数据库中快速找到开发者想要的源代码;

    • 它需要具备一定的源代码集成技术,将找出来的源代码跟其他源代码做无缝集成;

    • 它需要有动态编译和随机测试能力,随时对当前模块做虚拟执行和调试工作,并协助开发者对源代码做调整和修正。

    第六,智能助手不是一个独立的工具,它需要跟开发者的所有工具都能无缝集成、直接对话或者直接操控。跟开发者的IDE无缝结合是优先要做的。这也关系到源码库能不能实时更新的问题。

    相信上面所列举的,只是这个项目需要做的事的万分之一。也只有这样的复杂度和难度,才配得上建造巴别塔这样的史诗任务。神话故事中巴别塔并没有建造完成,开发者能不能创造历史?我们拭目以待!



  • @scv 我愿意


  • administrators

    愿意参与这个异想天开的项目的,请跟帖报名。


Log in to reply
 

Popular Topics

|

Looks like your connection to SCC was lost, please wait while we try to reconnect.