谈一谈AI是在帮助开发者还是取代他们

AI工具现状

目前市场上已经有很多AI开发工具了,其中主流的有下面几种:

1、GitHub Copilot

GitHub Copilot 是由 GitHub 和 OpenAI 合作开发的一款人工智能辅助编程工具,它被设计为程序员的“配对程序员”。Copilot 直接集成在 Visual Studio Code、GitHub Codespaces、Neovim 以及 JetBrains 系列 IDE 中,通过 AI 技术提供自动完成代码、生成函数实现、撰写文档注释等功能。

其核心亮点在于能够理解整个代码库的上下文,从而提出更为精准的建议,比如根据函数名自动生成函数体,或是补全复杂的逻辑结构。Copilot 支持多种编程语言,从 Python 到 JavaScript,再到 Rust 和 Go 等,极大地提高了编码速度和效率。

2、TabNine

TabNine 是一款跨平台的、基于 AI 的代码自动补全工具,它支持包括但不限于 Python、JavaScript、Java、C++、Go、Ruby、PHP、Rust、TypeScript 在内的多种编程语言。TabNine 不仅仅依赖于当前文件中的上下文,还会学习用户的编码习惯和开源代码库,以此来提供更加个性化的代码建议。

与 Copilot 类似,TabNine 也能够自动补全复杂的代码结构,如循环、条件语句等,但它的一个显著特点是其广泛的兼容性,可以作为插件安装在各种流行的代码编辑器中,如 Visual Studio Code、Atom、Sublime Text、Emacs、Vim 等。

3、通义灵码

阿里云推出的一种AI编码技术,它代表了利用人工智能进行自动化软件开发的前沿探索。虽然我没有直接的信息表明“通义零码”是公开发布的产品或服务名称,这个名字听起来像是结合了“通义”这一概念(可能寓意广泛适用、普适性)与“零码”,暗示着减少甚至无需人工编写代码即可实现软件开发的目标。

通义灵码安装教程-阿里云

4、豆包 MarsCode

为你提供了编程助手和 IDE 来协助你完成编程任务。

豆包 MarsCode 编程助手,具备以智能代码补全为代表的 AI 功能。支持了多种编程语言以及主流的 IDE,它能够在开发过程中对单行代码乃至整个函数提供编写提议。除此之外,它还对代码解释、单元测试生成以及问题修复等功能提供支持,进而提升了开发的效率与质量

什么是 豆包 MarsCode 编程助手 - 豆包 MarsCode 文档

5、Kite

Kite 是一款AI驱动的代码补全工具,支持多种编程语言,如Python、JavaScript、Java等。它提供上下文感知的代码建议,可以安装为IDE插件使用。

6、DeepCode

这是一个AI代码审查平台,能够分析代码并提供改进建议,包括潜在的bug修复、性能优化和代码风格规范。它支持多种语言,并且可以直接集成到GitHub、GitLab和Bitbucket等版本控制系统中。

7、Codota

Codota 结合了智能代码补全和代码搜索功能,能够基于全球开源代码库为开发者提供相关代码片段和API建议。它适用于Android Studio、IntelliJ IDEA和Visual Studio Code等IDE。

8、CodeSandbox Intelligent Suggestions

CodeSandbox 是一个在线的代码编辑器和沙盒环境,它的智能建议功能基于模型学习开发者的行为和开源代码模式,提供补全和优化建议,尤其针对前端开发(React, Vue等)。

9、IntelliCode (by Microsoft)

IntelliCode 是微软推出的一项技术,集成在Visual Studio和Visual Studio Code中,它不仅提供智能代码补全,还根据特定项目的编码风格和模式给出建议,支持多种语言。

AI对开发者的影响

当前AI已经在潜移默化的影响着开发者

1、比如当前的招聘中就提到了有熟练使用AIGC的优先,甚至出现了为了降本增效雇主将强制要求开发者熟练使用AI工具来加快开发进度并纳入KPI考核。

2、使用上面的AI工具辅助开发时,其实也有两面性,一面是可以通过AI工具的建议解决问题,但另一面是AI工具给出的答案有问题时(比如给出的答案适用的环境比较老、依赖版本不一致等)也考验使用者的知识和经验去发现,否则可能反被工具所累。

3、并不能完全依靠AI,实践和经验依然很重要,AI给出的答案也是基于互联网上公开的信息做的训练,互联网上的信息本身就存在良莠不齐,使用者在搜索不是自己擅长的领域时需要警惕。

每种AI工具其实都有免责声明,如通义的底部就有

服务生成的所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点

4、技能要求变化方面:随着AI技术的融合,开发者需要掌握更多与AI相关的知识,如机器学习、数据处理、自然语言处理等,以更好地利用这些技术优化产品和服务。这促使开发者不断学习新技能,适应技术发展的需求。

5、 新角色诞生:AI技术的普及会催生新的开发岗位,例如AI应用开发、算法工程师、机器学习工程师等,为开发者提供了新的职业路径。

6、工作方式的变革:AI可以辅助进行项目管理、需求分析、代码审查等,使得团队协作更加高效,同时也要求开发者具备更强的跨领域合作能力。

7、创造力和策略思考的重要性凸显:虽然AI可以执行许多编程任务,但它缺乏人类的创造力和战略思维能力。开发者在设计系统架构、优化用户体验、创新解决方案等方面的贡献仍然不可或缺。

AI开发的未来

在一定程度上可以理解为AI是搜索时代的升级,我们在互联网上寻找信息从网址导航到搜索到个性化推荐系统再到现在的AI,加快了标准化信息的处理能力,减少了获取信息所使用的时间。但对于非标准化和潜意识的知识/经验依然很无能为力。

AI在软件开发领域未来发展方向非常广阔,主要可以归纳为以下几个方面

1. 智能化辅助开发:AI将继续深化其在代码自动补全、代码审查、错误检测与修复、性能优化等方面的应用,成为开发者日常工作的强大辅助工具,提高开发效率和质量。
2. 自动化编程:虽然完全自动化编程还有很长的路要走,但AI将逐渐能够在特定场景下自动生成完整的功能模块甚至小型应用,特别是在数据处理、接口开发、模板代码生成等领域。
3. 智能需求分析与设计:AI有望通过自然语言处理和机器学习理解复杂的需求文档,自动转换成系统设计图、数据库模型和接口规范,简化项目启动阶段的工作。
4. 个性化推荐与学习:根据开发者的工作习惯和项目特点,AI能提供个性化的技术栈推荐、学习资源和最佳实践,加速技能提升。
5. 持续集成与交付:AI将更深入地融入CI/CD流程,自动测试、部署和监控,实现更高效、稳定的软件发布周期。

目前来看,完全取代是不太可能的。软件开发不仅仅是编写代码,还涉及到创造性思维、复杂问题解决、人类沟通与协作等非程式化任务。AI在逻辑推理、情感理解、创新设计等方面的能力与人类相比仍有显著差距。开发者更多地会与AI形成共生关系,利用AI增强自己的能力,而不是被替代。

在AI时代规划开发者的职业发展

1、增强核心竞争力:深入掌握至少一个技术栈的核心知识,成为该领域的专家,因为基础原理和技术深度是AI难以取代的。
2、培养跨领域能力:学习数据科学、机器学习、产品管理等跨学科知识,使自己成为既懂技术又懂业务的复合型人才。
3、学习使用AI工具:积极拥抱AI辅助开发工具,了解其工作原理,有效利用这些工具提高工作效率。
4、强化软技能:提升沟通、团队协作、领导力等软技能,这些对于项目管理和团队协调至关重要,也是AI难以复制的。
5、终身学习态度:技术迭代迅速,保持好奇心和学习动力,随时准备掌握新技术、新工具,适应行业变化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024/7/7周报

文章目录 摘要Abstract文献阅读题目问题本文贡献问题描述图神经网络Framework实验数据集实验结果 深度学习MAGNN模型相关代码GNN为什么要用GNN?GNN面临挑战 总结 摘要 本周阅读了一篇用于多变量时间序列预测的多尺度自适应图神经网络的文章,多变量时间序…

ASP.NET Core----基础学习03----开发者异常页面 MVC工作原理及实现

文章目录 1. 开发者异常页面(1)Startup.cs 页面的基础配置(2)自定义显示报错代码的前后XX行 2. MVC 的原理3. MVC 的实现4.默认路由路径5.返回Json字符串 1. 开发者异常页面 (1)Startup.cs 页面的基础配置 namespace ASP.Net_Blank {public class Startup{private readonly IC…

Linux muduo 网络库

主要记录示意图和知识点框架: 1、阻塞、非阻塞、同步、异步 在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO。 2、五种IO模型: 阻塞、非阻塞、IO复用、信号驱动、异步IO 3、muduo网络库 muduo网络库给用…

【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

windows 服务器安装svn服务端、迁移svn

svn服务器版本 因为要把旧svn迁移到新的svn,为了保证迁移后的稳定性,安装包使用的旧服务器的svn服务器版本 VisualSVN-Server-3.6.1-x64.msi 安装 配置仓库路径等 其他没截图的就默认配置下一步即可。安装完成先不要启动 迁移 旧的svn服务器直接把…

Windows远程桌面实现之十五:投射浏览器摄像头到xdisp_virt以及再次模拟摄像头(一)

by fanxiushu 2024-07-01 转载或引用请注明原始作者。 本文还是围绕xdisp_virt这个软件展开, 再次模拟成摄像头这个比较好理解,早在很久前,其实xdisp_virt项目中就有摄像头功能, 只是当时是分开的,使用起来…

【SpringBoot】IDEA查看spring bean的依赖关系

前因:在研究springcloud config组件时,我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求,这吸引了我的注意,我的问题是:EnvironmentController是怎么被添加进bean工厂的。本章…

Golang | Leetcode Golang题解之第218题天际线问题

题目: 题解: type pair struct{ right, height int } type hp []pairfunc (h hp) Len() int { return len(h) } func (h hp) Less(i, j int) bool { return h[i].height > h[j].height } func (h hp) Swap(i, j int) { h[i], h[j]…

26_嵌入式系统网络接口

以太网接口基本原理 IEEE802标准 局域网标准协议工作在物理层和数据链路层,其将数据链路层又划分为两层,从下到上分别为介质访问控制子层(不同的MAC子层,与具体接入的传输介质相关),逻辑链路控制子层(统一的LLC子层,为上层提供统…

CosyVoice多语言、音色和情感控制模型,one-shot零样本语音克隆模型本地部署(Win/Mac),通义实验室开源

近日,阿里通义实验室开源了CosyVoice语音模型,它支持自然语音生成,支持多语言、音色和情感控制,在多语言语音生成、零样本语音生成、跨语言声音合成和指令执行能力方面表现卓越。 CosyVoice采用了总共超15万小时的数据训练&#…

GuitarPro2024音乐软件#创作神器#音乐梦想

嘿,亲爱的朋友们!👋👋👋今天我要给你们安利一款超赞的软件——Guitar Pro。这款软件简直是吉他手的福音啊!🎉🎉🎉 Guitar Pro免费绿色永久安装包下载:&#…

如何快速申请免费SSL证书,实现网站HTTPS安全传输

随着互联网技术的飞速发展,网络安全已成为不可忽视的重要议题。HTTPS协议,作为HTTP协议的安全版本,通过SSL协议加密客户端与服务器之间的数据传输,从而保障信息在传输过程中的安全性。对于网站运营者而言,为网站部署SS…

SpringBoot测试类注入Bean失败的原因

针对SpringBoot的测试类&#xff0c;2.2版本之前和之后是不一样的。 2.2版本之后 导包pom.xml 添加test依赖 <!-- starter-test&#xff1a;junit spring-test mockito --> <dependency><groupId>org.springframework.boot</groupId><artifac…

论文解析——FTRANS: Energy-Efficient Acceleration of Transformers using FPGA

作者及发刊详情 Li B , Pandey S , Fang H ,et al.FTRANS: energy-efficient acceleration of transformers using FPGA[J].ACM, 2020.DOI:10.1145/3370748.3406567. 摘要 正文 主要工作贡献 与CPU和GPU在执行Transformer和RoBERTa相比&#xff0c;提出的FTRANS框架获得了…

ansible常见问题配置好了密码还是报错

| FAILED! > { “msg”: “Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host’s fingerprint to your known_hosts file to manage this host.” } 怎么解决&#xf…

[终端安全]-3 移动终端之硬件安全(TEE)

&#xff08;参考资料&#xff1a;TrustZone for V8-A. pdf&#xff0c;来源ARM DEVELOPER官网&#xff09; TEE&#xff08;Trusted Execution Environment&#xff0c;可信执行环境&#xff09;是用于执行敏感代码和处理敏感数据的独立安全区域&#xff1b;以ARM TrustZone为…

分布式技术栈、微服务架构 区分

1.分布式技术栈 这些技术栈都是为了更好的开发分布式架构的项目。 &#xff08;大营销平台的系统框架如下图&#xff0c;扩展的分布式技术栈&#xff09; &#xff08;1&#xff09;Dubbo——分布式技术栈 DubboNacos注册中心是应用可以分布式部署&#xff0c;并且提供RPC接…

HTML5使用<pre>标签:保留原始排版方式

在网页创作中&#xff0c;一般是通过各种标记对文字进行排版的。但是在实际应用中&#xff0c;往往需要一些特殊的排版效果&#xff0c;这样使用标记控制起来会比较麻烦。解决的方法就是保留文本格式的排版效果&#xff0c;如空格、制表符等。 如果要保留原始的文本排版效果&a…

redis并发、穿透、雪崩

Redis如何实现高并发 首先是单线程模型&#xff1a;redis采用单线程可以避免多线程下切换和竞争的开销&#xff0c;提高cpu的利用率&#xff0c;如果是多核cpu&#xff0c;可以部署多个redis实例。基于内存的数据存储&#xff1a;redis将数据存储在内存中&#xff0c;相比于硬…

回溯算法-以景点门票销售管理系统为例

1.回溯算法介绍 1.来源 回溯算法也叫试探法&#xff0c;它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤&#xff1a; 1、 针对所给问题&#xff0c;定义问题的解空间&#xff0c;它至少包含问题的一个&#xff08;最优&#xff09;解。 2 、确定易于搜…