一個老程序員的回憶錄--近幾年中國軟件的發展【轉】

有一次出差途中,幸遇一位程序員。初觀其貌,約30有餘,姑且稱其爲「老」程序員。這位老兄初看不善
言辭,但同他侃起他軟件開發的經歷時,其人口若懸河。我雖非幹這個行當的,但據個人社會經驗他毫不是在
誇誇其談,藉機吹噓本身。因此照其原話一字不差,摘錄下來,供有興趣的人們讀一讀解悶:  
 
 
 「從1989年進入大學開始,到而今攻讀博士學位已經有12年有餘。雖然個人專業一直都是軟件,但並不是一進
入這個專業即可以算做從事了這個專業。假如認爲大學期間幼稚有餘,從碩士真正算是進入了軟件開發領域
,至今也有9年之多。然而,這些年來我都做了些什麼呢?  
 
 計算機領域的發展之快使人應接不暇,自不待言。九十年代初期,國內仍然是DOS盛行的時代。那時,我在試
圖分析這個實在不能稱之爲操做系統的小系統。常常爲可以隨意控制DOS而洋洋自得。先學習BASIC,而後是
PASCAL、彙編、C等語言。也曾經對BIOS系統中的二進制碼的進行過一些分析。有時狂妄地想,只要是可以
形式化的東西,均可以用軟件表達出來。並且把一個整個的PC都爲我所用也絕非難事。  
 
 這時,我又接觸到了實實在在的計算機網絡。說是網絡,其實多數人指的不過是局域網。更有甚者,那時
NOVEL網實際上就是局域網的代名詞。若是你在那時的計算機書店看到一本講計算機網絡工程和編程方面的書
,無論書名裏有沒有NOVEL這幾個字母,十有八九就是講NOVEL網的。此時,我便忙於學習和研究NOVEL網
的通訊原理。學習NETBIOS、IPX/SPX等協議,學會了在局域網上如何進行點對點以及廣播通訊。還爲本身寫
了一個在局域網上進行聊天的工具而沾沾自喜。另外,大約是在九十年代初期,有不少人認爲網絡編程就是
SOCKET編程,私下認爲實在是誤解。  
 
 然而,細想起來,那些日子都在忙於學習語言和用最低級的工具反彙編系統的代碼。對於網絡,也一會兒陷進
了使用具體協議的編程細節。對整個軟件系統的大局方面並沒有瑕顧及。一句話,整日是在代碼中摸爬滾打,完
全沒有時間對計算機系統的大局方面進行任何的考慮和思索。  
 
 進入WINDOWS時代後,雖然也對WIN3.1在內心以及行動上進行過諷刺與抵制,然而因爲外界需求以及陸續
推出的WIN95/NT,還有對技術的狂熱,又開始投身於WINDOWS系統的分析與開發。這時,又學習了SDK、
VC、VB以及DELPHI。常常爲本身能在一兩個星期內迅速掌握DELPHI這樣的工具高興不已。也爲本身用
DELPHI在幾個月的時間裏開發出了一個相似於DELPHI的某領域內的開發工具而興奮。  
 
 這時,我也早已認識到開發語言的類似性以及工具性。各類語言只不過是有一些獨特的語法以及關鍵字組成。
再進一步,採用各類語言的開發工具也不過只是提供了各自的一些函數庫/類庫。學習起來並不是難事。因此,這
時(大約爲1995年)我也中止了購買單純講解如何使用某種語言或開發工具(如VB、VC等)的書。   
 接觸UNIX系統是在上班以後的事情了。UNIX系統的命令行設計之精緻和X WINDOW的巧妙結構使我感嘆不
已。然而因爲工做和興趣的關係,以及WINDOWS系統之普及性,使我又很快的離開了陽春白雪的UNIX。即
使如此,我老是幻想着爲UNIX開發一套相似於DELPHI/VB的工具。然而因爲各類緣由始終未能付諸實施,而
今已有相似產品,使我心痛不已,有點本身的孩子卻由別人帶了的那種‘大膽的’酸楚。  
 
 大約是95年,JAVA橫空出世。這種不能簡單地稱之爲編程語言的語言,使我愛不釋手。因爲它的簡單性、可
移植性以及健壯性和迎合了當時INTERNET的發展,便又使我投身其中。幸虧我沒有僅僅關心其語法的細節
,從那種在語法上帶了若干多餘修飾的‘近乎煽情’通常的C++轉向‘嬌小秀氣’的Java,使得我有餘興考慮
到底什麼是面向對象的風範這個問題了。  
 
 面向對象的思想我是從1993年便開始接觸到的。然而,直到今日我仍不能宣稱本身掌握了它的精髓。廣義而言
,使用面向對象的語言設計與開發並不必定進行的就是面向對象的設計與開發;再大膽地進一步講,使用非面
向對象的語言設計與開發並不是必定就不是進行的面向對象的設計與開發。不客氣地講,目前面向對象的開發者
大多數狀況下只是把數據和函數簡單地以類爲單位組織起來而起。我是直到接觸了設計模式,才真正領略了面
向對象風範的初步輪廓。  
 
 新技術、新系統和新語言層出不窮,極度編程(XP)、重構(Refactoring)、設計模式、反模式
(AntiPatterns)、分析模式、UML、RUP、中間件、RMI、 J2EE、.NET 、Linux、WinCE、WinXP、
Java、C#(有些看似很新,其實只不過同大衆尤爲是沒有INTERNET時的國人信息來源不順暢有關);就是一些
老的但至今仍流行不衰的系統和技術如CORBA、TCP/IP、面向對象等咱們也不能不提。  
 
 雖然在跟進新技術方面,我作的不算太差,然而仔細想一想,爲何我沒有推出有力的做品呢?另外,好像我太
強調我的問題了。因此必須補充一點的是,現現在人力資源炒做的’團隊精神’。這種炒做使得人們有一種誤
解,認爲國人歷來沒有考慮過人與人合做方面的問題。其實,咱們的祖先早已留下‘一個和尚挑水吃,兩個和
尚擡水吃,三個和尚沒水吃’的經典評論。他們也考慮了這個合做問題。私下認爲,‘團隊精神’絕非僅僅是
能力問題,而在很大程度上是我的品問題。再說遠一點,先前有一本叫作《誰動了。。。》的洋書不幸暢銷
,又讓國人忘了祖先早已留下的至理名言‘亡羊補牢’、‘未雨綢繆’等寓言故事和成語的存在性。  
 
 回到技術正題:除了狂熱地跟進新技術,做爲一個軟件從業人員的咱們還須要作些什麼呢?這是任何一個意欲
長期從事這個技術的人必須思索的一個大問題。我雖然也回答不了這個問題,但個人經歷告訴我,不能再在代
碼裏摸爬滾打了!固然,我不是指不編程了。而是要時刻記住從更高的角度審視本身的代碼。同時,應該不斷
地分析成功系統的體系結構,如JDK、MFC、VCL等。」  
 
 稍微沉悶了片刻,他很有點懷才不遇地說:  
  「哎,現現在的社會說是須要有推銷本身的能力,其實他們說的是還要有點賣弄本身的本事。不過這也是個人
一家之言。我也不知道怎麼回事,至今也沒有碰到合適的機會。雖然如今軟件業不景氣,面試卻是也有一兩回
。但不知爲何,都沒有下文。」  
 
 正如個人經驗判斷,其人不善言辭。但仍是很有幾份內秀,因此我和他交換了聯繫方法。正當我要鼓勵他幾句
時,咱們已經到達了目的地,你們一陣匆忙地打點行裝,便在擁擠中各奔前程了。真但願他能獲得好的機會
,儘早發揮本身的才能。程序員

相關文章
相關標籤/搜索