创意编程历史,从技术到艺术

技术在变革
艺术在进化

 
Δprocessing生成艺术作品
 
艺术与科技对于大多数的人来说是绝对的对立面,科技是以数据为主要驱动的,而艺术则是情感驱动。科技以技术见长,而艺术却通常被认为以主观表达见长。然而,创意编程把两者紧密地结合,成为了这个时代设计和艺术发展的一个风向标。
 
如果要追溯创意编程的历史,那得从很久很久以前说起。
 
 
 
🌕
中世纪时期的编程
 
可编程器件至少早在13世纪初就已经存在。公元1206年,阿拉伯工匠艾尔.加扎利发明音乐自动生成装置。其运行原理简单明了,通过装置上的挂钉和凸轮,艺术家可以创作各种节奏和鼓形图案。
 
 
Δ加扎利的设计草图
 
💐
第一次工业革命时期初尝编程禁果的男男女女
 
1801年,法国发明家Joseph Marie Jacquard用打孔卡为一台织布机编写指令,在挂毯上织出了“hello, world”字样。当时艺术圈和设计圈对这项工作的反响并不热烈,因为它没有注意在拼写时恰当地区分大小写。
 
 
Δ可以编写指令的打孔卡装置
 
1842 年,英国著名诗人拜伦的女儿Ada Lovelace写下了世界上第一个程序。这是一个计算伯努利数列的算法,计划在查尔斯·巴贝奇的分析引擎进行。只不过她的努力遇到了一点点小小的麻烦,那就是:实际上并没有任何计算机能够用来运行她的程序。
 
 
Δ程序员的鼻祖
 
🌳
二战期间仅存的硕果
 
1936 年,Alan Turing(图灵)发明了世间一切程序语言的最终形态——图灵机,但很快他就被英国军情六处“请”去当007了,以至于他根本来不及为这些语言申请专利。如今,计算机世界赫赫有名的图灵奖就是以他的名字命名的。
 
 
 Δ图灵
 
20世纪40年代,一些直接采用布线和开关来进行程序控制的“计算机”出现了。工程师们当时这么做,据说是为了避开“用空格还是用制表符缩进”这样的论战。传说当时负责设计ENIAC的工程师中间曾经发生过这样的争论:
空格比制表符好。
制表符比空格好。
4个空格比8个空格好。
什么?用2个空格的统统烧死。
 
 
  Δ第一批计算机程序员在工作
 
冷战年代,编程热度不减
 
1958 , John McCarthy发明LISP。由于冷战期间的战略括号资源储备所造成的巨大成本,LISP从未流行过。尽管欠缺足够的流行度,LISP(现在叫做 “Lisp”,有时叫“Arc”)仍然被视作一门有影响力的语言,在关键的算法思想诸如递归(recursion)和提升逼格 (condescension)上尤为典范。
 
 
 ΔLisp发明人
 
🌕
新程序语言的井喷
 
1964年,John Kemeny和Thomas Kurtz创造了BASIC,一个为非计算机科学家设计的非结构化的程序语言。
 
 
 Δ运用BASIC制作的小游戏
 
1972 年,Dennis Ritchie发明了C语言。从此,无数程序员为其前赴后继,聪明绝顶者不在少数。
 
 
 ΔC语言发明人
 
同样在1972年,Alain Colmerauer设计了逻辑编程语言Prolog。他的目标是创造一个具有两岁小孩智商的程序语言。为了证明他成功达到了这个目标,他展示了一个Prolog程序,它对于每条查询都会机智地给出相同的回答:“No”。于是,70年代一个经典的对话由此诞生了:
 ”Ask you something!“
”No!“
 
 
 ΔProlog发明人
 
1983 年,Bjarne Stroustrup把他所听说过的一切都试图嫁接到C语言上,梦醒之后,他创造了C++语言,专治各种C语言的不服。
 
 
 ΔC++代码演示界面
 
💐
面向艺术家的程序语言开始出现
 
20世纪80年代中期,Miller Puckette在巴黎IRCAM(音响及音乐研究协会)设计了Max语言,最初是给作曲家提供一个创作交互计算机音乐的系统。
 
 
 Δ第一部钢琴和计算机作品“Pluton”
 
1995年,James Gosling发明Java。Java拥有单实现继承和多接口继承,是一个相对繁冗的面向对象的语言。无数程序员都拜倒在Java的石榴裙下,真是一入Java深似海啊。
 
 
 ΔJava作品《pascals-triangle》
 
1996年,Brendan Eich读完了历史上所有在程序语言设计中曾经出现过的错误,站在前辈们的肩膀上又发明了更多的错误,然后闭关修炼,用它们创造出了LiveScript。之后,为了紧跟 Java语言的时髦潮流,它被重新命名为JavaScript。
 
 
 ΔJavaScript发明者
 
🌳
创意编程稳步发展
 
2001年,麻省理工大学媒体实验室的 Casey Reas 和 Benjamin Fry在Java语言的基础上,建立Processing语言,旨在激励非程序员进行编程学习。
 
 
ΔProcessing作品
 
2005年,帕森斯设计学院教师Zachary Lieberman在C++的基础上建立了开源语言——openFrameworks,艺术家们可以使用其简化的语法和图形编程模型来创作。
 
 
ΔopenFrameworks作品
 
近几年,以Processing为基础的Javascript框架p5.js也日趋流行,许多设计师用它来进行生成艺术和交互装置创作。
 
 
Δp5.js互动音乐装置
 
编程让创意延伸到更广阔的世界
 
纵观创意编程史,我们可以发现一个很有趣的现象:一开始,创意和编程这两者各走各的,然而,随着编程技术的成熟,创意和编程开始首牵手,一起走。
 
毫无疑问,技术一直是艺术发展的助推剂,比如:照相技术的诞生打破西方传统绘画观念及至艺术的观念,催生了印象画派的崛起。
 
在这个互联网时代,每个人都应该去拥抱新的技术。我们只要了解自己是如何思考,并将这个思考过程用编程语言去描述,计算机就会通过其算法帮助我们实现畅想,这就是创意编程的力量。
 
 
“人人都应该学习创意编程”