大语言模型加速信创软件 IDE 技术革新

QCon 全球软件开发大会(上海站)将于 12 月 28-29 日举办,会议特别策划「智能化信创软件 IDE」专题,邀请到华为云开发工具和效率领域首席专家、华为软件开发生产线 CodeArts 首席技术总监王亚伟担任专题出品人,为专题质量深度把关。

作为拥有云和开发工具领域近 20 年经验的老兵,华为公司软件开发工具领域的领军人物,20 多项软件开发技术发明专利的拥有者,王亚伟对于「智能化新创软件 IDE」这个专题有着怎样的理解?在会议即将开幕之际,王亚伟与 InfoQ 分享了他的核心观点。

图片

“信创”是信息技术应用创新的简称,其本质是发展国产替代技术,实现核心技术的可掌控、可研究、可发展等。

相比“信创”,“智能化”在过去 5 年中被业界反复提起,智能化技术的发展必然会使诸如 IDE 这样的软件开发工具更加强大。随着大语言模型的诞生,IDE 除了可以自动地完成一些重复性工作之外,还可以协助开发人员在软件的设计和开发过程中完成更多创新性的工作,比如:

自动化重构:将一段复杂的代码分解为更小、更易于管理的函数或类。开发者可以描述他想要实现的重构目标,然后让模型生成相应的代码;

代码翻译:大语言模型可以将一种编程语言的代码翻译成另一种编程语言,再配合 IDE 的语法高亮和错误检查功能,可以帮助开发者使用不熟悉的编程语言编写代码;

自动化文档生成和更新:大语言模型可以根据代码和注释生成相应的文档,或者在修改代码时自动更新文档。大语言模型是 IDE 的智能化加速度。

IDE 的”信创“化旨在将基础软件开发的核心技术实现自主可控,在拥抱开源的同时逐步建立基于自有技术内核的架构和标准,形成自有开放生态。信创化的目的是为了规避可能或已经发生的风险:

信息安全和供应链安全风险:在关键时刻,国外的产品和技术可能会面临供应链中断的风险。此外,国外产品或开源技术可能会存在安全漏洞或后门,基于这些技术打造的商业解决方案会威胁用户的信息安全 - 2020 年 3 月发生的 SolarWinds 攻击事件导致业界领先的开发工具公司 JetBrains 遭受牵连;

技术依赖风险:如果完全依赖于外国的技术,那么我们在软件开发核心技术领域的研究、发展和创新能力就会受制于人,最终导致落后;

经济风险:技术上依赖意味着我们需要持续支付大量的许可费用。

“信创”化不意味着重复造轮子或为了与现有技术不同而进行盲目创新,而是目标实现核心技术可控的前提下,解决现有技术的问题,从而对现有技术实现某些方面的超越。举个例子,代码索引是 IDE 的文件查找、代码提示等功能的基础数据源,现有商业 IDE 代码索引的创建、存储和访问效率并不高,索引数据基于对象存储访问时,一个只有 8 字节(2 个 int)内容的数据封装成对象后要占据至少 24 个字节的存储空间。同时,由于内存读写速率要远低于缓存,如果在存储和访问索引时没有以一种缓存友好的方式进行,读写效率甚至 100 倍下降。我们团队在代码索引存储和访问领域提出了一种基于内存压缩的索引自动化存储和访问技术,可以做到 50 倍以上的综合效率提升,该技术已经被评选为华为云高价值专利,并应用到 IDE 内核、运行时优化、云编译等多个领域。

技术的积累需要时间,产品研发更需要打磨。王亚伟介绍道:“从 2019 年初开始,我们逐步组建了一支数百人的软件研发专家队伍,分布在中国、俄罗斯、欧洲等国家地区,其中一半成员来自于业界顶尖的软件和工具公司,超过 40% 的成员是开源社区的 Committer 和 Contributor,整个团队都围绕着‘做最好的产品’展开工作,我们建立了从产品、运营、UX 到开发、测试的完整专业的产品研发流程,每月一个小版本、三个月一个大版本,基于内外部用户的反馈快速迭代。过去五年我们真正做到了深耕软件开发工具这个专业领域。”

同时,王亚伟也坦言:“虽然从产品成熟度上看我们的信创化工具跟业界成熟的商用工具相比还有差距,但‘信创’本身绝不意味着竞争力弱,体验打折。我们会继续秉持着‘做最好的产品’的信念,不断前进。”

在今年的「智能化信创软件 IDE」专题上,王亚伟带领他的专家团队将围绕大语言模型、AI 编码辅助、下一代 IDE 平台架构、动态语言类型推理等技术,给大家带来一场技术盛宴。

✔ 议题1:AI 开道,让编程体验“一路狂飙”

详细介绍华为云 CodeArts 团队应用大模型开发的 AI 辅助编程的技术 - CodeArts Snap,讲师程啸从博士阶段开始就对代码生成、RAG、代码克隆检测等领域有较深入的研究,他这次也是代表 Snap 团队进行分享。

另外三个英文议题是来自于 CodeArts 俄罗斯的专家团队。

✔ 议题2:Applying Machine Learning in IDE Challenges and Insights

将会系统讨论 AI 技术在 IDE 中的应用研究以及如何深远改变我们的开发,测试和调试代码的方式。讲师 Pavel 是俄研院新西伯利亚实验室主任,20 年开发者工具构建经验,机器学习专家、Eclipse IDE 的专家和 Committer。

✔ 议题3:Evolution of IDE Platforms

将会紧密围绕其在构建 IDE 平台时面临的问题和挑战比如分布式代码模型架构下如何确保前后端组件可以高效交互、如何直接从后端内核画出前端复杂 UI,以及我们如何做出艰难的架构和设计决策,同时分享对下一代 IDE 平台的架构和设计展望。Denis 是俄罗斯新西伯利亚实验室的首席架构师,20 多年的工具研发经验,精通编译器、DSL、编程框架,Eclipse 社区 Committer。

议题4:Type inference engine

静态语言如 Java,C# 等,它的类型推理主要通过编译器完成,代码模型可以通过类型绑定(通常存在于程序的元数据 metadata 中)获得所需要的类型信息。而动态语言的类型推理主要由 IDE 完成,由于缺少编译元数据的支持,动态语言的类型推理是一个业界难题。以 Python 为例,其有一个完全动态严格的类型系统,类型(type)在运行时动态绑定到变量(variable),变量和类型都可以在运行时动态被改变 – 这增加 Python IDE 进行可靠类型推理的难度。议题 Type inference engine 会介绍该团队在做动态语言类型推理时设计和实现的技术细节,并讨论未来该领域的发展方向。Nikolai 是俄罗斯圣彼得堡实验室的首席软件工程师,拥有 15 年 IDE 研发经验,是前 JetBrains Intellij IDEA 和 Scala 项目负责人,精通 Compiler、Program Language Design、Code Analysis 等技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/285065.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年第七届数学建模国际赛小美赛B题世界杯足球赛的赛制安排解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 B题 世界杯足球赛的赛制安排 原题再现: 有32支球队参加国际足联世界杯决赛阶段的比赛。但从2026年开始,球队的数量将增加到48支。由于时间有限,一支球队不能打太多比赛。因此,国际足联提议改变…

机器人也能干的更好:RPA技术的优势和应用场景

RPA是什么? 机器人流程自动化RPA(Robotic Process Automation)是一种自动化技术,它使用软件机器人来高效完成重复且有逻辑性的工作。近年来,随着人工智能和自动化技术的不断发展和普及,RPA已经成为企业提高…

【Linux】Linux运维基础

Linux简介: Linux是一个开源的操作系统内核,最初由Linus Torvalds创建。它通常与GNU工具一起使用,以创建一个完整的操作系统。Linux操作系统有许多基于内核的发行版,如Ubuntu、CentOS、Debian等,每个发行版都有其独特的…

DC-5靶场

目录 DC-5靶机: 先进行主机发现: 发现文件包含: 上传一句话木马: 反弹shell: 提权漏洞利用: 下载exp: 第一个文件 libhax.c 第二个文件r…

C++面向对象(OOP)编程-异常机制

本文主要介绍C异常的处理,异常的种类,以及如何自己实现异常,以及异常常见的面试题。 目录 1 异常介绍 2 异常处理 2.1 抛出异常 2.2 捕获异常 2.3 自定义异常 3 异常使用原则 4 异常处理模式 5 stdexcept 中的异常类 6 异常机制面试…

window10下载与安装zookeeper,图文说明

1,下载 打开连接 ;https://downloads.apache.org/zookeeper/ 选择版本下载 2,解压 cmd黑窗口解压命令 tar -zxvf apache-zookeeper-3.8.3-bin3,修改配置 复制zoo_sample.cfg,重命名为zoo.cfg zoo.cfg配置 # The …

最新AI创作系统ChatGPT系统源码+DALL-E3文生图+支持AI绘画+GPT语音对话功能

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码

问题 今天在代码里面输出 console.log 信息直接指向了 vue.js,并且代码里面写了 debgger 也不生效 解决 f12 找到浏览器的这个设置图标 找到这个 ignore list 的 custom exclusion rules 取消掉 /node_modules/|/bower_components/ 这样就正常了

Linux--学习记录(3)

G重要编译参数 -g(GDB调试) -g选项告诉gcc产生能被GNU调试器GDB使用的调试信息,以调试程序编译带调试信息的可执行文件g -g hello.c -o hello编译过程: -E(预处理) g -E hello.c -o hello.i-S(编…

PHPStorm一站式配置

phpstorm安装好之后,先别急着编码。工欲善其事,必先利其器,配置好下面这些之后让编码事半功倍。 主题 Appearance & Behavior -> Appearance -> Theme 选中 [Light with Light Header] 亮色较为护眼 关闭更新 Appearance & …

数据分析思维导图

参考: https://zhuanlan.zhihu.com/p/567761684?utm_id0 1、数据分析步骤地图 2、数据分析基础知识地图 3、数据分析技术知识地图 4、数据分析业务流程 5、数据分析师能力体系 6、数据分析思路体系 7、电商数据分析核心主题 8、数据科学技能书知识地图 9、数据挖掘…

Postman教程总结-新建一个测试案例

1.创建一个文件夹;文件夹的名字最好用自己项目的名字命名方便使用和维护