我學過的計算機語言
計算機真是個好東西,但是計算機語言就未必了,因為學習計算機語言可實在是件累人的事情。
我學的是物理,但是從大一開始不僅要學習頭大的高數,還得學習完全不入門的計算機語言。作為一個從縣城農村來的人,計算機語言可是從來沒有聽過的事情,而對於城市裡的人來說,他們早在蘋果II或中華學習機上玩膩了。我一個叫劉毅的同學就特別牛,他將撲克遊戲中的圖片順序顛倒一下,於是玩遊戲時贏者看到的就不再是一件一件地脫衣服,而是一件一件地穿衣服!
我學的第一門計算機語言課是MASM,也就是巨集組合語言,這是計算機裡面差不多最基礎的語言了,僅僅好過穿紙帶的,你可以直接用MASM來操作暫存器,實現最基本的計數和運算操作,我能用MASM設計一個數碼時鐘,而我同學則會做更復雜些。
我學的第二門計算機語言叫FORTRAN。這是藍巨人IBM公司發明的語言,名字來自formula translation的單詞縮寫,意思是公式翻譯。FORTRAN大約是工程計算領域最重要的計算機語言了,沒有它幾乎無法支撐藍巨人小型機和大型機的銷售,有了它就可以進行天氣預報、數值分析和各種模擬,甚至還可以模擬核爆!真是神一般都計算機語言,小沃森也一定為它感到驕傲。可惜我的FORTRAN語言學的不好,總是一頭霧水,考試只考了60多分,而我的同班同學則開始代替老師給我們上課了!不過時間一晃過去三十年了,也沒聽說他在IT行業有什麼出息。算我孤陋寡聞了。
知恥而後勇是我這個人最大的特點。FORTRAN考得不好,我可以學別的呀。Pascal就是我學過的第三門計算機程式設計語言。那時候我正在讀計算物理,老師會講如何用計算機模擬來解決實際工作中的問題,我們做過放射科醫生防護背心有效厚度的模擬,做過交通流量控制的模擬。我最得意的是做過晶體在無重力環境下自由生長的模擬,程式就是用Pascal編的,可惜紅樓機房中計算機速度太慢了,我為了得到一個模擬結果,竟然透支了100多個小時,後來機房的管理員拿著賬單來找我,還是老師給付了錢!謝啦,尊敬的老師!願你身體健康長命百歲!
生不逢時不一定說的我們,但是一定包含我們這一級。畢業時我大學法律系的同學被分去濰坊棉紡廠的保衛科幹保安,而我則被直接分回了老家!於是我連報到都沒去,直接在省城的一家電腦公司某了份差事。然後開始學習我的第四門計算機語言——BASIC以及後來的Visual BASIC。這差不多是最簡單的程式語言了,簡單到我有一個偉大的同行——有錢人比爾•蓋茨,據說他的名片上始終把自己標註為BASIC Programmer,也就是BASIC程式設計師。
那個年代BASIC在實際中用的很少,大多數是用來做教學,用來學習一些程式設計的基本概念和理論。用的比較多的是DBase——一種資料庫設計語言,流行的是DBase II、DBase IV和後來的FoxBase、FoxBase Pro。它們是我學習的第五種程式設計語言。有了資料庫語言,辦公自動化一下子就進入了一個新境界,不再是簡單的打字,各種各樣的工資管理軟體、人事管理軟體開始應運而生,中國的軟體行業終於進入一個蓬勃發展的時代。
我在電腦組裝公司的工作只持續了半年,新年過後就不告而別地走了,老闆扣下了我的戶口和檔案,但是後來因為繳費太多,他也不再管了,於是就恢復了自由之身。但是新公司用的系統與原來不同,我在電腦組裝公司工作時學的那點Windows知識算是白費了,當然學的BASIC和DBase語言也不得不扔掉。
新公司是做軟體開發的,作業系統用的是xenix,資料庫用的是Informix,開發語言用的是c。看來我在電腦組裝公司學的那點知識是徹底用不上了,一切都需要從頭開始,當時的感覺可真是哇涼哇涼的欣喜。
但是我學習的第六種語言並不是c語言,而是shell語言——一種在xenix系統中使用的指令碼語言。xenix是unix在PC機上執行的版本,湯普森和裡奇在發明unix系統的時候也發明了shell以及與之相關的概念,包括管道、三通管道等,可以將不同的命令串接起來,實現更復雜的操作。而shell就是這樣的一種解釋性命令列語言。從Windows的圖形介面調到xenix的命令列介面讓我感到很新奇,大有回到了上古西周的感覺,因此就拼命地玩唯一能接觸到的shell語言,甚至還用shell語言編了一個多選單的軟體介面,結果惹得新同事哈哈大笑,我也覺得頗為丟臉。
要在新公司做軟體開發,需要掌握的程式設計語言是資料庫Informix和開發語言c。於是Informix和c語言,成了我學過的第七門語言和第八門語言。雖然譚浩強的書不怎麼樣,但我仍然認為c語言是我這輩子用過的最有用的語言,也是自己下功夫最多的語言,當時做開發,為了解決樹、連結串列、指標、堆疊、排序等問題,整的我昏天黑地的。後來我用c語言開發了防火牆和音視訊通訊系統,這些工作都得益於自己在c語言上的紮實基礎。
網際網路的興起幾乎像摧枯拉朽一樣改變了一切,彷彿一轉身原來的一切就都不管用了,舊的程式設計語言沒用了,就必須學習新的程式設計語言。於是開始學習HTML、學習Java、學習PERL和PHP,彷彿一不留神就會被淘汰。過去這許多年,我學習過、玩過、用過的計算機語言快有20種了,可是仍然覺得跟不上形勢。隨著大資料、雲端計算和AI人工智慧的崛起,新的計算機語言和資料庫又撲面而來,這次帶來的不再是哇涼哇涼的欣喜,而是絕望了。
有一天我朋友來電話,問我他兒子上大學學軟體怎麼樣?我說能不能讓他學生物或金融啊?學軟體沒準會累死啊!我女兒插了一句,學金融也會累死啊!