题图出自《弯钉》
爱丽丝梦游编程仙境
也就是
9.12 ——
国际程序员日
现在的小学可真厉害啊,学校里有各种免费的课外班可以选择,篮球
、足球
、武术、画画、书法、英语绘本(???)、非遗手工、攀岩
、天文、AI(学怎么用)、编程……
编程,现在程序员这行都这么卷了啊……从小学就开始培养,这入行时长,将来还不得 25 岁就退休啊……
领导:没,编程得三年级往上才能上。
但其实领导家的孩子(学名叫柱子)早在上小学之前就学编程了,而且还不是父母想要卷起来,是孩子自己特别喜欢呢。
仔细看了看相关的课程,发现编程确实挺好玩的,而且程序世界的背后,还有很多神话与哲学的浪漫呢!
孩子在学的这款程序平台名叫 Scratch,
是一款由麻省理工学院
(MIT)
设计开发的面向少年的简易编程工具,
2012
年就在中国得到普及。
目前这款软件
的下载和使用完全免费,
Windows
,苹果,
Linux
系统都有版本。
Scratch 编程界面,图片来源:youtube 编程课视频截图
细看它的界面就会发现,Scratch 的最大特色就是把编程语言的语法和技巧简化成不同颜色的「积木」,让整个编程的过程看起来更像是在玩某种「搭建」和「拼图」游戏。程序语言的逻辑变得更加清晰易懂,这也帮孩子把主要心思放在解决问题的思考上,享受「从 0 到 1 创造世界」的乐趣。
就像我找到的这个小练习,
它希望通过编程达到的效果是:当球拍碰到蝙蝠的时候,蝙蝠就会消失。
这时候孩子就要去思考,想要实现这种效果,需要经历哪些步骤,每个步骤要遵循什么样的原则开始和结束,当他把这个前因后果和逻辑过程想明白了,就能根据需要选出恰当的语句模块进行逻辑排列,从而实现这个效果,解决这个问题。
比如你会不会想到说,要想完成「球拍碰到蝙蝠,蝙蝠就消失」这个动作,最关键的一步是你得先让场景中出现蝙蝠呢?
比如球拍和蝙蝠是两个独立的东西,有各自的存在逻辑和行动原则,需要分开来单独设定各自的形态和规则呢?
所以要完成上面那一个指令,需要思考的内容都有什么呢:
- 好的,我们先来设计蝙蝠。
- 好的,它的出现逻辑可以是:每当绿色旗子被点击,蝙蝠就会出现。
Scratch 编程界面,图片来源:youtube 编程课视频截图
- 随机哪个位置都可以吧。
那这个出现的蝙蝠多大呀,出来之后有什么动作啊,动作持续多久啊?
- 好的好的,我设我设。
- 如果它被球拍碰到,那么蝙蝠就隐藏。
那球拍的大小是多大呢?球拍是怎么出现在屏幕上的呢?球拍出来之后怎么移动呢?球拍怎么样算是碰到蝙蝠呢?碰到蝙蝠的时候,球拍有变化吗?蝙蝠消失之后,球拍也跟着消失吗?拍完之后的球拍有变化吗?拍完第一只没变化,那么第二只第三只第一百只之后有吗?
一只蝙蝠消失之后,第二只蝙蝠怎么出来的,和第一只一样吗?不一样的话是怎么不一样的呢?……
这就是「球拍拍蝙蝠,蝙蝠消失」这个简单命令背后需要想清楚的问题…… (我可能都没完全列出来全部流程)
感觉写程序的过程,就像是创造一个全新世界的过程,而且这个世界的运行逻辑还是由你来设定的。
你可以选择故事发生在什么场景里,是卧室、球场、湖边还是海滨……
Scratch 编程界面,图片来源:youtube 编程课视频截图
Scratch 编程界面,图片来源:youtube 编程课视频截图
Scratch 编程界面,图片来源:youtube 编程课视频截图
怪不得孩子喜欢玩儿呢,当画面中自己挑选的演员按照自己的精心设计开始表演的时候,这掌控感绝对是一流的成就体验。
不知道是不是因为编程这种「缜密创世」的特质,我发现过去很多和程序有关的东西都有一些来自「神域」的名称。
比如世界上最大的软件公司甲骨文(Oracle),它的英文名 Oracle 源于拉丁文,意为神谕,原本指的是祭司宣达神明预言的行为(可能就是出于这层考虑,中文翻译成了甲骨文吧)。
在欧美文化体系里,最著名的神谕来自德尔斐神庙(Delphi),这里居住着传达阿波罗神谕的女祭司皮提雅(Pythia),传说中她们能够预知未来。
希腊德尔斐神庙遗址,图片来源:wiki
要是你恰好是个程序员,也许能认出上面出现的这俩名字,Delphi 和 Pythia。
它们不仅是希腊神话传说中常常出现的名字,更是编程时会见到的术语,Delphi 是 20 世纪 90 年代 Windows 平台下 Object Pascal 语言的集成开发环境,而
Pythia 则是近几年由 Facebook 人工智能研究(Facebook AI Research,FAIR)发布的 AI 深度学习框架(你可以把它理解成能够训练 AI 更智能的数据学习系统)。
再说近两年很流行的 Python 语言,它的发明人之所以为这种语言取名 Python,是因为他很喜欢的一部电视喜剧名叫《巨蟒剧团之飞翔的马戏团》(英语:
Monty Python's Flying Circus
),于是就用了剧集里面的剧团名字 Python。
也许冥冥之中自有天意?注定了这位正当红的语言来历不凡。
Python 源自希腊文,原指希腊神话中的巨蟒皮同。
皮同是大地女神盖亚的孩子,
生活在德尔斐地区,守护盖亚在此的神谕所。后因曾经得罪过阿波罗的母亲,而被阿波罗射杀。弄死皮同之后,阿波罗在德尔斐建立起了自己的神谕所,也就是后世名满天下的德尔斐神庙(对,就是前面提到的那个 Delphi)。
版画,阿波罗射杀皮同
,
图片来源:wikicommons
神话里的 Delphi 赢了,现实里 Python 才是时下最流行、最有影响力的语言,不得不说这因缘际会还真是讽刺啊。
而且不只我提到的这些语言名字,就连我们平常最常见的计算机病毒「木马」,名字也来自希腊神话故事里的特洛伊战争。
因为木马病毒不像一般病毒,它
没有复制能力,而
是伪装成一个实用工具、一个可爱的游戏、图片、软件,诱使用户将其安装在 PC 端或者服务器上,从而秘密获取信息。
就如同特洛伊战争中的那尊被送进特洛伊城中的木马一样,其中潜藏着无穷的祸害。最终从内部瓦解了久攻不下的特洛伊城。
还有一条计算机世界最基础的指令,也和希腊神话有关。
就是 echo。
厄科(Echo)是希腊神话里的森林仙女,原本是个话痨,特喜欢接话茬儿。为了帮助与宙斯偷情的姐妹争取时间逃跑,故意拉着天后赫拉唠家常,被赫拉发现之后,惩罚她失去了唠嗑的能力,从此厄科只能重复对方说话的后几个字。
厄科:真不错啊!
厄科:什么了?
厄科:你呢!
厄科:毛病啊!
就这样,哪怕她遇到了自己喜欢的男孩子那耳喀索斯,也只能重复对方的话,眼睁睁看着对方离开。
羞愤的厄科只能遁逃隐没于山林之中,只有你对着山谷高喊,才能在回声中听见她的声音。
图片出自「
少儿哲学丛书」
《希腊神话:命运的囚徒》
听到这里,相信你已经能猜到这条指令的使用案例了。
- ECHO
Hello World!
03 编程与神话的背后是哲学?
之前认识一位做哲学、心理学与人工智能交叉学科的博士朋友,当时不太理解这几者的交集会是在研究什么,于是就问了问,他当时想了想讲了一些比较通俗易懂的话,大意是:
我们经常看电影里出现那种有自我意识的智能机器人,比如《2001 太空漫游》里的 Hal 9000 人工智能系统,它发现人类想要关闭它,它感受到:我怕死。
听起来只是几个简单的词组合在一起,但事实上,一台人工智能机器人能产生这样一个短句子需要经过相当复杂的运算,比如怎么定义「我」,怎么定义「怕」,怎么定义「死」。
一台独立存在的机器可以称为「我」,那当它和另一台机器联网能够互相同步信息的时候呢?谁是「我」呢?它们的关系是两个人加在一起是「我」,还是两个人都是「我」?机器如何判断「我
」
的边界?
如果它无法判断「我」的边界,它如何判断「我」的「死亡」呢?
被关机后永不开机是死亡吗?主板烧毁是死亡吗?数据断联是吗?如果程序上传到云是死亡吗?
而「怕」这样的情感,恐怕也要建立在对上面两个名词有了明确定义和理解之后了。
所以人工智能想要具备像影视剧里那样有感情有思辨能力的发展程度,并不是简单地能在屏幕上打出一个看似智慧的句子那么简单。这背后牵扯到人工智能是不是能够像人类一样完成很多复杂但基础的哲学命题运算。
以前会觉得
编程界特别喜欢从希腊神话里挖词儿用,里面透漏着某种自比是领受神意、创造新世纪的傲慢。但自从听完这位朋友的讲解之后,突然觉得编程与神话的背后也许有一种更隐秘的关联在于:它们回归到本质上,其实都是在尝试用不同的方式去理解和描述世界,只是一个着眼于虚拟的
数据
世界,另一个则是放在真实的现实世界。
神话传说的第一个作用是解释世界的起源,回答那个既令人焦虑,又的的确确是根本性的问题:我们从哪里来?
……即使知道了世界起源的传说故事,人类仍需要知道自己在这个世界中该如何行为举止;也需要了解相对于神祇,他的自由是什么。
所以一切神话都有英雄存在,他们起到楷模的作用。他们的冒险从某种意义上来说界定了什么是可能的。
……当珀尔修斯、赫拉克勒斯或忒休斯迎战怪物时,我们看到的是表现人类面对自然,也面对自身兽性与恶的一幕幕戏剧。
这就是为什么英雄不能脱离于他需要与之战斗的怪物而单独存在,因为怪物代表了人类在创造文明的过程中必须战胜的所有困难,但这一切不是没有代价的。有时候,这种代价甚至极其高昂。
神话中也提出很多哲学问题,如自由的范围、公平与正义、对不朽的渴望、面对死亡的态度等等,这些问题永远是人类现实中关注的。
……我们是谁?我们来自何方?生命的意义何在?死后我们去向哪里?神话直截了当用诗意的语言,不仅重现我们的焦虑、梦想、疑惑和希望,更将它们戏剧化,达到抒情的高度,因此直指人心,令读者或听众着迷。
——
米歇尔 · 皮克马尔
《希腊神话:命运的囚徒》
古人为了解释世界的运行规律而创造了神话,人们又在流传的神话中思辨
领悟
、获得智慧,
再用收获的智慧创造全新的世界 —— 谁能说那个人工智能所在的未来世界里,没有机器人书写属于它们自己的创世神话呢?(???)
好啦,今天的闲扯就到这里吧~ 热烈庆祝
程序员预备役柱子小朋友昨天节日快乐!(???)
一个国际上被众多科技公司和软件企业承认的业内人士节日。每年第 256 天(平年 9 月 13 日或闰年 9 月 12 日),是国际程序员节。之所以选取 256,是因为 256 是程序员熟知的 8 位元基本数字。它也是俄罗斯的官方节日,每逢这一天,人们都要穿白色服装来庆祝。
▲
本文作者:
发现节日已经过了一天
只能硬着头皮写的废废
如果你喜欢文中提到的书