最近應(yīng)該是在知乎上回答一個(gè)問題《你的編程能力從什么時(shí)候開始突飛猛進(jìn)?》這里時(shí),又重新思考了一下,軟件開發(fā)是什么?這個(gè)問題可能在過去、現(xiàn)在與未來是完全不同的。
你的編程能力從什么時(shí)候開始突飛猛進(jìn)?
過去的軟件:數(shù)據(jù)處理是核心
現(xiàn)在的軟件:基礎(chǔ)功能完成后UI/UX更重要
未來的軟件:AI代替你完成一切
過去的軟件開發(fā)
在過去幾十年,應(yīng)該是一直沒有變化的,軟件的開始核心是數(shù)據(jù)+算法,也就是從外部接收數(shù)據(jù)后,要做什么樣的處理,然后再輸出什么樣的數(shù)據(jù)。
舉個(gè)例子吧,你從外界獲得了一段圖像,你怎么樣處理獲得相應(yīng)的統(tǒng)計(jì)信息?最后一次更新時(shí)間是什么?更新時(shí)的comments是什么?然后這個(gè)數(shù)據(jù)獲得后,你要發(fā)送給誰呢?
這些就是過去的軟件處理邏輯,從數(shù)據(jù)到數(shù)據(jù),中間使用的是算法。
在這中間主要的變化是 面向過程的開發(fā),它就是最純粹的 數(shù)據(jù)+算法。隨后呢,因?yàn)檐浖砟畹淖兓?,增加?面向?qū)ο蟮?軟件開發(fā)。然后又有 什么各種軟件工程的基礎(chǔ)模型從 瀑布到V字型,從V字型到螺旋,從螺旋到迭代,從迭代到敏捷?,F(xiàn)在基本上算是穩(wěn)定在敏捷吧。因?yàn)樗亲钊菀椎玫組VP,同時(shí)也比較好的兼顧的時(shí)間與質(zhì)量的平衡。
所以軟件的核心就是 數(shù)據(jù)、數(shù)據(jù)處理算法、再加上一些基本的管理理念。
隨著芯片/硬件的性能越來越好,大家發(fā)現(xiàn),軟件有一個(gè)良好的UI/UX,更容易得到用戶的青睞。那自然大家就會(huì)發(fā)展出大量?jī)?yōu)秀的UI/UX,最典型的可以說有三種吧:
Apple的、Google的、Windows的三種完全不同風(fēng)格的UI,好吧,也是越來越趨同的。因?yàn)檫@個(gè)世界的認(rèn)知暫時(shí)還沒有大的差異。
基本的窗口元素還是基于Windows這個(gè)窗口的祖先同步到了所有的軟件開發(fā)世界:Button、TextField、RadioButton、Combox、tab、windows、processbar、scrollbar、還有一些其它元素。
在這些元素的支持下,我們獲得了現(xiàn)在軟件開發(fā)的基礎(chǔ)UI/UX,所以現(xiàn)代的軟件開發(fā)呢?
在完成基本功能的前提下,大家在拼命的把交互與界面搞得越來越花哨,你既可以認(rèn)為它變好了,也可以認(rèn)為它在沒有核心突破的情況下,走到了一條牛角巷,可能也走到了盡頭。
盡管這中間有過突破性的東西,MR/VR/AR這些吧,但是很遺憾,還沒有特別成功的先例出現(xiàn)。
站在這個(gè)時(shí)間點(diǎn)來預(yù)測(cè)未來?可能AI是唯一的答案吧。
很明顯,未來所有的App里都會(huì)嵌入AI的功能。我們現(xiàn)在的AI能力,如果很好的與現(xiàn)有軟件功能結(jié)合起來,可能是一個(gè)質(zhì)的提升吧。
比如我經(jīng)常使用的AI軟件:形色,用來識(shí)別我看的不認(rèn)識(shí)的植物,這是一個(gè)典型的弱AI應(yīng)用,它在植物識(shí)別的圖像應(yīng)用領(lǐng)域里完全超越了普通人的能力范圍。也就是我們可以用它來增強(qiáng)我們?cè)谶@一狹窄領(lǐng)域的能力。但是如果它在加上更多的現(xiàn)在GPT一類的AI的能力,是不是能交互得更好呢?不是簡(jiǎn)單的信息展示,再加上信息的有效交互,是不是一個(gè)更優(yōu)秀的App呢?
當(dāng)然,我依然覺得嵌入了AI能力的App并不是一個(gè)終極形態(tài),未來的軟件的終極形態(tài)是Agent,是由核心大模型驅(qū)動(dòng)的各種不同的Agent。大家就像是同一個(gè)班級(jí)的學(xué)生,盡管基礎(chǔ)信息接受的是一樣的,基礎(chǔ)的能力是一樣的,但是依然能夠出現(xiàn)更優(yōu)秀的Agent,更普通的Agent,更差的Agent。
但是這些才是軟件的終極結(jié)局。直接我們能夠達(dá)到強(qiáng)人工智能的那一天,在那里,我們就不需要Agent了,只需要一個(gè)強(qiáng)人工智能,或者與你結(jié)合,或者代替你使用一切。
這才是軟件的一生吧!