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

news/2024/7/20 19:03:36 标签: 软件工程, iphone, chatGPT, 大模型

软件工程是否迎来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.niftyadmin.cn/n/448818.html

相关文章

一种看门狗复位电源的电路

如下是一个看门狗复位电源的电路: 满足掉电能被监测到,掉电后利用法拉电容保持后级模组继续工作一段时间。 看门狗可以关闭电源 320ms 20ms ,对后级模组起到断电复位作用。 同时复位电源拉低的是VCC_4V 而非超级电容所在的VCC_4V_IN,并不会…

最近跳槽,压力真大...

前几天,跟个老朋友吃饭,他最近想跳槽去大厂,觉得压力很大,问我能不能分享些所谓的经验套路。 每次有这类请求,都觉得有些有趣,不知道你发现没有大家身边真的有很多人不知道怎么面试,也不知道怎…

第五章 random模块

1. random模块介绍 random 模块用于实现各种分布的伪随机数生成器,可以根据不同的实数分布来随机生成值,如随机生成指定范围的整数、浮点数、序列等。该模块中的多数函数都取决于 random() 函数,该函数通过 Mersenne Twister 作为核心生成器…

基于深度学习的高精度打电话检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度打电话检测识别系统可用于日常生活中或野外来检测与定位打电话目标,利用深度学习算法可实现图片、视频、摄像头等方式的打电话目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…

程序员自学能找到工作吗?

程序员是一个非常热门的职业,很多人都想成为一名优秀的程序员。但是,要成为一名程序员,需要学习哪些知识和技能呢?是否一定要上大学或者参加培训班才能学习编程呢?自学编程是否可行呢?自学编程的人能否找到…

CarFramework打造无缝用户体验:提升汽车信息娱乐和控制

CarFramework框架解析 CarFramework(汽车框架)是Android Automotive平台上的一个关键框架,它提供了专门针对车辆应用程序开发的功能和工具。CarFramework通过提供一组API和服务,简化了与车辆硬件和车辆特定功能的交互。 CarFram…

一、C语言入门

1 什么是C语言? ​ C语言是一种通用的、面向过程的计算机编程语言。它由贝尔实验室的Dennis Ritchie于1972年左右开发,并成为了广泛应用于系统编程和应用程序开发的一种语言。C语言具有简洁的语法、高效的执行速度和强大的底层控制能力,因此…

打包Java程序为.exe文件

文章目录 将Java程序打包成Jar包打包为.exe文件效果展示文件检索联系作者 ​👑作者主页:Java冰激凌 接上篇 我们还未介绍到如何打包为一个.exe文件 将Java程序打包成Jar包 1. file -> Project Structure 或者直接使用全局快捷键(Ctrl Al…