上篇文章,程序員2.0 - 學(xué)編程的心境 - 簡(jiǎn)書(shū),有朋友評(píng)論:
受教,在1024這天能看到這樣的文章真好。
-@田靖榮
?看表,果不其然今天1024。我打字這時(shí),是我的時(shí)間10.24的開(kāi)始,對(duì)于國(guó)內(nèi)的小伙伴這天估計(jì)快過(guò)去了。與此同時(shí),我國(guó)內(nèi)的?代碼仔同學(xué)們今晚突然熱火朝天地在我們的Minecraft Server里面開(kāi)荒。大家工作以后都很忙,這天突然聚起來(lái),難道是慶祝程序員之日?
簡(jiǎn)單聊聊1024,和為什么Minecraft要扯上代碼仔。
1024這個(gè)數(shù)字有來(lái)頭,很簡(jiǎn)單,2的10次方。我記得當(dāng)年上課的時(shí)候,老師說(shuō)有些簡(jiǎn)單的數(shù)字,自己一定要記住的,比如Integer的最大值2^31-1 : '2147483647', 又比如這個(gè)1024.
對(duì)不了解的人:1024其實(shí)就是一個(gè)太長(zhǎng)用到的數(shù)量級(jí)單位。比如大家平時(shí)所知道的B, KB, MB, GB, TB ... etc 都是這么‘乘以1024’而出來(lái)的。(為了不讓讀者糾結(jié),這就不說(shuō)那種x1000的工業(yè)規(guī)格了: )
所以教授都講這個(gè)段子,讓大家記得1024這個(gè)字。
前兩年,有個(gè)游戲特別火,也叫1024,就是移動(dòng)個(gè)子,兩個(gè)相同數(shù)字就合并那個(gè)游戲。這個(gè)消磨時(shí)間的游戲不知道被女朋友偷偷刪掉幾回,可見(jiàn)它當(dāng)時(shí)的火爆。這個(gè)游戲,也讓更多人記住了1024這個(gè)數(shù)字。
這1024游戲中,必然是有一些代碼仔的情懷的。
同樣有代碼情懷的游戲還有啥呢?對(duì),沒(méi)錯(cuò),就是文章開(kāi)頭提到的Minecraft。國(guó)內(nèi)叫,‘我的世界’。
翻譯其實(shí)只解釋了游戲的一個(gè)側(cè)面:就是'MyWord',我所有的一片可以開(kāi)荒,創(chuàng)造,任憑想象飛馳的電子樂(lè)高玩具沙盤。翻譯名字的重點(diǎn)放在了‘我的’,也把游戲的其中一個(gè)特點(diǎn)突出,這個(gè)游戲是一個(gè)獨(dú)特的‘世界’。
然而,從原本的意思翻譯,可能就不好聽(tīng):‘Mine’其實(shí)是挖礦的意思,實(shí)際上,游戲里面的主要環(huán)節(jié)就是不停地探索資源挖資源,就是挖挖挖!
其次,‘craft’說(shuō)的其實(shí)就是造物的意思,里面涵蓋了一種‘巧妙手藝’的意思。游戲里面,通過(guò)你所挖到的那些資源,就可以通過(guò)千奇百怪的配方,造出各種各樣的工具和物品。
對(duì),沒(méi)錯(cuò),就是魯濱遜漂流記的游戲版。
扯回來(lái),這游戲和代碼情懷有什么關(guān)系?
面對(duì)對(duì)象
行內(nèi)人都知道,‘面對(duì)對(duì)象’的編程已經(jīng)存在數(shù)年,而對(duì)于我們這代人,一開(kāi)始學(xué)的就直接是'Object-Oriented', 其實(shí)都沒(méi)有接觸不‘oriented’的情況(比如說(shuō)純C, 但?涉及真的少了)。所以,在我們這代小碼農(nóng)的世界里面,‘object-對(duì)象’就是編程的地基,沒(méi)有什么比這個(gè)更熟悉了。
Minecraft里面,所有東西都是一個(gè)block,也就是一個(gè)‘object-對(duì)象’。與其他游戲不同的是,minecraft獨(dú)特的block構(gòu)型,把object的每一個(gè)部分清清楚楚的暴露給了玩家,沒(méi)有一點(diǎn)虛的,沒(méi)有一點(diǎn)欺騙用戶眼睛的地方。
方程和工具
再進(jìn)一步,當(dāng)我們用手上各種各樣的block,合成一些工具時(shí),這些工具就是我們編程中的'method/function',然后這些method可以做他們所被設(shè)計(jì)而干得活,非常精準(zhǔn)到位,每件事情都是為了下一個(gè)目的而發(fā)生的。
說(shuō)白了,就是precise的一個(gè)感覺(jué),讓我欲罷不能。
所以,在我這個(gè)少年用遍各大游戲金手指的代碼仔眼中,沒(méi)有什么比minecraft更長(zhǎng)久的情懷。這個(gè)游戲是編程的一種簡(jiǎn)單的,有娛樂(lè)性的,而又面向大眾的呈現(xiàn)。
對(duì),沒(méi)錯(cuò),入門編程嘛,先去上手Minecraft!
Command Line
最后,Minecraft還有一個(gè)吸引人的地方。記不記得原來(lái)很多游戲都可以加什么金手指,比如后來(lái)的Steam command line, 在‘Left 4 Dead’ 里面可以自己設(shè)定一個(gè)按鍵,無(wú)限加Tank, Witch出來(lái)嚇人?
而Minecraft, command line正所謂是這個(gè)個(gè)游戲的靈魂:很多程序員都在網(wǎng)上開(kāi)發(fā)了各種各種的mod,讓minecraft玩起來(lái)有了無(wú)限種可能。也就是說(shuō),在這個(gè)游戲的基本框架上,程序員可以開(kāi)發(fā)不同的玩法,Method,場(chǎng)景... etc。這樣,連我們代碼仔玩游戲,都有了正名:對(duì),我還真的是奔著編程去的。
1024引出點(diǎn)情懷。
人們啊,你們知道嗎,未來(lái),你們的世界就是我們的世界。