第一代程序員做家-- 王小波html
喜歡讀書的人,對王小波都不陌生,他是中國最富創造性的做家之一,他是中國近半世紀的苦難和荒謬所結晶出來的天才,他英年早逝。他的做品對咱們生活中全部的荒謬和苦難做出最完全的反諷刺。他還作了歷來沒有人想作和作也沒才力作到的事:他唾棄中國現代文學那種「軟」以及傷感和諂媚的傳統,而秉承羅素、伊塔洛·卡爾維諾他們的批判、思考的精神,同時把這個傳統和中國古代小說的遊戲精神做了一個創造性的銜接。程序員
對於王小波也就讀過一本《一隻特立獨行的豬》,讓我對王小波產生興趣的是在讀到《Mac Talk》這本書裏寫到王小波除了做家的身份外,仍是一名程序員,而且是一名很牛的程序員。如下是一些王小波和程序相關的故事。算法
多數人知道王小波是小說家,部分人分不清財經做家吳曉波和小說家王小波是否是一回事兒。卻不多有人知道王小波能夠算的上中國早期的程序員,在 90 年代初的時候由於國內應用軟件缺少,愛搗鼓東西的王小波利用閒暇時間學習了彙編和C語言,編了中文編輯器和輸入法。中文編輯器和輸入法任何一個都是大牛級的 GEEK 纔會去嘗試的東西,好比求伯君。王小波經過賣軟件還掙了些錢,當時不少中觀村的老闆要拉他入夥,固然寫代碼這種來錢快的活對屌絲王小波仍是有吸引力的,所幸他仍是拒絕了人家。編程
王小波一個寫小說的爲何淪落(/升級)成了程序員?這還得慢慢說。王小波大學在人大學的是貿易,畢業後在人大當了幾年老師。後來去了美國匹茨堡大學讀經濟的研究生,到那老師跟他說你就是一寫做的奇才,之後必能稱霸話語文壇。老師又說你在我這什麼都不用幹了,好吃好住,畢業證照發,抓緊時間寫小說。學成歸國,王小波接着又回到人大作統計學的講師。小程序
由於作統計,各類分析工具是必不可少的,之前人手工計算,有了計算機固然最好使用計算機,基本理工科的都知道用 MATLAB 作個畢設和做業是多麼重要。因此當時計算機對王小波的工做是至關重要的,可是 90 年的時候,軟件至關稀缺,電腦又至關不智能。王小波不得不本身寫軟件,固然開發軟件也不是那麼簡單,因此他先是學會了 FORTRAN,彙編,C等各類語言,接着又要學習數據結構,算法的相關知識,還有編譯原理。緩存
在作出中文編輯器和輸入法,解決了本身的需求以後,王小波對寫軟件的興趣已經沒有多少了。由於他以爲寫軟件能夠賺錢,寫小說一樣也能夠賺錢。處於一個程序員的修養,王小波仍是不斷地從數據結構和算法來優化這兩個軟件。93 年的時候,王小波買了一臺 286,這在當時是一臺奢華無比的機子了,他本身也是這些認爲的,高興得一塌糊塗。不過這臺頂配機子仍是知足不了王小波的要求,後來他把時間花在了不斷地去優化這臺機子上面。數據結構
王小波能夠算的上是個 GEEK。大學學的貿易,後來又學化學,再後來轉到了數學系。他的同窗形容他解數學題就像殺豬同樣,特別來勁,一道一道解決,那感受可能就像打 CS 拿人頭同樣爽。不過解多了也以爲沒意思。數據結構和算法
王小波小說裏的男主角基本都是理工男,除了每天意淫還有一些奇怪的想法。其中一些還有本身的發明,好比《將來世界》裏的王二是個工程師,成天想着和單位一塊兒研製的永動機,還有《紅拂夜奔》裏的李靖發明過一個巨大的開跟號機器,在戰場上,這臺機器運轉起來揮舞着槓桿邊開跟攻擊敵人,有的人死在根號 3 下,有的人倒在了根號 5 下。這些都只有 GEEK 纔會想得出來。編輯器
王小波幹過不少事情,下過鄉,考過大學,出過國,學過經濟,打過代碼,成了小說家,去世的那一年完成了心願作了編劇。總之無論他幹了什麼,他身上讓咱們尊重的仍是獨立之精神,自由之思想。函數
如下內容是從王小波和朋友的書信裏收集了他所作軟件的各類信息,聚集起來,能夠了解小波在軟件方面的造詣。順序按照原文的書信順序,應該也就是時間順序。
回來以前我曾往人大一分校計算機站寫過一封信,問他們可要帶什麼軟件,主管的工程師回了封信,我沒收到。回來以後人家還提到此事。如今國內軟件一面混亂,又逐漸有造成市場之勢。首先以年兄學統計這一事實來看,回來作事非有會用的軟件不可。Macintosh 根本就沒打進中國市場,你非帶幾個可用的 IBM 微機軟件回來不可。至於什麼機器上能使倒沒必要太擔憂。我這個狗屁計算機室,IBMPS/2 就有二臺。AT 機也很多。
SASSPSSStatistx 都有,可表明國內上等通常統計微機房的水平,可就是少了一種宜於做統計的語言。年兄若有 APL (Aprogramminglanguage)之 IBM 微機本,可給我寄 copy 來。我在美還有一個戶頭,連 manual 複印費一併寫支票給大家。Glim 我也沒有,如年兄有便人可捎來。郵寄太貴,能省就省吧。
我如今正給北大社會學所作統計,手上除 SPSS 沒有可用的軟件,國內這方面不好。我如今會用 FORTRAN,編統計程序不方便。聞兄談起大家用S語言,不知是否好用。工具書也不知好找不。無論好歹,煩兄找個拷貝給我,要就算了。照我看只要能解決各類矩陣運算就夠:固然也要有各類分佈函數。反正也是瞎胡混,我就算努把力,少混點吧。
曉陽到底也加入了 IBM 的行列。照我看,蘋果機仍是買不得。由於 IBM-PC 的兼容機隊伍龐大。INTEL 又總能推出新一代 CPU,未來還有大發展。買微機錢的投資是大事,時間、精力投資更爲巨大,買 386 兼容機是明智之舉。 我最近可能調入人大,投奔班長。最近胡思亂想一想出了個理論來,還沒認真推導,大抵是設立多個 Dummy (兩分變量)構成的聯合分佈,其合計樣本點構成一球面,點到點的距離以總偏差計算。因此同樣本點的對點就是它的否,偏差最大。其他的正在想。
兄談及 IBM 中文軟件不可用,估計是圖像版有問題,可至有 Colormonitor 之機器上一試。Mac 機國內亦有,惟不及美國多也。
你寄來的嚴氏 2.0A 我也收到,還沒用。由於一者是 3 盤要倒,兩者我本身寫的 WK 也有重大進展。我也自作了詞組功能,是棵B樹,我以爲自寫的軟件自用,感受是最好的。詞組用處不是很大,主要用於定義人地名等專有名詞,可是嚴氏軟件對我仍是有重大啓示,拼音加四聲是個極好的主意,寫起東西來聲韻鏗鏘,與其餘軟件大不同。自寫一遍,從分頁到編輯鍵分配,都能合乎自家習慣,不是存心狗尾續貂也。如能見到嚴氏,可代爲致意。
前次寄來軟件,上機一試發現非有浮點處理機不能運轉。由於缺乏軟件,國內機器通常不裝協處理機,冷不丁撞出您這一件來,搞得不大有辦法。
閒着沒事搞了個發明。原有中文軟件是用線掃描方式出漢字。我作了一個用調整字模發生器方法出漢字的系統,自覺得很優越,惋惜還未找到用戶。用此法能夠很容易地在西文軟件上出中文窗口,還在 SPSS 上加了幾句罵孃的話。
曉陽託人帶來軟件,週轉不少日纔到手裏,軟盤有些污損,壞一片爛一套,不可用矣。可是十分感念曉陽的好意。去年託人帶來的中文軟件(嚴氏 By×),我用着尚好,並且又用C語言仿編了一個,程序是個人,拼音字典是人家的,執此招搖撞騙,騙了一些錢。幹這個事,熟悉了C語言,都是拜小陽所賜。
不過如今我對微機已無興趣,由於發現寫小說也可賺到錢。
編譯程序一盤(有說明書,見 shou),源程序一盤。個人音典與嚴氏同名內容不一樣。功能上與嚴氏的近似,可是多了改進拼音字典的功能。按 F4 後能夠把拼音重定義。也可加字,在拼音揀字時,按 enter,就進入國標揀字,揀到的字加入字典。這個軟件由五個c語言(另有兩個頭文件)和一個彙編語言文件組成,可用 turboc 編譯,可是彙編部分沒必要重匯了,能夠把彙編文件寫成的部分造成的 obj (個人磁盤上叫 wk5.obj)放到硬盤上,與其它c語言文件分開,用 turboc 的 commandline 編譯器編一下,命令以下:tcc-mc-ewka:wk*.ca:wk5.objgraphics.lib 造成 wk.exe,可是必須有 yindian,cclib,egavga.bgi 三文件支持才工做。*.bgi 是圖象板參數表,能夠包括到*.exe 內的。可是要改改程序。你的機器好。我還用個老掉牙的 XT 機,簡直落伍了。
turbo.c 你必定能找到。假如你用過其它c軟件,有一點要提醒你,turbo.c 有一種極討厭的特性,就是你在一個函數內 alloc 的內存,退出該函數時不會自動釋放;還有一點也很糟,就是模型問題,在大模型下寫的程序,到了小模型上一律不能用,個人程序是在 compact 模型下寫的,就不能用 small 來編譯,這兩條是能夠氣死人的。
聽說能夠用 far,near 之類的前綴說明指針,實際上是屁用無論。我幹了一年多c,獲得的結論是微機c還不能令人快樂,有時叫人懷念彙編。
f1 是提示鍵。個人打印機有漢卡,F5 你恐不能用。這個打印機是人家借給個人,性能很是之好,(美國 amt-525);可是不知能用多久。這個程序我還在修改中。與嚴氏的軟件比,在硬的方面的優勢是達到了很好的緊湊性,如今編譯後是 55k,擴展餘地大。缺點是圖象更新沒他的快(在個人老爺機上能夠看出區別),不知他是怎麼搞的,我很佩服。個人圖像部分也是彙編寫的,反覆優化,也達不到他的水平,不得不認可技不如人。另外,磁盤文件的處理,我也寫很差。還要請陽公指教。
小陽的信又用 MAC 機,看來你的機器很多,可喜可賀。我這一臺老 PC/XT,用了六年換不下來,太慚愧,近來老想狠狠心,花幾百塊買個 286 主板換上,老婆又不一樣意,真是要命了。 我自編軟件又有進展,把一部分程序遞歸化,出現了很新奇的特徵。等我換了 286,就須要能寫虛址方式的C語言了,未知曉陽可否找到?
你給我寄的軟件由於是三寸盤,在這裏很不通用,因此我也沒用。盤上有什麼,至今不知。我用C編的軟件已經用熟,並作出了各類寫小說的工具,別人的軟件已不用了。如今主要是寫書賺錢。從今年初開始寫長篇,首先作了寫長篇的專用軟件,如今基本調通,開始寫了。
遞歸論我沒學過。我哥哥大概懂一些。我和你說的大概是計算機內的遞歸算法。我在美國讀的書都是關於機器的。有關算法、數據結構等等,全在國內看的,也不知英文叫什麼。在C語言裏是指在一個函數(至關於其餘語言的 subprocedure)內調用同一個函數。通常程序書裏都能查到。
所謂保護方式,是指 286protectedmode。由於通常的 IBM 機器,無論是 386,486,只要是 dos 操做系統,實際能操做的內存只是 640K,至關於一個較快的 PC 機。想要用到 640K 之外的e×tendmemory,只有用 pretectmode 才能用上,我打算換 286,仍是想用多於 640K 的內存。這就要有比如今的C更好的編程工具。
固然,我也不必定要用到保護方式,有各類 EMS 軟件,不過我仍是想往多裏撈摸,多留一手。MSC 我只見過 5.0 版,7.0 版的性能還不知道。不過我猜如今流行的C應該有這些手段,到這時候了。 我有一段時間很關心 personalcomputer 的發展,屬於想玩玩不到過乾癮的那種。這路東西的發展都是由處理機片芯的發展開始。從 8088 到 286,386 看文獻就知道快了不少。
從實用的角度來看,286 多了虛存保護,386 又多了不少用戶多任務手段。486 聽說把 386,387,和 64K 的高速緩存集成到一個片子上,不但整數運算快,浮點也快多了。不過不作科學運算,意義就小了。586 還不知道是個什麼東西,想必有驚人之處。不過到了我手上用做文字處理,也是暴殄天物。我有個 286 用用就算行了。太好的東西我也使不出來。 據說美國微機多媒體搞得甚火,微機接電視,音響,vedio 等等。這玩藝聽上去卻是蠻有意思的。
當時不知道你爲何這麼幹,原來是機器壞了。竟然叫人敲去 150dollars,老兄真是有錢。這種事叫我趕上,確定本身修了。如今的微機修理都是換線換板,機器一壞,先找塊表量量是否是電源壞了。只要不是電源壞,估摸是哪部分很差,就去買塊版換上。送出去也是這麼修,還要敲你手工錢。我看 150 什麼板子都能買來。萬一本身故障沒找對,就說人家的板子很差,退給他。個人機器裏什麼牌子的板子都有了,都像你那樣挨人敲,還玩得起嗎?這麼弄,還能有點樂趣。比方說,你愛 486,就去買塊 486 主機板,把本身的主機板換下來,這種搞法不怕雜牌水貨,壞了再換,反正便宜。個人問題在於這麼搞都搞不起。
我如今從我哥哥那裏弄了一套 TurboC++,軟件方面暫時沒有問題了。只是 286 還沒買,由於據說中國要加入關貿總協定,這類東西要掉價;有錢先買傢俱。不管如何,我是用不到 486 的,由於要 286 也不是爲了追求高速度,主要是要解決內存問題。我如今軟件寫得出神入化,大概 8088 上能作到的一切,我都作到了。本身以爲該告一段落,去寫小說了。
先有朋友把你寄來的軟盤倒了一下,看看是數字,就沒動它。記得原來有一套幹這種事的軟件,是你給的,可是盤壞過,再也找不到了。今天寫了個小程序倒出來,拜讀了大做,甚是有趣。
我終於下決心買了一臺 286,這些日子在改造軟件,做了很多彙編工做。其核心是它在虛擬保護方式(virtualaddressprotected)下工做,以便利擴展內存(expandedmemory)。如今終於徹底成功,個人軟件如今能夠編輯 400K 長的文件,能夠把一部長篇小說所有調到內存裏編寫了。只惋惜我這個機器仍是低級,只有 1MRAM,而且沒有硬盤,因此也就到此爲止了。這個程序的缺點是過低級,有大量對端口(port)的操做,雖然效率是高的,兼容性不會太好。個人 XT 機給山妻用了,算起來我用那臺機器已經七年,就如一位老友,驟然割愛,如心頭割肉。
咱們的 pc 機尚未和 Internet 連上。原本中國有幾個國內網發展得很快,如今又出了問題,誰要上 Internet,必須到有關部門去登記,留個案底,以備當局監控,頗有一點監獄的氣味。我還不想找這份麻煩,再說,經過 Chinanet 聯網,每個月也要交七八百的月費,我也沒有這麼多的錢。既然×反對信息時代,咱們就不進這個時代罷,有什麼法子。因此仍是寫信好了。
參考:https://www.techug.com/post/wangxiaobo.html