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

2023-12-18

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 等技术。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大语言模型加速信创软件 IDE 技术革新 的相关文章

  • JavaScript 调试器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个非常好的调试 JavaScript 的编辑器 除了 Visual Studio 2008
  • Linux 上 Objective-C 的 IDE [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在学习 Objective C 我想知道在哪里可以找到 Linux 上 Objective C 的
  • Linux 上的 C++ IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在android中添加横向方向和代码的最简单方法

    我是新来的android并想知道如何添加landscape模式在android谁能告诉我最简单的方法 我正在寻找一种非常简单的方法 如果您有此类问题 请查看下面的答案 谢谢 I have a simplest way to add a la
  • 如何更改 Sublime Text 中输出面板的位置?

    我希望输出显示在代码的右侧 而不是下面 我可以将视图更改为两列 但无法更改输出面板的位置 例如 是否可以将输出面板的位置更改为代码的右侧 而不是代码的下方 有一种解决方案已经存在多年 但似乎并未得到广泛使用 这是包buildview 它将构
  • 具有 GIT 支持的 PL/SQL IDE

    我目前正在为我的公司开发 PL SQL 存储过程 我想使用代码修订控制系统来跟踪我和其他开发人员所做的更改 我喜欢 GIT 的所有优点 包括分布式 scm 功能 有没有支持GIT的PL SQL开发IDE 目前 我正在使用 JDevelope
  • 查看 Intellij 项目中的错误[重复]

    这个问题在这里已经有答案了 我使用的是 Intellij 版本 8 如何查看整个项目的警告或错误 UPDATE See 这个答案 https stackoverflow com a 19366569 104891这是最新的 这里最初的答案是
  • 如何调试肉桂小程序?

    我想写一个肉桂小程序 这些都是基于 JavaScript 的 我希望编写的代码更改服务 打开和关闭它们 类似于WebDeveloper菜单小程序 https bitbucket org infiniteshroom cinnamon web
  • IntelliJ IDE(Rider、Android Studio...)-如何隐藏属性/方法/等上方的“使用”链接

    IntelliJ Rider IDE 版本 2022 1 上面的类属性或方法我有这个链接称为 usages 如何转动 usages 链接关闭 他们快把我逼疯了 我不知道这些东西叫什么 所以谷歌搜索没有给我任何结果 我浏览了 IntelliJ
  • 为什么 Git 中会忽略 IDE 特定的项目文件?

    我看到 Github 上发布的许多项目都有一个 gitignore文件明确排除与 IDE 相关的控制文件 这些控制文件广泛用于定义项目及其依赖项 这些可以是 sln对于 NET 或 project对于 Eclipse 我想问为什么这种做法被
  • 适用于 Mac 的 C IDE 好用吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我刚刚开始在 Mac 上用 C 进行编程的工作 这是我第一次使用 Mac 进行开发 现在我使用 Xcode 作为编辑器 然后在命令行中使用
  • 汤博乐开发工具

    我想创建 Tumblr 主题 有趣的是有没有 IDE Netbeans Eclipse PHPStorm 插件或开发工具 理想的情况是在浏览器中预览我的主题 而不将其上传到 Tumblr 谢谢 我找到了自己的方法来使用 PhpStorm 或
  • Eclipse 中是否有键盘快捷键可以折叠当前方法/块?

    问题说明了一切 我在 Eclipse v3 4 中打开了折叠功能 并且不必单击页面装订线中的小 我想知道是否有一个键盘快捷键 折叠当前方法 快速浏览一下 Eclipse 中的菜单和其他内容不会显示它的菜单项 所以也许您无法做到这一点 Any
  • Sublime Text 2 在 Java 开发方面是否胜过 Eclipse [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Visual Studio Professional 2013 Update 5 中的“在线服务不可用”问题

    我一直在 vscode 2013 工作直到今天 但是 当我今天早上尝试打开 IDE 时 它收到 您的许可证已过时 必须更新 错误消息 如下所示 在我尝试更新许可证和登录操作之后 当我尝试这两个时 它得到 在线服务不可用 请稍后重试 错误消息
  • 在 Codeblocks 中启用编译器输出窗格

    This is probably a really noob question but the fact of the matter is that my Code blocks wouldn t show me errors when i
  • 如何设置 Xcode 来代替 Qt Creator 工作?

    我不使用 Qt Creator 的 UI 设计功能 对于一个新项目 我想体验一下使用 Xcode 的工作 这将是一个常规的 Qt 项目 使用 C 和 Qt 库开发 就像在 Qt Creator 中一样 我没有使用 OS X 尤其是 Xcod
  • 最佳 Fortran IDE [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 stackoverflow上有人用Fortran吗 您使用什么 IDE 您认为哪一个是最好的 似乎我周围的很多人都对 Intel Visu
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • Selenium IDE-自动化Select2搜索框

    我正在尝试自动化 selenium IDE 中的 select2 搜索框 我打开它并输入了我正在搜索的搜索关键字 但是 即使我有用于显示结果的代码 它也不起作用 问题是我猜字符输入得太快 因此结果不会显示在搜索框中 我确信我在某个地方出错了

随机推荐

  • JsonException: A possible object cycle was detected which is not supported 检测到可能的对象循环,这是不受支持的

    异常消息 JsonException A possible object cycle was detected which is not supported This can either be due to a cycle or if t
  • wget实现网站克隆

    这里写自定义目录标题 下载网站 WGET做镜像演示 wget用法说明 wget使用范例 下载网站 可以这样 wget r level 0 k p tries 0 https www django rest framework org 具体参
  • CSDN找到“仅我可见”内容

    有时候自己做一些笔记参考了他人的内容 所以想将文章转为 仅自己可见 仅作自用 记录一下CSDN找私密文章的方式 今天摸了好一会儿才找到哈哈哈 1 点击导航栏处的创作中心进入 2 查看更多 3 点击浏览就可以查看啦 来源 CSDN找到 仅我可
  • 工业数据的特殊性和安全防护体系探索思考

    随着工业互联网的发展 工业企业在生产运营管理过程中会产生各式各样数据 主要有研发设计数据 用户数据 生产运营数据 物流供应链数据等等 这样就形成了工业大数据 这些数据需要依赖企业的网络环境和应用系统进行内外部流通才能实现价值挖掘 如何高效安
  • 题解 | #火车进站#

    解约的同学看过来 提供一份解约思路 题解 火车进站 include
  • 20um尺度纳米机器人需要的条件

    制作出真正的智能纳米机器人需要什么条件 首先人类已经可以制作出一台符合人类需要的智能机器人了 即便不能生成出一台真正智能的机器人 但是半智能的机器人还是可以生产出来的 我认为半智能的机器人才是人类需要的 毕竟制作出一台可能不听话 失去控制的
  • 【二分查找】【z型搜索】LeetCode240:搜索二维矩阵

    LeetCoe240搜索矩阵 作者推荐 贪心算法 中位贪心 执行操作使频率分数最大 本文涉及的基础知识点 二分查找算法合集 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 该矩阵具有以下特性 每
  • Minecraft服务器badly compressed packet报错解决方法

    此方法只在1 16 5Mohist端 Forege和水龙头 解决过 在其他版本不一定适用 1 报错信息 因为已经解决了问题所以懒得改回去截图了 随便找的网图 2 解决方案 在服务端和客户端都安装 XL数据包 MOD 虽然写着1 16 4但是
  • echarts漏斗图自定义漏斗颜色、粗细、大小、间隔缝隙

    echarts漏斗图自定义漏斗颜色 粗细 大小 间隔缝隙
  • 24届还有在看工作机会的吗,求求大家看下小米吧,HC非常多

    一定要反问HR的六个问题 offer比较 华为 vs OPPO 离谱的一周 百度裁应届 拼多多 非必要就别去了吧 阿里云25k gt 美团29k 实习转正啦 进来看耍猴 12 17更新 25届实习招聘信息汇总走起 策论 设计产出 Learn
  • sqlserver-事物日志

    前言 每个 SQL Server 数据库都有事务日志 用于记录所有事务以及每个事务所做的数据库修改 事务日志是数据库的一个关键组件 如果系统出现故障 你将需要依靠该日志将数据库恢复到一致的状态 有关事务日志体系结构和内部组件的详细信息 请参
  • Navicat关闭自动检查更新版本教程

    Navicat关闭自动检查更新版本教程 首先 点击菜单中的工具菜单 弹出了下拉菜单选中为选项 点击选项 首先 点击菜单中的工具菜单 弹出了下拉菜单选中为选项 点击选项 去掉勾选上在启动时自动检查更新选项
  • android无线调试连接

    开发时 遇到一些设备无法通过USB线连接adb时 可以尝试使用wifi无线调试 首先 要确保手机和电脑在同一个局域网内 再到开发者选项中打开无线调试 并进入子页面 如下 图一 无线调试设置界面 点击使用配对码配对设备 会弹出如下对话框 图二
  • ubantu22版本配置静态IP地址

    文章目录 编辑网络配置文件 应用网络配置 查看网络配置结果 编辑网络配置文件 在Ubuntu中配置静态IP地址可以通过以下步骤实现 打开终端 使用以下命令编辑网络配置文件 etc netplan 00 installer config ya
  • 【web网页制作】html+css网页制作游戏主题-王者荣耀(5页面)【附源码下载】

    涉及知识 游戏主题网页制作 王者荣耀网页制作成品 游戏网页制作成品 游戏主题web开发 期末网页大作业 网页作业成品 web前端源码实例 如何制作网页 网页设计思路 如何从零开始制作web页面 专栏 web前端大作业网页制作 关于我 一个持
  • Android NDK开发详解Wear之处理 Wear 上的数据层事件

    Android NDK开发详解Wear之处理 Wear 上的数据层事件 等待数据层调用的状态 异步调用 同步调用 监听数据层事件 使用 WearableListenerService
  • 题解 | #浙江大学用户题目回答情况#

    快手测开二面面经 国企面经 多家 得物 测开 一面 中国联通陕西省分公司薪资待遇 京东健康前端实习一面凉经 求java推荐项目 面经回馈 秋招及实习历程中笔经 面经 时间梳理 国企银行 秒杀项目常见问题 终焉篇 双非本产品经理35w 终于来
  • Redis 底层数据结构

    在 Redis数据结构和对象机制 中提到的图中 我们知道 可以通过 redisObject 对象的 type 和 encoding 属性 可以决定Redis 主要的底层数据结构 SDS QuickList ZipList HashTable
  • EMC RI/CI测试方案助您对抗电磁设备干扰!

    方案背景 电磁或射频干扰的敏感性 会给工程师带来重大的风险和安全隐患 尤其是在工业 船用和医疗设备环境 这些环境系统中的控制 导航 监控 通信和警报等关键零部件必须具备电磁抗扰水平 以确保系统始终正常运行 抗扰系统测试方案一般分为传导抗扰与
  • 大语言模型加速信创软件 IDE 技术革新

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