软件工程是否迎来iPhone时刻?

news2024/10/6 14:29:53

“软件工程是否迎来iPhone时刻?” 是2023K+全球软件研发行业创新峰会上海站主会场的Panel discussion的主题,出场的几位嘉宾给出了不同的答案,其中有两位嘉宾给出了“No”,一位给出了“塞班时刻”(后来给我朋友圈投票是0.5,介于“是”和“否”之间),只有一位给出“Yes”。如果从现场嘉宾观点看,是1.5:2.5,反方胜出,即软件工程没有迎来iPhone时刻,但是“真理往往掌握在少数人手中”。我写这篇文章的观点自然明确:软件工程迎来了iPhone时刻,因为之前我写过一篇文章:《GPT-4 开启 “软件工程3.0” 全新时代》,也就意味着:iPhone带来的移动互联时代(新时代)映射为 “软件工程迎来的新时代:3.0时代”。之后写了一篇短文:《关于“软件工程3.0” 三大支柱和两点说明》,进一步说明软件工程3.0时代。

最近,有些文章讨论了大模型带来了Office、AI、程序员的iPhone时刻,例如:

  • 刚刚,GPT-4 让微软 Office 迎来自己的「iPhone 时刻」

  • AI 的 iPhone 时刻,已经到来

  • 现在就是成为“新程序员”的黄金时刻!

  • ......

究竟什么是iPhone时刻?我们有必要首先在“iPhone时刻”这个概念上达成共识,否则判断是否到来就缺乏根基。

今天,我正好看到一篇文章《对苹果Vision Pro和空间计算的思考 》,其中谈到了iPhone时刻:

历史何其似曾相识,2007年1月乔布斯发布第一代iPhone时,彼时的Windows Mobile,黑莓、诺基亚都在所谓Smart Phone领域探索了好几年 ——我还记得我当时用的两款Windows Mobie:多普达 和 联想SmartPhone,经常拿小笔在屏幕上戳啊戳的难受的要死,可还是形影不离。乔布斯在iPhone发布会上其实讲了两件事:

1)交互体验:扔掉笔和键盘,代之以手指触控。

2)场景功能:Phone+iPod+ Internet Communicator 三合一,解决电话、音乐、上网三个场景需求。

后来的故事不多说了,iPhone摧枯拉朽地革掉了诺基亚、摩托罗拉、黑莓、Windows Mobile(后来改名叫Windows Phone)等的命,真正开启了移动计算的时代。

在iPhone出来之前,其他的智能手机(smart phone,如Windows Mobile,黑莓、诺基亚等 )已经存在几年,只是这些手机主要服务于商务人士,交互方式依赖键盘和笔,有大量的菜单,大多数老百姓很难使用,主要功能是通话、发email、做笔记等,也没有独立的应用程序或应用程序少得可怜。但iPhone改变了手机的操作方式:全触屏的体验式革命,可以让每个人(包括老人、小孩等)都轻易使用手机,以及之后推出的App Store,第三方可以开发应用程序,使应用程序快速丰富起来,大家从此离不开手机。

iPhone也深深影响了Android系统。在iPhone推出之后,谷歌不得不放弃之前计划,彻底抛弃了两个版本中的Sooner版本(不支持触摸功能,外形还非常像黑莓的翻版),而跟随苹果的触屏趋势,转向更激进的Dream版本,重新设计系统,直到一年多之后——2008年9月22日,谷歌正式对外发布第一款Android手机HTC G1(又名HTC Dream)。

今天基本是iOS和Android的天下,使用手机的方式也很相近——直接用手指进行操作(包括多点触控),应用系统都以独立的方块形图标呈现出来,Android也有自己的App store,更新、升级方式也比较接近,总之,这种自然的人机交互方式几乎让每一个人都拥有一部手机,从而让整个社会进入移动互联时代。

但所有的事情不是一蹴而就的。第一代iPhone比较土、应用程序也很少,用户就更少了,刚开始的几年,每年新增用户数也就是100万左右。苹果的 App store是在iPhone手机发布一年多之后(  2008 年 7 月 10 日)才推出来。在那之后,凭借 500 款 app(应用程序) 才开始改变人们工作、娱乐、旅行、交易等方式。

回到chatGPT,其用户增长速度很快,5天突破百万用户,仅用了两个月的时间,在 2023 年 1 月末的月活用户就突破了 1亿。这就是为什么大家都在喊“大模型时代”的到来!

回到软件工程,类似GPT4这样的大语言模型(LLM)已经开始给软件工程带来深刻的影响:

  • 我们通过和LLM持续地对话,让LLM理解我们要表达的需求,从而生成我们所需要的需求文档(如用户故事、用户故事的验收标准,包括以GWT格式呈现的场景);

  • 能够生成函数级的代码,对于简单的应用程序,甚至不用写一行代码,完全通过对话方式就能生成可运行的应用程序;

  • 有像微软Github Copilot、华为云CodeArts Snap等这样强大的智能编程助手,软件开发效率提升50%~90%;

  • 可以根据功能需求,生成所需的大部分测试用例,也可以生成UI、API等方面的自动化测试脚本。

  • ......
     

在过去,这些几乎是不可想象的。chatGPT之前,计算机不能理解我们所说的,也无法进行推理,也从来没有一个可执行的应用程序是可以通过自然语言交流而生成的。而今天这些都发生在眼前。

虽然LLM目前不能生成我们所需的一切,不能代替所有的研发人员,我们也没有期望它能代替人类所有的业务分析师、程序员、测试人员等,但在未来,它将改变我们过去那种软件开发方式或范式(可以参考:“软件工程3.0”之下软件开发范式),它可以淘汰一部分(大约50%~80%)业务分析师、程序员、测试人员等。

我们不能只看到现状,不能只看到表面现象,我们要透过现象看本质,面向未来,洞察趋势,看到软件研发的范式(开发软件的本质)正在发生巨大的变化、正在朝着一个新的方向进步。

 这里(AiDD软件研发数字峰会)一些案例也能说明软件研发正在悄悄发生巨变...

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

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

相关文章

设计模式—“状态变化”

在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了解决方案。 典型模式有:Memento、State 一、State 动机 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而…

18-BOM对象

一、是什么 🍕🍕🍕BOM (Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退,前进,刷新&#xff0…

SSM幼儿园管理系统的设计与实现-计算机毕设 附源码86673

SSM幼儿园管理系统的设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于幼儿管理系统也是十分常见的。过去使用手工的管理方式对幼儿园进行管理,造成了管理繁琐、难以维护等问题,如今使用计算…

搜索表单的触发方式

1、按键盘触发 配套监听 _keydownHandler: function (event) { // 获取表单数据 let formValue this.$[frm-mach-break].serializeMyForm(); let params { machineName: formValue.mach_id }; this.requestAjax(ajx-view-mach-break, params); }, onKeypress: function ({ ke…

抖音seo账号矩阵系统源码sign解密.技术

抖音SEO矩阵系统源码是一种用于优化抖音视频内容的工具,可以帮助用户提高抖音视频的搜索排名和流量,从而增加视频曝光和转化率。该系统包括两部分,即数据收集和分析模块以及SEO策略和实施模块。 返回示例 错误: { "ec…

搜索算法(五) DFS BFS 练习题

练习题 1.力扣https://leetcode.cn/problems/surrounded-regions/这题和417类似,都是从边界朝内部搜索,417用的是DFS,这里为了练习,就用BFS。 首先从四条边界得到‘O’的坐标,加入队列。接着一层一层搜索&#xff0c…

11个AI绘画软件大全,赶紧收藏

随着人工智能技术的不断发展,越来越多的AI绘画软件应运而生。AI绘画软件利用人工智能技术,通过计算机自动生成或辅助生成艺术作品。 AI绘画软件通常集深度学习、计算机视觉、自然语言处理等技术于一体,可以模拟人类的创作过程,生…

带你详细了解Redis事务锁机制-加实列演示-加连接池-包括解决遗留问题-下

Redis_事务_锁机制_秒杀 连接池技术 连接池介绍 1、节省每次连接redis 服务带来的消耗,把连接好的实例反复利用。 2、链接池参数 MaxTotal:控制一个pool 可分配多少个jedis 实例,通过pool.getResource()来获取;如果赋值为-1&…

.NetCore gRpc 客户端与服务端的单工通信Demo

文章目录 .NetCore gRpc 客户端与服务端的单工通信Demo服务端方式一方式二 客户端proto协议文件syntax "proto3";import "google/protobuf/empty.proto";serviceproto3与.netCore 的类型对应日期和时间可为 null 的类型字节小数为 Protobuf 创建自定义 de…

<Linux开发>驱动开发 -Linux MISC 驱动

<Linux开发>驱动开发 -Linux MISC 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记…

软考高级系统架构设计师(二) 基础知识之计算机组成与系统结构2

目录 总线 ​CISC与RISC 流水线技术 总线 练习题: CISC与RISC RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构. RISC与CICS的比较 1.RISC比CICS更能提高计算机运算速度;RISC寄存器多,就可以减少访存次数,…

生产环境Java应用服务内存泄漏分析与解决

有个生产环境CRM业务应用服务,情况有些奇怪,监控数据显示内存异常。内存使用率99.%多。通过生产监控看板发现,CRM内存超配或内存泄漏的现象,下面分析一下这个问题过程记录。 1、服务器硬件配置部署情况 生产服务器采用阿里云ECS…

【命令参数】MSBuild - 环境配置及常用命令参数

目录 环境配置 基本语法 参数指令 对各类程序的命令参数的掌握是软件工程师必修课之一,它是通往自动化、高效化开发测试的必经之路。对于MSBuild,我们可以借助它以一种轻量级的形式去完成对于项目又或解决方案的生成,而避开使用繁大的IDE进…

Linux系统之部署Etherpad文档编辑器

Linux系统之部署Etherpad文档编辑器 一、Etherpad介绍1.Etherpad简介2.Etherpad特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统是否安装Node.js 四、部署Node.js 环境4.1 下载Node.js安装包…

【吴恩达老师《机器学习》】课后习题3之【逻辑回归解决多分类】与【神经网络】笔记(代码注释详细)

本次习题所用到的数据,#数据集:ex3data1.mat,参数:ex3weights.mat。在文章开头,下载即可! 逻辑回归解决多分类问题 二分类VS多分类 在机器学习中,分类是一种监督学习任务,其中我们…

从机缘到成就

机缘 在这1825天的创作之旅中,我收获了许多宝贵的机遇和经验。起初,我只是一个对技术有着浓厚兴趣的普通人,遇到了一个在eclipse导入工程后出现中文乱码的问题。而我决定将这个问题记录下来,并分享给其他可能遇到相同困扰的人们。…

数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

🌟博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏&am…

Linux基础内容(23)—— 信号补充与多线程交接知识

Linux基础内容(22)—— 信号_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130835485 目录 1.可重入函数 1.情况假设 2.volatile 3.SIGCHLD信号 1.SIGCHLD介绍 2.信号的确认 3.wait的处理 1.可重入函数 1.情况假设…

插件 - 通过SPI方式实现插件管理

文章目录 SPI概念基本原理使用步骤优点缺点Code真实使用场景案例JDBC(Java Database Connectivity)Servlet API日志框架SPI概念 SPI(Service Provider Interface)是Java提供的一种服务扩展机制,它允许应用程序在运行时动态加载和发现提供者(Providers),并与它们进行交…

Proteus仿真之UART通信(点亮LED灯)

1.UART通信简介:通用异步收发传输器UART(Universal Asynchronous Receiver/Transmitter)是负责处理数据总线和串口之间的串/并通信的设备。UART通信规定了数据帧的格式:起始位、数据位、校验位、停止位等。UART异步通信只需要通信双方设置好数据帧的格式…