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

news2024/11/26 17:30:35

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.coloradmin.cn/o/1320843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生之深入解析减少Docker镜像大小的优化技巧

一、什么是 Docker? Docker 是一种容器引擎,可以在容器内运行一段代码,Docker 镜像是在任何地方运行应用程序而无需担心应用程序依赖性的方式。要构建镜像,docker 使用一个名为 Dockerfile 的文件,Dockerfile 是一个包…

linux系统和网络(一):文件IO

本文主要探讨linux系统编程的文件IO相关知识。 文件IO 文件存在块设备中为静态文件,open打开文件,内核在进程中建立打开文件的数据结构在内存中用于记录文件的文件参数,开辟一段内存用于存放内容,将静态文件转为动态文件 打开文件后对文件的读写操作都为对动态…

Windows下配置最新ChromeDriver

1、问题 在使用代码调用谷歌浏览器时会出错: from selenium import webdriver driver webdriver.Chrome() SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114 Current browser versi…

网络空间搜索引擎- FOFA的使用技巧总结

简介 FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产。 FOFA的查询方式类似于谷歌或百度,用户可以输入关键词来匹配包含该关键词的数据。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还…

网神防火墙后台用户敏感信息泄露漏洞复现

简介 网神防火墙是一款由中国知名网络安全公司启明星辰开发的防火墙产品。它提供了全面的网络安全防护功能,旨在保护企业网络免受各种网络威胁和攻击。 该产品存在用户账号信息泄露漏洞,通过构造特定数据包,获取防火墙管理员登录的账号密码。 漏洞复现 FOFA语法: body=&…

A01、关于JVM的GC回收

引用类型 对象引用类型分为强引用、软引用、弱引用,具体差别详见下文描述: 强引用:就是我们一般声明对象是时虚拟机生成的引用,强引用环境下,垃圾回收时需要严格判断当前对象是否被强引用,如果被强引用&am…

KSP音频抓包

1. 按照网上其他教程&#xff0c;安装KSP抓音频 Biu~笔记&#xff1a;高通蓝牙ADK&#xff08;38&#xff09;-- KSP in MDE - 大大通(简体站) Biu~笔记&#xff1a;高通蓝牙ADK&#xff08;22&#xff09;--DSP音频链路监听 - 大大通(简体站) <<Biu~笔记&#xff1a;高…

docker 与 ffmpeg

创建容器 docker run -it -v /mnt/f/ffmpeg:/mnt/f/ffmpeg --name ffmpeg 49a981f2b85f /bin/bash 在 Linux 上编译 FFmpeg&#xff1a; 安装依赖库&#xff1a; sudo apt-get update sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget下…

电脑操作系统深度剖析:Windows、macOS和Linux的独特特性及应用场景

导言 电脑操作系统是计算机硬件和应用软件之间的桥梁&#xff0c;不同的操作系统在用户体验、性能和安全性方面有着独特的特色。电脑操作系统是计算机系统中的核心组件&#xff0c;不同的操作系统在设计理念、用户体验和应用领域上存在显著差异。本文将深入探讨几种常见的电脑操…

2018年第七届数学建模国际赛小美赛A题空中加油飞行计划解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 A题 空中加油飞行计划 原题再现&#xff1a; 太平洋中部一个小岛上的居民被自然灾害困住。救援人员需要派遣一架轻型飞机运送少量急救药品到岛上&#xff0c;并运送一名重伤者到医疗基地求救。岛上有一个无人值守的简易机场&#xff0c;可以…

20231218在Ubuntu18.04下以EXT4格式化HDD

20231218在Ubuntu18.04下以EXT4格式化HDD 2023/12/18 17:24 缘起&#xff1a; 编译一个Android10大概要200GB&#xff0c;编译10个Android10的SDK&#xff0c;3TB的HDD机械硬盘就估计会被填满了&#xff01; 如果使用rm -rf *这个命令将SDK一个一个逐个地删除&#xff0c;估计2…

思幻二次元风格的工作室个人引导页源码

思幻工作室个人引导页源码已经完成开发&#xff01;该源码支持三端自适应&#xff0c;并且具备赞助功能。我们选择了当前点赞量最高的配色方案&#xff0c;打造了一个独特的二次元风格引导页。经过在美国服务器上进行的测试&#xff0c;效果令人满意&#xff0c;网页加载速度达…

WordPress主题 响应式个人博客主题Kratos源码

Kratos 是一款专注于用户阅读体验的响应式 WordPress 主题&#xff0c;整体布局简洁大方&#xff0c;针对资源加载进行了优化。 Kratos主题基于Bootstrap和Font Awesome的WordPress一个干净&#xff0c;简单且响应迅速的博客主题&#xff0c;Vtrois创建和维护&#xff0c; 主…

【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; X的平方根 class Soluti…

SVN小白常见操作流程

SVN小白常见操作流程 一、什么是Subversion&#xff1f;二、TortoiseSVN客户端安装教程三、SVN 操作3.1 SVN Ckeckout(检出)3.2 Add(新增文件)3.3 SVN Commit(提交)3.4 SVN Update(更新操作)3.5SVN Delete(删除操作)3.6 SVN Revert to a revision(版本回溯)3.7 不同版本内容之间…

P2P网络下分布式文件共享场景的测试

P2P网络介绍 P2P是Peer-to-Peer的缩写&#xff0c;“Peer”在英语里有“对等者、伙伴、对端”的意义。因此&#xff0c;从字面意思来看&#xff0c;P2P可以理解为对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”&#xff0c;学术界则统一称为对等网络(Peer-to-Pee…

阿里云|人工智能(AI)技术解决方案

函数计算部署Stable Diffusion AI绘画技术解决方案 通过函数计算快速部署Stable Diffusion模型为用户提供快速通过文字生成图片的能力。该方案通过函数计算快速搭建了AIGC的能力&#xff0c;无需管理服务器等基础设施&#xff0c;专注模型的能力即可。该方案具有高效免运维、弹…

美颜SDK是什么?视频美颜SDK在直播平台中的集成与接入教程详解

当下&#xff0c;主播们追求更加自然、精致的外观&#xff0c;而观众也期待在屏幕前欣赏到更为清晰、美丽的画面。为了满足这一需求&#xff0c;美颜SDK应运而生&#xff0c;成为直播平台的重要利器之一。 一、什么是美颜SDK&#xff1f; 通过美颜SDK&#xff0c;开发者可以…

【Proteus仿真】【Arduino单片机】定时智能插座开关

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使LCD1602液晶&#xff0c;DS18B20温度传感器、按键、蜂鸣器、继电器开关、HC05蓝牙模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD16…

如何让32位.Net 应用打开3G开关

昨天刚分享了《如何让.NET应用使用更大的内存》&#xff0c;结果就有同学说&#xff0c;<最好加一下32位如何开启大内存&#xff0c;因为很多传统项目32位&#xff0c;实在迁移不动了>&#xff0c;那么&#xff0c;我就验证了一些可行的方案&#xff0c;发现都挺简单的。…