神奇的程式設計師—王小波
喜歡讀書的人,我想對王小波都不陌生,他是中國最富創造性的作家之一,他是中國近半世紀的苦難和荒謬所結晶出來的天才,他英年早逝。他的作品對我們生活中所有的荒謬和苦難作出最徹底的反諷刺。他還做了從來沒有人想做和做也沒才力做到的事:他唾棄中國現代文學那種“軟”以及傷感和諂媚的傳統,而秉承羅素、伊塔洛·卡爾維諾他們的批判、思考的精神,同時把這個傳統和中國古代小說的遊戲精神作了一個創造性的銜接。(以上部分摘自百度百科)
我讀過王小波三部曲黃金時代,白銀時代和青銅時代,讀過沉默的大多數,讀過紅拂夜奔,讀過似水六年,但是最近才知道,原來王小波是一個偽裝成作家的程式設計師(這位同學不用站起來了,不知道這是調侃麼)。
王小波很早就接觸了計算機,1988年畢業於美國匹茲堡大學東亞研究中心,獲碩士學位,那時就知道Macintosh,玩過IBMPS/2。
90年學習FORTRAN,開始進行資料統計,並開始在北大教統計學。
91年搞了個用調整字模發生器方法輸出漢字的系統,併發出嗟嘆:嗟夫,不過現在我對微機已無興趣,因為發現寫小說也可賺到錢。一代天才作家終於開始寫小說了,但他依然沒有停止程式設計的腳步。
92年開始寫C,“用C編的軟體已經用熟,並做出了各種寫小說的工具,別人的軟體已不用了。現在主要是寫書賺錢。從今年初開始寫長篇,首先做了寫長篇的專用軟體,現在基本調通,開始寫了”。
93年開始搞彙編,“下決心買了一臺286,這些日子在改造軟體,作了不少彙編工作。其核心是它在虛擬保護方式(virtual address protected)下工作,以便利擴充套件記憶體(expandedmemory)”。
……
如果王小波不那麼早辭世,估計會有更多偉大的文學作品和軟體產品留下。誰說文科生不懂技術?誰說程式設計師不能寫書?這才是技術與人文的完美結合啊,你們感受一下……
今日Mac技巧:
1、更簡單的禁用通知的方式
經過多位童靴提醒,我們可以通過按住option鍵,點選右上角的通知按鈕,即可禁用或恢復通知系統。
2、Objective-C的訊息機制
上次講了一些Objective-C的歷史,很多童靴覺得不過癮,今天為大家介紹下這門語言的訊息機制。
Ojbective-C的語法設計主要基於Smalltalk,除了提供傳統的物件導向程式設計特性之外,還增加了很多類似動態語言Ruby、Python才具有的特性,例如動態型別、動態載入、動態繫結等等,同時強化了訊息傳遞機制和表意(Intention Revealing Interface)介面的概念。
訊息傳遞模型(Message Passing)是Objective-C語言的核心機制。在Objective-C中,沒有方法呼叫這種說法,只有訊息傳遞。在C++或Java中呼叫某個類的方法,在Objective-C中是給該類傳送一個訊息。在C++或Java裡,類與類的行為方法之間的關係非常緊密,一個方法必定屬於一個類,且於編譯時就已經繫結在一起,所以你不可能呼叫一個類裡沒有的方法。而在Objective-C中就比較簡單了,類和訊息之間是鬆耦合的,方法呼叫只是向某個類傳送一個訊息,該類可以在執行時再確定怎麼處理接受到的訊息。也就是說,一個類不保證一定會響應接收到的訊息,如果收到了一個無法處理的訊息,那麼程式就是簡單報一個錯。甚至你可以向一個值為nil的空物件傳送訊息,系統都不會出錯或宕掉。這種設計本身也比較符合軟體的隱喻。 在表意介面(Intention Revealing Interface)方面,Objective-C也是設計的比較出色的語言。面嚮物件語言的特性之一就是通過API把實現封裝起來,為上層建築提供服務。但是需要注意的一點就是,你封裝的API最好能夠讓呼叫者看到介面描述就知道怎麼使用。如果為了使用一個API必須要去研究它的實現,那麼就失去了封裝的意義。Objective-C通過顯式的API描述,讓開發者不自覺的寫出滿足表意介面的API,比如下圖中的API描述。
上圖中描述了一個傳統意義的例項方法,但和Java或C++不同的是,其方法關鍵字由多個字串組成,在這個例子是insertObject和atIndex,(id)anObject和(NSUInterger)index分別表示引數型別和引數名稱。整個方法看上去就像一個英語句子,我們可以很容易的知道,這個方法就是在索引為index處插入一個物件。如果你是從其他語言轉到Objective-C,那麼開始的時候會感覺這種寫法有些繁複,但是一旦理解並習慣了你會感受到其巨大的好處,這種寫法會強制你寫出優美易讀的程式碼和API,而且有了XCode強大的提示功能,再長的方法也是一蹴而就。
後續講講Objective-C的多型和繼承。與Java一樣,Objective-C一樣不支援多重繼承,但是通過類別(Category)和協議(Protocol)可以很好的實現程式碼複用和擴充套件。
文章內容來自微信公眾賬號:Mac技巧 微訊號:sagacity-mac 查閱和分享 • 回覆 m 可以查閱所有歷史文章 • 輸入文章編號,檢視對應文章內容 • 點選右上角—>分享到朋友圈 • 點選右上角—>複製連結在瀏覽器檢視 申明 自由轉載-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0,專業媒體轉載請與新浪微博 @池建強 聯絡
相關文章
- 第一代程式設計師王小波程式設計師
- 程式設計師有哪些電腦技能讓外行感到神奇?程式設計師
- 這些神奇又搞笑的bug,真的讓程式設計師萬萬沒想到!程式設計師
- 程式設計師的“非程式設計師”之路程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師必看的書-Ruby程式設計師程式設計師
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- Lisp程式設計師眼中的其他程式設計師Lisp程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java
- 程式設計師OR非程式設計師,有些程式設計的事需要知道程式設計師
- 盲人程式設計師的程式設計生涯程式設計師
- 悲催的程式設計師,以及程式設計師的悲催程式設計師
- 程式設計師的燈下黑:“逗到底”的程式設計師程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 程式設計師快速睡眠攻略 失眠程式設計師的福音程式設計師
- 《程式設計師健康指南》:給程式設計師的健康書程式設計師
- 愛偷懶的程式設計師是好程式設計師程式設計師
- 程式設計師啊,程式設計師,究竟是咋的程式設計師
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 程式設計師何苦為難程式設計師?程式設計師
- 程式設計師何必難為程式設計師程式設計師
- 王小波的計算機水平到底有多好?計算機
- 盲人程式設計師是如何程式設計的?程式設計師
- 糟糕程式設計師的程式設計風格程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 讓老闆開心的程式設計師不是好程式設計師程式設計師
- 程式設計師的自我修養之全棧程式設計師程式設計師全棧
- 程式設計師在國外:矽谷的那些中國程式設計師程式設計師
- 程式設計師與非程式設計師的思維差異程式設計師
- 程式設計師妻子自述:那些程式設計師教給我的程式設計師
- 程式設計師妻子自述: 那些程式設計師教給我的程式設計師
- 程式設計師的出路程式設計師
- 程式設計師的幸福程式設計師
- 程式設計師的工具程式設計師
- 程式設計師的困境程式設計師
- 理想的程式設計師程式設計師
- 程式設計師的高潮程式設計師
- 程式設計師的信仰程式設計師