编程的未来

2023-11-11

从 ChatGPT 诞生至今,在程序员的圈子里,我们一直有两种讨论:

  1. 最开始所恐慌的:编程没有未来,ChatGPT 是不是要取代程序员。
  2. 编程的方式前所未有地发生了变化。

现如今,GitHub Copilot Chat 可以让开发者们直接在编辑器里收获类似于 ChatGPT 的体验,与 VS Code、Visual Studio 深度整合,可以给开发者提供深入的分析,甚至得到对于错误的修正建议。

由于我还没有 Copilot Chat(正在 waitlist 中……),在这里就先给大家直接展示下 GitHub Copilot 的作用。它会根据你的注释或者你写的方法名等直接帮你补全后续可能会写到的代码逻辑。有的时候你会惊叹——“对!我要的就是这个!”,而有的时候你可能会疯狂吐槽——“这写的都是什么玩意儿???”。

此处附上一个完全由 Copilot 生成的项目库,主要用于解析 Java Class 文件和生成结构图。


再比如对于 Android 开发者们来说,在 Google 的 Android Studio Hedgehog 里,已经有了一项名为「Studio Bot」的对话式编程助手,可以帮助 Android 开发者生成代码、查找相关资料,学习一些开发中的最佳实践并输出出来。比如在实际编程过程中,当你碰到在 Android 范畴内的任何问题,都可以抛给它,它会回答问题,或者是直接帮你生成代码,所生成的代码可以复制,也可以一键导入到你的项目中。

下面这张图展示的,就是向 Studio Bot 进行提问生成一段用于缩放 Android 摄像头返回的 NV21 数据的工具类的代码,Studio Bot 就能在数秒之间给你生成返回,论代码质量,属于看起来还可以的样子,但代码执行起来会比较耗时(这主要还是在于 Prompt 没有写到位)。


当然,在现阶段,可能还会生成一些错误的信息。所以 Google 官方特别提示,使用时需要开发者仔细地检查代码。并且,当前对我们还有点痛苦的是,它和 Bard 一样,依然不支持中文。

还有一款名为「Cursor」的开源编辑器,集成 GPT-4,可以帮助开发者重构、理解和优化代码,支持中文。

有两种模式,一种是生成代码,按快捷键 Command/Ctrl +K,会弹出一个 Prompt 的输入框,这时输入想让它生成的代码,便会直接生成代码。同时,它还可以做优化和 Bug Fix。另外一种是 Chat 模式,按 Command/Ctrl + L 会切换到聊天界面,操作上与 ChatGPT 和前面我们所提及的 Studio Bot 是类似的。

许多人调侃,CV 工程师正在向 KL 工程师发生转移。


综合当前的这些技术创新,我们能够看到的是:在当前阶段,AI 更进一步地成为了我们的编程助手。它在至少下面这三方面对程序员的影响是巨大的。

  1. 能够解决一些可能需要搜索、查看很多资料才能找到答案的问题。多年以来,我们编程的场景一直会使用到大量的搜索,遇事不决问搜索引擎、问 CSDN、Stack Overflow,但很可能花费了大量的时间和精力,却只能查找到相关的解决方案,要解决问题还需要大量的调试和修改。而让程序员特别头疼的还有,搜索到的文章可能有 90% 都是同质化的内容,能够解决问题的往往会是那 5%-10%。而 AI 编程助手则能够很快速,而且相对精确地给我们答案,甚至是一段可以直接解决问题的代码。

  2. 还有一些编程上的体力活,比如需要写一些逻辑不复杂但代码量相对较大的活,可以直接抛给 AI 编程助手,从而实现编程效率的极大提升。

  3. 在写代码时,有时还会遇到一些不太好下手的代码,可以直接给 AI,让它去实现一些逻辑,可能会帮助开发者找到新思路。

基于此,我最近一直在思考,编程的未来会是什么样的?这种革命性的变化是牵一发而动全身的,完全改变了过去几十年来的编程规则。

我们现在能够看到的是,搜索引擎正在发生巨变,Bing 搞上了 Bing AI,带动了 Bing 和 Edge 的增长。Google 在 Google I/O 2023 上,Bard 写的代码可以一键拖拽到 Colab 里直接运行,而 Google 也推出了由 PaLM 2 驱动的全新搜索引擎。

于是,“SEO is dead?”的讨论又出现了,这一次,好像确实如此……

将时间线放得更长一些,未来还需要编程吗?在 GPT-4 发布之时,OpenAI 总裁兼联合创始人 Greg Brockman 用笔和纸画了一个网站页面草图展示给 GPT-4,而 GPT-4 基于此仅用约 10 秒的时间就生成了网页代码,设计出了静态网页。当然,放在当前来讲,还比较偏于玩票展示的性质,但在变化已经如此迅猛的今天,未来又将发生怎样的改变?是不是会像《流浪地球 2》里,因为系统被黑,量子计算机能直接实时生成操作系统,重新获取控制权限,这些动作,只需要一条指令、几分钟时间……

各位开发者朋友们,你有着怎样的想法与思考?欢迎留言我们一起交流。

本文写于 2023 年 5 月 12 日夜,和师哥一起讨论共同而成,旁边还有安静假寐的 Java(喵~)。

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

编程的未来 的相关文章

  • 如何增加 NetBeans IDE 中的字体大小?

    我刚刚买了一台相当大的新显示器 但在阅读编辑器上的文本时遇到了很多困难 我尝试以通常的方式增加字体大小 工具 gt gt 选项 gt gt 字体和颜色 gt gt 单击字体旁边的 按钮 gt gt 然后选择大字体大小 这是结果 点击查看大图
  • VS 2017 颜色主题编辑器 - 如何更改 Intellisense 自动完成背景颜色

    我已使用颜色主题编辑器导入了透明主题 并且正在尝试更改自动完成框的背景颜色 目前 如下所示 它是透明的 并且很难阅读下面几行的文本 我尝试了多种元素 但找不到合适的元素 谷歌一无所获 如何更改自动完成 智能感知自动完成框背景颜色 将树视图背
  • Linux 上的 C++ IDE [关闭]

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

    在工作中 我们使用专有语言 并使用带有简单代码突出显示的 Notepad 进行编程 这真的很烦人 所以我想做的是花一些时间来设置一个文本编辑器或现有的 IDE 来支持我的语言 我在谷歌上搜索了很多 有很多选择 在开始工作之前我想问你什么是最
  • 具有 GIT 支持的 PL/SQL IDE

    我目前正在为我的公司开发 PL SQL 存储过程 我想使用代码修订控制系统来跟踪我和其他开发人员所做的更改 我喜欢 GIT 的所有优点 包括分布式 scm 功能 有没有支持GIT的PL SQL开发IDE 目前 我正在使用 JDevelope
  • Clojure 开发:IDE 还是 REPL?

    我已经使用 Clojure 一段时间了 想要创建一些比玩具更大 更复杂的项目 过去几年我一直在使用 Java 并且已经习惯了 IDE 为我所做的事情 编译大量类 将它们打包在 jar 中 创建批处理文件供用户启动它们 当我查看 Clojur
  • Visual Studio 2012 - “添加”上下文菜单的项模板

    我成功创建新的项模板并将其添加到 Visual Studio 2012 现在我可以使用右键单击来创建新项目 解决方案资源管理器 添加 新项目 dialog But how I can add this Item Template to ap
  • Visual Studio:从撤消/重做堆栈中排除大纲

    Visual Studio 中有一些非常烦人的事情 当我展开或折叠方法或代码区域时 此操作会被推送到撤消堆栈上 因此 如果我在方法中编辑某些代码 然后折叠该方法 然后想要撤消我的更改 我必须撤消两次 一次用于折叠操作 一次用于代码更改 如果
  • 使用 PHPstorm 让 php 代码在浏览器中执行

    因此 当我单击 运行 时 PHPstorm 正在其控制台中正常运行 php 代码 这很好 但我想在浏览器中看到它 所以我在 PHPstorm 中创建了一个新的 PHP Web 应用程序 将服务器设置为 localhost 8000 现在 当
  • 在 Rstudio 上浏览 R 代码的高效递归方式?

    我正在使用 RStudio 我开始觉得有必要通过包代码来更深入地理解或破解某些功能 当我尝试使用导航时使用 Ctrl 单击鼠标 http www rstudio com ide docs using navigation对于包内定义的函数
  • 如何防止 IntelliJ IDEA 在启动时重新分配文件类型关联?

    我正在使用 IntelliJ IDEA Ultimate 18 1 而 Jenkinsfile 支持很糟糕 值得庆幸的是 将文件视为 Groovy 是我可以接受的解决方法 这涉及到 删除 Jenkinsfile 关联 在Groovy组下添加
  • Delphi预定义环境变量

    谁能告诉我在哪里可以找到 RAD Studio 中可用的 伪 环境变量列表 例如 Platform Config 等 具体来说 我想要一个能够为我提供 RTL 版本的版本 以便我可以将编译单元 dcu 放入正确的目录中 即 XE为D15 X
  • 设置 eclipse 进行 Windows 驱动程序开发

    我正在尝试使用 WDK 7 1 0 编写用户模式 Windows XP Vista 和 7 虚拟打印机驱动程序 我打算使用 eclipse IDE 进行开发 所以想知道是否可以进行相同的设置 我希望做以下事情 1 Eclipse 能够识别
  • Visual Studio Professional 2013 Update 5 中的“在线服务不可用”问题

    我一直在 vscode 2013 工作直到今天 但是 当我今天早上尝试打开 IDE 时 它收到 您的许可证已过时 必须更新 错误消息 如下所示 在我尝试更新许可证和登录操作之后 当我尝试这两个时 它得到 在线服务不可用 请稍后重试 错误消息
  • 如何设置 Xcode 来代替 Qt Creator 工作?

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

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Kendo 有没有像 Sencha Architect for Ext JS 这样的控件布局设计工具
  • 如何在 IDE 中输入提示上下文?

    我在用Closure call http php net manual en closure call php http php net manual en closure call php 在类上下文中调用外部闭包 这是一个简单的重现 c
  • Selenium IDE-自动化Select2搜索框

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

    我正在使用 Eclipse 和 Pydev 插件在 Windows 上编写跨平台 python 脚本 该脚本利用os symlink and os readlink 如果当前平台不是 NT 则使用方法 自从os symlink and os
  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t

随机推荐

  • 1096C - Polygon for the Angle-几何-性质

    思路 根 据 几 何 性 质 正 多 边 形 所 有 三 个 点组成的 角 都 是最小角的倍数 然后根据内角公式 可以求出 正多边形 最小角为 多边形内角 n 2 然后 打表发现 180边形最小角为1 最大角 178 所以 只有 179无法
  • 阿里巴巴Java开发规约插件p3c详细教程及使用感受

    作者 13 GitHub https github com ZHENFENG13 版权声明 本文为原创文章 未经允许不得转载 阿里巴巴Java开发手册 在进入正题介绍这款插件之前 首先来谈一下 阿里巴巴Java开发手册 2017年年初 首次
  • R和Python概率分布统计和Python验证独立性和平稳性时间序列

    R概率分布和统计 R 基础知识 汇总统计数据 图形显示 概率基础知识 概率规则 条件概率 后验概率和贝叶斯 可靠性 离散分布介绍 几何分布 概率密度函数 概率密度函数 pdf 定义为 P X x
  • Qt教程7--一个事件触发另一个

    Qt教程一 第七章 一个事物领导另一个 原文 QT3 1的帮助文档翻译 zieckey zieckey yahoo com cn 修改 zieckey zieckey yahoo com cn 这个例子显示了如何使用信号和槽来创建自定义窗口
  • 【RDMA】最全RDMA学习教程(建议收藏)

    目录 RDMA技术分享 RDMA技术分享 RDMA技术详解 RDMA编程 RDMA 网络 ROCE iWarp 性能优化 配置和特性优化 Qos流控 命令和测试 文档和相关资料 作者 bandaoyu 随时更新 源文连接 https blo
  • 图片上传的ajax代码,一个伪ajax图片上传代码实现示例

    if FILES gt window parent ajaxUploadPicture uploadCallback http img0 bdstatic com img image 5099213b07eca8065380ce7f75e9
  • tensorflow官方教程:运用模型对类别进行预测

    tensorflow官方教程 运用模型对类别进行预测 本文主要包含如下内容 tensorflow官方教程运用模型对类别进行预测 python版本 C代码 本教程将会教你如何使用Inception v3 你将学会如何用Python或者C 把图
  • ubuntu 安装Fastdfs

    安装fastdfs依赖插件libfastcommon 下载 https github com happyfish100 libfastcommon archive V1 0 39 tar gz 创建 usr local software 目
  • 蓝桥杯 BEGIN-2 long long int的使用

    include
  • 机房环境监控系统的作用,环境与设备监控系统的作用

    通信机房环境监控系统 以下简称动环监控系统 是指电源柜 UPS 监控 远程通信 远程调试 远程控制 即时监控其运行参数 故障检测和处理 记录和分析的有关数据 对其设备 空调 电池等工业设备以及门磁 红外 渗水 温湿度 烟度等环境参数进行统一
  • 别只盯着“四小龙”,CV的市场格局正在悄悄改变

    大数据产业创新服务媒体 聚焦数据 改变商业 在计算机视觉领域 比较知名的是商汤 旷视 云从 依图这 四小龙 他们不仅知名度更高 收入水平和估值也更高 从最新的财报来看 这四小龙都不同程度陷入了困境 收入增长乏力 巨额亏损看不到扭转的态势 四
  • crc16 ccitt的详细标准及其出处

    CRC16 CCITT是一个16位的循环冗余校验 CRC 算法 它是由国际电报电话咨询委员会 CCITT 制定的 该算法被广泛用于通信领域 以验证数据传输的完整性 以下是CRC16 CCITT算法的详细标准 多项式生成器 Polynomia
  • weblogic wls-wsat组件远程命令执行(CVE-2017-3506)

    所有文章 仅供安全研究与学习之用 后果自负 weblogic wls wsat组件远程命令执行 CVE 2017 3506 前言 与weblogic 反序列化 CVE 2017 10271 类似 一般情况下weblogic会开放7001以及
  • (port is already in use)端口被占用问题

    前言 端口占用问题几乎每个开发人员都会遇到 每次用每次查 下面来记录下解决过程 以便日后需要 正文 1 调出命令窗口 windows R 组合键 调出命令窗口 2 查找占用端口对应的PID 进程号 说明 以下举例用到的端口和进程等仅做参考
  • Cadence Allegro PCB快捷键设置

    1 通过env文件设置快捷键 在安装路径下D Cadence SPB 16 6 share pcb text中找到env文件 利用记事本打开 就可以加入自己的快捷键方式了 二 env文件在哪里 以我的电脑为例 在安装路径下D cadence
  • 实现点击图片放大查看功能

    1 html 代码 div style display none text align center width 100 height 100 background color none img style height 1 width 4
  • unity物体自身轴旋转_unity3d如何实现物体自动旋转-unity3d物体自动旋转的设置教程 - 河东软件园...

    unity3d是我们设计师用来制作游戏画面的软件 很多的手机App也可以使用它来制作 有的时候我们在游戏中能够看见一些人物或是物体的移动效果 例如平移 旋转等等都可以轻松的利用这款软件来实现 今天小编想和大家分享一下如何在unity3d中使
  • 2020-08-13

    https www cnblogs com daizhengyang p 13384169 html https blog csdn net qq 27289001 article details 77150598 https www cn
  • oracle学习之rownum和rowid

    rownum先百度一波https www cnblogs com xfeiyun p 16355165 html rownum是oracle特有的一个关键字 对于基表 在insert记录时 oracle就按照insert的顺序 将rownu
  • 编程的未来

    从 ChatGPT 诞生至今 在程序员的圈子里 我们一直有两种讨论 最开始所恐慌的 编程没有未来 ChatGPT 是不是要取代程序员 编程的方式前所未有地发生了变化 现如今 GitHub Copilot Chat 可以让开发者们直接在编辑器