C/C++ 從0到1系統(tǒng)精講 項(xiàng)目開發(fā)綜合基礎(chǔ)K-爆竹聲中一歲除
震動(dòng)!這個(gè)基于GPT-4的代碼編輯器讓我感到恐慌!
C/C++ 從0到1系統(tǒng)精講 項(xiàng)目開發(fā)綜合基礎(chǔ)K
download:https://www.zxit666.com/5918/
一
首先,我不是標(biāo)題黨。我確的確實(shí)遭到了震動(dòng)。
其次,我今天要寫的也不是在chatGPT里面叫AI寫什么冒泡排序,雞兔同籠等網(wǎng)上都已有大量代碼示例的問題。
我曉得chatGPT曾經(jīng)火出圈了,自己也實(shí)驗(yàn)過叫AI寫一些簡(jiǎn)單的程序,太簡(jiǎn)單的根本上都能寫對(duì),略微復(fù)雜點(diǎn)的也能引見個(gè)大致思緒,代碼也能給出,但是很多都無(wú)法正常跑起來(lái),也有一些邏輯性的錯(cuò)誤。最多也只能用來(lái)參考下。
固然我覺得目前AI能了解一些人類的企圖,能給出大致的完成代碼,但是還無(wú)法替代程序員去寫一些略微復(fù)雜點(diǎn)的算法程序。
直到我今天在網(wǎng)上看到這樣一款A(yù)I寫程序的軟件:Cursor。
二

查了下該軟件的特性以及背后的公司,問了new bing:
好家伙,原來(lái)是openAI這個(gè)公司出的。
但我又一想,不就是接入了chatGPT的API么,包裝成一個(gè)IDE的樣子。關(guān)鍵是chatGPT的代碼功力我領(lǐng)教過,其實(shí)問題挺多的,有時(shí)分會(huì)有很根底的邏輯錯(cuò)誤問題,完整不能拿來(lái)直接跑。
但是看在是openAI公司出品的份上,我還是下了這個(gè)軟件,其實(shí)我并不報(bào)希望。
軟件界面長(zhǎng)這樣,很像一個(gè)IDE:
簡(jiǎn)單問了一些猜數(shù)字,快速排序的問題。全對(duì),直接復(fù)制到IDEA里就能直接跑。比方上圖就是我問的一個(gè)給出猜數(shù)字游戲代碼的問題。
其實(shí)這種水平chatGPT也能做到。但是很明顯我的直觀感受是cursor給出的代碼的速度比chatGPT快太多了,根本是一秒十幾行的速度。
我決議上點(diǎn)強(qiáng)度。
三

我于是不再問一些網(wǎng)上已有大量示例的經(jīng)典問題,提了一個(gè)swing的需求,請(qǐng)求他幫我寫一個(gè)swing界面,詳細(xì)描繪如下:
用swing寫一個(gè)秒表程序,請(qǐng)?jiān)诮缑嫔袭嬕粋€(gè)圓形的紅色的秒表圖形,圖形上有2根針,一根是分針,一根是秒針,分針比秒針要短,初始都指向0分0秒。在秒表下方還有2個(gè)按鈕,一個(gè)是開端,一個(gè)是暫停,當(dāng)點(diǎn)擊開端按鈕的時(shí)分,秒表時(shí)鐘開端走動(dòng),當(dāng)點(diǎn)擊暫停時(shí),秒表中止走動(dòng)。暫停后再點(diǎn)擊開端,會(huì)繼續(xù)走動(dòng)。
輸入進(jìn)去,然后AI簡(jiǎn)直沒考慮就開端寫了:
幾秒鐘就寫完了,仿佛乍看之下還挺像那么回事,由于我看到他定義了顏色,畫了線。我復(fù)制到IDEA里面一運(yùn)轉(zhuǎn),居然真的能夠運(yùn)轉(zhuǎn)起來(lái),效果如下:
這個(gè)有點(diǎn)出乎我的預(yù)料,整體除了按鈕位置有點(diǎn)不對(duì)以外,其他功用和我描繪完整正確。
接著加大難度,我給他出了一道在swing界面文件比照的題:
請(qǐng)用swing寫一個(gè)程序,圖形界面頂部上有3個(gè)按鈕,其中2個(gè)分別支持上傳2個(gè)TXT文件,還有一個(gè)比擬按鈕,點(diǎn)擊按鈕,則會(huì)去比擬這2個(gè)文件中內(nèi)容的不同之處,假如完整分歧,則彈出一個(gè)提示框標(biāo)明2個(gè)文件內(nèi)容分歧。假如不一樣,則在下方圖形界面(和按鈕不在同一行)分別顯現(xiàn)這2個(gè)文件的內(nèi)容,在文件內(nèi)容里面用黃色下標(biāo)箭頭在內(nèi)容不分歧的中央打上標(biāo)志
想解釋下,為什么我不斷給他出swing的題,由于swing有界面,好考證啊。
仍然是秒出代碼,大家看動(dòng)圖:
程序明顯比之前長(zhǎng)很多,中間我輸入了2次繼續(xù)。總體挺絲滑的。復(fù)制程序到IDEA里面運(yùn)轉(zhuǎn):
這下徹底震驚到我了,臥槽,中心功用算是全部完成了。但也有瑕疵,我請(qǐng)求的是用黃色箭頭把不一樣的中央作標(biāo)志,他則是把不一樣的內(nèi)容用文本的方式列了出來(lái)。
GPT-4寫程序難道那么兇猛了么,只需描繪一小段話,就能寫出一個(gè)小demo程序來(lái)。而且還能夠直接運(yùn)轉(zhuǎn)。
我于是把相同的描繪貼給了chatGPT,固然chatGPT也給出了代碼,但是運(yùn)轉(zhuǎn)出來(lái)是完整不對(duì)的。
這就闡明,cursor不只僅是個(gè)套殼軟件。它是真正基于代碼的方式停止鍛煉的。
四
除了swing,普通的java多線程并發(fā)業(yè)務(wù)程序能寫么,我于是又問了一個(gè)常見的業(yè)務(wù)問題:電商秒殺模仿程序。描繪如下:
寫一段程序,模仿下以下業(yè)務(wù):
舉行一個(gè)秒殺活動(dòng),總共有2個(gè)商品,商品A和商品B,各有50件。需求定義出商品的類。用線程模仿1w個(gè)人同時(shí)進(jìn)來(lái)?yè)屬?gòu),1w個(gè)人分別用ID1,ID2,ID3,以此類推來(lái)表示。
每個(gè)人每個(gè)商品只能最多搶2件。2個(gè)商品均沒搶到的顧客信息不用打印,只打印出搶到了商品的顧客信息,格式舉例如下:
顧客[ID1]搶到了[商品A]2件,[商品B]1件
我置信我描繪的曾經(jīng)挺分明了,也闡明了要停止多線程,顧客ID命名給了一個(gè)推論的方式描繪,以及打印信息只給了一個(gè)范例描繪,看看AI能否學(xué)樣去打印出契合我的結(jié)果
操作過程和上面一樣,我就不貼動(dòng)圖了。貼一個(gè)圖片看看:
運(yùn)轉(zhuǎn)出來(lái)的打印結(jié)果為:
這下我又要臥槽了,結(jié)果是100%完整正確的!我又認(rèn)真看了AI寫多線程并發(fā),發(fā)現(xiàn)也是完整正確的。
五
其實(shí)我測(cè)試到這里的時(shí)分,我心里曾經(jīng)開端焦慮了,沒錯(cuò),目前cursor也只能寫一些單一算法的程序,但是正確率和了解力曾經(jīng)讓我吃驚了,從chatGPT橫空出世到GPT-4這才幾個(gè)月啊,就曾經(jīng)這么強(qiáng)了。是不是再過幾年,我們就要失業(yè)了,是不是就再也不需求程序員了?產(chǎn)品經(jīng)理只需把細(xì)致的描繪貼給AI,AI半小時(shí)吊打一個(gè)技術(shù)團(tuán)隊(duì)一個(gè)月的工作量。