上篇文章,程序员2.0 - 学编程的心境 - ,有朋友评论:
受教,在1024这天能看到这样的文章真好。
-@田靖荣
�看表,果不其然今天1024。我打字这时,是我的时间10.24的开始,对于国内的小伙伴这天估计快过去了。与此同时,我国内的�代码仔同学们今晚突然热火朝天地在我们的Minecraft Server里面开荒。大家工作以后都很忙,这天突然聚起来,难道是庆祝程序员之日?
简单聊聊1024,和为什么Minecraft要扯上代码仔。
1024这个数字有来头,很简单,2的10次方。我记得当年上课的时候,老师说有些简单的数字,自己一定要记住的,比如Integer的最大值2^31-1 : '2147483647', 又比如这个1024.
对不了解的人:1024其实就是一个太长用到的数量级单位。比如大家平时所知道的B, KB, MB, GB, TB ... etc 都是这么‘乘以1024’而出来的。(为了不让读者纠结,这就不说那种x1000的工业规格了: )
所以教授都讲这个段子,让大家记得1024这个字。
前两年,有个游戏特别火,也叫1024,就是移动个子,两个相同数字就合并那个游戏。这个消磨时间的游戏不知道被女朋友偷偷删掉几回,可见它当时的火爆。这个游戏,也让更多人记住了1024这个数字。
这1024游戏中,必然是有一些代码仔的情怀的。
同样有代码情怀的游戏还有啥呢?对,没错,就是文章开头提到的Minecraft。国内叫,‘我的世界’。
翻译其实只解释了游戏的一个侧面:就是'MyWord',我所有的一片可以开荒,创造,任凭想象飞驰的电子乐高玩具沙盘。翻译名字的重点放在了‘我的’,也把游戏的其中一个特点突出,这个游戏是一个独特的‘世界’。
然而,从原本的意思翻译,可能就不好听:‘Mine’其实是挖矿的意思,实际上,游戏里面的主要环节就是不停地探索资源挖资源,就是挖挖挖!
其次,‘craft’说的其实就是造物的意思,里面涵盖了一种‘巧妙手艺’的意思。游戏里面,通过你所挖到的那些资源,就可以通过千奇百怪的配方,造出各种各样的工具和物品。
对,没错,就是鲁滨逊漂流记的游戏版。
扯回来,这游戏和代码情怀有什么关系?
面对对象
行内人都知道,‘面对对象’的编程已经存在数年,而对于我们这代人,一开始学的就直接是'Object-Oriented', 其实都没有接触不‘oriented’的情况(比如说纯C, 但�涉及真的少了)。所以,在我们这代小码农的世界里面,‘object-对象’就是编程的地基,没有什么比这个更熟悉了。
Minecraft里面,所有东西都是一个block,也就是一个‘object-对象’。与其他游戏不同的是,minecraft独特的block构型,把object的每一个部分清清楚楚的暴露给了玩家,没有一点虚的,没有一点欺骗用户眼睛的地方。
方程和工具
再进一步,当我们用手上各种各样的block,合成一些工具时,这些工具就是我们编程中的'method/function',然后这些method可以做他们所被设计而干得活,非常精准到位,每件事情都是为了下一个目的而发生的。
说白了,就是precise的一个感觉,让我欲罢不能。
所以,在我这个少年用遍各大游戏金手指的代码仔眼中,没有什么比minecraft更长久的情怀。这个游戏是编程的一种简单的,有娱乐性的,而又面向大众的呈现。
对,没错,入门编程嘛,先去上手Minecraft!
Command Line
最后,Minecraft还有一个吸引人的地方。记不记得原来很多游戏都可以加什么金手指,比如后来的Steam command line, 在‘Left 4 Dead’ 里面可以自己设定一个按键,无限加Tank, Witch出来吓人?
而Minecraft, command line正所谓是这个个游戏的灵魂:很多程序员都在网上开发了各种各种的mod,让minecraft玩起来有了无限种可能。也就是说,在这个游戏的基本框架上,程序员可以开发不同的玩法,Method,场景... etc。这样,连我们代码仔玩游戏,都有了正名:对,我还真的是奔着编程去的。
1024引出点情怀。
人们啊,你们知道吗,未来,你们的世界就是我们的世界。