| 1 | 1/1 | 返回列表 |
| 查看: 419 | 回復(fù): 0 | |||
yalefield金蟲 (文壇精英)
老漢一枚
|
[交流]
【轉(zhuǎn)帖】消滅程序員需要百年嗎?(II)
|
|
蘇曉路 然而,時至今日,軟件開發(fā)不管怎么自動化,總是有一些例外,需要程序員去手工處理。這些例外情況,通常無關(guān)乎高精尖,而是些很普通的問題。 在八年以前,我還沒有接觸知識表示和人工智能的時候,這個問題一直在腦中揮之不去。2003年,偶然接觸到cyc項(xiàng)目,這又一次徹底DianFu了我的想法,因?yàn)檫@個cyc剛好能作一些看起來很簡單,卻又非要人工才能處理的事情,而且這些事情并不像看上去那么簡單,一個簡單的推理常常要調(diào)用成千上萬條斷言。當(dāng)然cyc并不是一個真正的常識處理系統(tǒng),它固然是十余年積累的成果,也有很多閃光的思想,但是局限性也很明顯。不管怎樣,它為我開啟了一個全新的視野。 人工智能是個很大的領(lǐng)域,其中有很多天才的創(chuàng)見,要理解它的全部內(nèi)涵,是件艱巨漫長的工作。然而,有一件事情從開始的時候就能得出結(jié)論,那就是,如果計算機(jī)真的具有了與人類相當(dāng)?shù)闹悄,那么必然就不再需要人來為它編程序,那個時候,就是程序員這個職業(yè)壽終正寢的時候,當(dāng)然,整個軟件產(chǎn)業(yè)也將不復(fù)存在。所以,程序員以及軟件產(chǎn)業(yè)的生存,其實(shí)就寄托于那些為數(shù)越來越少的,必須人來處理的“例外”情況。 我們現(xiàn)在就來關(guān)注這些例外情況,因?yàn)樗鼈兪侨绱酥匾,將會決定各位程序員以及產(chǎn)業(yè)的命運(yùn)。 軟件是什么呢?計算機(jī)發(fā)展的早期歷史上是沒有軟件的概念的,那時候只有程序,每個用戶就是他自己的程序員,編寫程序滿足他自己的需求。這個時候的程序員,不需要需求調(diào)研,不需要劃分工作階段,總之一句話,想怎么干就怎么干,他們也不會考慮復(fù)用,因?yàn)槌绦蛑皇撬麄儌人想法的表達(dá),沒有想法的時候想也沒用,一旦有了想法,兩下就寫出來了,即使需要借鑒以前的想法,從腦子里調(diào)出來比從故紙堆翻出來也快捷得多。 也許軟件與程序的不同就在于此,軟件是做給別人用的,程序是寫給自己用的。軟件是伴隨著不會編程的“業(yè)余”用戶的產(chǎn)生而出現(xiàn)的。開發(fā)軟件與寫程序第一個不同的地方就是要做需求調(diào)研,不管做多簡單的軟件,都要調(diào)研。有的時候,程序員看似沒有做,其實(shí)是他和用戶已經(jīng)很熟悉,用戶的需求早已經(jīng)都記在腦子里了。用戶有需求就表明用戶有一些需要計算的問題,這些問題可以由計算機(jī)做,當(dāng)然也可以由人來做,事實(shí)上computer最早指的是拿著紙筆或者計算尺工作的計算員們。如果由人來完成計算,用戶通常需要告訴計算員計算的公式和流程,然后提供初始數(shù)據(jù),如果這位計算員經(jīng)驗(yàn)豐富的話,有時候不必如此羅嗦,只需要告訴他算什么題目就可以了,計算員自己知道公式和流程,或者即使當(dāng)時不知道,也可以自己找資料學(xué)習(xí)。使用計算機(jī)就享受不到如此的便利了,計算機(jī)不會自己學(xué)習(xí)查資料,即使硬盤里存有以往的計算程序,它也不會自己去使用,一定要人手工調(diào)出來運(yùn)行。人與計算機(jī)的根本差別不在于處理信息的能力,而在于處理信息的主觀能動性。 自從引入了客戶,引入了需求,軟件開發(fā)開始變得復(fù)雜了,最早的客戶還比較好應(yīng)付,他們都是懂一些計算機(jī)技術(shù)的人,那時候完全不懂的人根本不會想到用計算機(jī)做事情。最初的需求都很具體,輸入什么,做哪種計算,結(jié)果怎么輸出,都講得清清楚楚,所以最初搞需求分析的人都畫數(shù)據(jù)流圖,只要數(shù)據(jù)流清楚了,軟件就確定了,今天的程序員就沒這么幸運(yùn)了,工作流程、訪問權(quán)限、用戶體驗(yàn)等等,撞得滿頭都是包,如果光盯著數(shù)據(jù)流圖的話,什么也做不出來。那時候的分析員和設(shè)計師基本上是同一個人,因?yàn)闆]有什么好設(shè)計的,就是把功能分解一下,列張表1234寫出來,再往后稍微復(fù)雜一些,所謂結(jié)構(gòu)化方法,也就是功能多了一些,列表不好使改用層次樹。今天的設(shè)計師,最慘的時候UML14種圖全都畫遍,可能也還有沒描述清楚的地方。 軟件出現(xiàn)之后,因?yàn)樯虡I(yè)的驅(qū)動,很快就泡沫一般膨脹起來,各位今天目睹了各種泡沫之后,大概會總結(jié)出來一條規(guī)律,凡是泡沫一定沒有好結(jié)果。軟件一旦開始膨脹,所需的人工自然不斷地加倍,于是以IBM為代表(IBM確實(shí)養(yǎng)了不少杰出的科學(xué)家,但是養(yǎng)了更多豬頭,當(dāng)科學(xué)家和豬頭一起研究問題的時候,通常豬頭不會變成科學(xué)家,而科學(xué)家卻會變成豬頭),采用了工業(yè)時代提高效率的不二法則--增加人手,擴(kuò)大規(guī)模,精細(xì)分工,流水作業(yè),至于結(jié)果嘛,各位學(xué)過軟件工程第一課的話,恐怕就知道他們的事跡了。 扯IBM的糗事看似和我們的主題沒多少關(guān)系,其實(shí)當(dāng)中有著深刻的聯(lián)系。我們前面所說的那些可以自動處理的部分,他們用人工都做得很完美,而在那些例外的地方,卻幾乎無例外地犯錯誤。那么,例外到底是什么呢?為何總是揮之不去呢?要解決這個問題,我們就需要從更深層次挖掘軟件的本質(zhì)。不管怎么說,軟件的核心功能就是計算,那么計算是什么呢? 今天互聯(lián)網(wǎng)上充斥著各種各樣的計算,僅僅用數(shù)學(xué)來概括是不足以涵蓋其外延的。在數(shù)字系統(tǒng)之外,也存在各種各樣的計算,比如模擬計算機(jī)的計算,軍事上的兵棋推演,商業(yè)上的決策方法等等。如果要概括所有這些計算共同的特征,就只有三點(diǎn): 第一,都有一組初始的數(shù)據(jù),代表著某個現(xiàn)實(shí)的或者抽象的系統(tǒng)在某一時刻的狀態(tài); 第二,都有一組理論或者公式(或者二者兼具),規(guī)定了各個數(shù)據(jù)如何相互作用; 第三,經(jīng)過計算的過程,最終都得到另一組數(shù)據(jù),描述系統(tǒng)在另一時刻可能的狀態(tài)。 如果把第一、第二兩條中的要素加在一起,稱之為一個模型的話,計算就相當(dāng)于模型的一次推演。模型推演是人腦最基本的思維方法,人類發(fā)明計算機(jī)來分擔(dān)思考的負(fù)擔(dān),因此計算機(jī)當(dāng)然必須能夠擔(dān)負(fù)這樣的計算工作。然而計算機(jī)并不懂得什么是模型,只是一個執(zhí)行程序的機(jī)器,因此必須由人來將模型程序化,軟件簡單地說就是程序化了的模型。面向?qū)ο蟮姆椒ㄆ鋵?shí)就是一種模型表示法,而近年更有人提出模型驅(qū)動的開發(fā),這都與軟件的模型性質(zhì)密不可分。 僅僅認(rèn)識到軟件具有模型的性質(zhì)還不夠,首先,模型本身是復(fù)雜的,雖然所有的模型都可以用一組規(guī)律加一組數(shù)據(jù)來概括,但是實(shí)際做過系統(tǒng)的人,特別是做行業(yè)系統(tǒng)的人都知道,行業(yè)知識本身就是復(fù)雜的,相互之間常常有說不清道不明的關(guān)系,如果不是自己真正理解了這些知識,僅僅以書本和專家言語為基礎(chǔ),做一些表面(形式化)的推理,是幾乎一定會出錯的。其次,初始數(shù)據(jù)也不是簡單的,今天的系統(tǒng),數(shù)據(jù)來源多種多樣,精度、可信度各不相同,非結(jié)構(gòu)化的數(shù)據(jù)常常見到,單是把這些數(shù)據(jù)轉(zhuǎn)換到適合模型推演的形式,就要費(fèi)九牛二虎之力。 第三,模型代碼化本身也不是件輕松的工作,今天的計算環(huán)境空前復(fù)雜,各種平臺,各種支撐系統(tǒng)都要考慮,今天的架構(gòu)師要掌握的知識比以往任何時候都多。最后,軟件雖然以模型為核心,但絕不僅僅是模型,為了讓模型進(jìn)行有用的工作,各種輔助系統(tǒng)也必不可少。 |
找到一些相關(guān)的精華帖子,希望有用哦~
| 1 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +5 | 生物工程調(diào)劑 2026-03-17 | 9/450 |
|
|---|---|---|---|---|
|
[考研] 0703化學(xué)調(diào)劑 +4 | 妮妮ninicgb 2026-03-21 | 4/200 |
|
|
[考研] 工科0856求調(diào)劑 +3 | 沐析汀汀 2026-03-21 | 3/150 |
|
|
[考研] 336求調(diào)劑 +5 | rmc8866 2026-03-21 | 5/250 |
|
|
[考研] 346求調(diào)劑[0856] +4 | WayneLim327 2026-03-16 | 7/350 |
|
|
[考研] 一志愿山大07化學(xué) 332分 四六級已過 本科山東雙非 求調(diào)劑! +3 | 不想理你 2026-03-16 | 3/150 |
|
|
[考研] 機(jī)械專碩299求調(diào)劑至材料 +3 | kkcoco25 2026-03-16 | 4/200 |
|
|
[考研] 299求調(diào)劑 +6 | △小透明* 2026-03-17 | 6/300 |
|
|
[考研] 22408 344分 求調(diào)劑 一志愿 華電計算機(jī)技術(shù) +4 | solanXXX 2026-03-20 | 4/200 |
|
|
[考研] 一志愿武漢理工材料工程專碩調(diào)劑 +9 | Doleres 2026-03-19 | 9/450 |
|
|
[考研] 一志愿蘇州大學(xué)材料求調(diào)劑,總分315(英一) +5 | sbdksD 2026-03-19 | 5/250 |
|
|
[考研] 0817 化學(xué)工程 299分求調(diào)劑 有科研經(jīng)歷 有二區(qū)文章 +22 | rare12345 2026-03-18 | 22/1100 |
|
|
[考研] 319求調(diào)劑 +3 | 小力氣珂珂 2026-03-20 | 3/150 |
|
|
[考研] 一志愿吉林大學(xué)材料學(xué)碩321求調(diào)劑 +11 | Ymlll 2026-03-18 | 15/750 |
|
|
[考研] 材料學(xué)碩318求調(diào)劑 +5 | February_Feb 2026-03-19 | 5/250 |
|
|
[考研] 0703化學(xué)調(diào)劑 +5 | pupcoco 2026-03-17 | 8/400 |
|
|
[考研] 085601專碩,總分342求調(diào)劑,地區(qū)不限 +5 | share_joy 2026-03-16 | 5/250 |
|
|
[考研] 085601求調(diào)劑 +4 | Du.11 2026-03-16 | 4/200 |
|
|
[考研] 東南大學(xué)364求調(diào)劑 +5 | JasonYuiui 2026-03-15 | 5/250 |
|
|
[考研] 0856求調(diào)劑 +3 | 劉夢微 2026-03-15 | 3/150 |
|